diff --git a/Yuwen project/.gitignore b/Yuwen project/.gitignore
new file mode 100755
index 0000000..5a8de6d
--- /dev/null
+++ b/Yuwen project/.gitignore
@@ -0,0 +1,3 @@
+*.pyc
+.idea/workspace.xml
+.idea/vcs.xml
diff --git a/Yuwen project/.idea/ParameterLearning.iml b/Yuwen project/.idea/ParameterLearning.iml
new file mode 100755
index 0000000..6f63a63
--- /dev/null
+++ b/Yuwen project/.idea/ParameterLearning.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yuwen project/.idea/inspectionProfiles/profiles_settings.xml b/Yuwen project/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100755
index 0000000..c23ecac
--- /dev/null
+++ b/Yuwen project/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yuwen project/.idea/misc.xml b/Yuwen project/.idea/misc.xml
new file mode 100755
index 0000000..7b4d854
--- /dev/null
+++ b/Yuwen project/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Yuwen project/.idea/modules.xml b/Yuwen project/.idea/modules.xml
new file mode 100755
index 0000000..5d9c213
--- /dev/null
+++ b/Yuwen project/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Yuwen project/EI.txt b/Yuwen project/EI.txt
new file mode 100644
index 0000000..fe2e204
--- /dev/null
+++ b/Yuwen project/EI.txt
@@ -0,0 +1,330 @@
+
+[47. 11.] preferred to [ 6. 50.]
+[47. 11.] preferred to [45. 46.5]
+[47. 11.] preferred to [ 3.5 36. ]
+[47. 11.] preferred to [37.5 32.5]
+[47. 11.] preferred to [ 5.5 42.5]
+[47. 11.] preferred to [10. 20.5]
+[5.5 2.5] preferred to [47. 11.]
+[39. 1.5] preferred to [5.5 2.5]
+[5.5 2.5] preferred to [47. 11.]
+[39. 1.5] preferred to [36. 46.]
+[39. 1.5] preferred to [35.5 7. ]
+[6.5 1. ] preferred to [39. 1.5]
+[39. 1.5] preferred to [5.5 2.5]
+[6.5 1. ] preferred to [21. 43.]
+[6.5 1. ] preferred to [26. 50.]
+[6.5 1. ] preferred to [21.5 13. ]
+[6.5 1. ] preferred to [44. 34.5]
+[6.5 1. ] preferred to [15.5 41. ]
+[6.5 1. ] preferred to [28.5 33.5]
+[6.5 1. ] preferred to [15.5 47. ]
+[6.5 1. ] preferred to [25. 17.]
+[6.5 1. ] preferred to [14. 1.5]
+[6.5 1. ] preferred to [1. 3.5]
+[6.5 1. ] preferred to [47. 1.]
+[6.5 1. ] preferred to [3.5 5. ]
+[6.5 1. ] preferred to [24.5 0.5]
+[6.5 1. ] preferred to [22. 10.5]
+[6.5 1. ] preferred to [6. 7.5]
+[6.5 1. ] preferred to [47. 24.]
+[6.5 1. ] preferred to [ 3. 21.]
+[6.5 1. ] preferred to [44. 36.]
+[6.5 1. ] preferred to [33. 1.]
+[6.5 1. ] preferred to [10. 37.5]
+
+
+
+0.5383529897576843
+0.3120130002582282
+0.4307607950571197
+0.22528347984463046
+0.2290320422173685
+0.20606588659036804
+0.2159381715958132
+0.3934305260311409
+0.14134432038245656
+0.30894055839967055
+0.11456805752019861
+0.12608393489504566
+0.1211131118579697
+0.11776960397694856
+0.10922865085498974
+0.12675866139484382
+0.09656477162750908
+0.09226378975251674
+0.08845334331063084
+0.08663712488684486
+0.08178894458904369
+0.12153334405315416
+0.11420488381462006
+0.11183210046908734
+0.06647828791551172
+0.05767177910852856
+0.056019092697169336
+0.04573260390440889
+0.06788434453751276
+0.06262976162937203
+
+[5. 1.] preferred to [45. 50.]
+[5. 1.] preferred to [ 6. 16.]
+[5. 1.] preferred to [15.5 47. ]
+[5. 1.] preferred to [14.5 13.5]
+[5. 1.] preferred to [15.5 5. ]
+[5. 1.] preferred to [ 7.5 46. ]
+[5. 1.] preferred to [23.5 47.5]
+[45.5 2.5] preferred to [5. 1.]
+[45.5 2.5] preferred to [39.5 48.5]
+[45.5 2.5] preferred to [18. 33.5]
+[45.5 2.5] preferred to [ 9.5 29. ]
+[45.5 2.5] preferred to [32. 41.]
+[45.5 2.5] preferred to [29. 44.5]
+[45.5 2.5] preferred to [ 6. 13.5]
+[45.5 2.5] preferred to [44.5 39. ]
+[45.5 2.5] preferred to [4.5 7. ]
+[45.5 2.5] preferred to [34. 42.5]
+[45.5 2.5] preferred to [44. 34.5]
+[45.5 2.5] preferred to [24.5 27. ]
+[45.5 2.5] preferred to [24. 43.5]
+[45.5 2.5] preferred to [43. 25.]
+[29.5 3. ] preferred to [45.5 2.5]
+[29.5 3. ] preferred to [26.5 17.5]
+[29.5 3. ] preferred to [14.5 6.5]
+[24.5 2. ] preferred to [29.5 3. ]
+[24.5 2. ] preferred to [2. 3.5]
+[24.5 2. ] preferred to [38.5 36.5]
+[24.5 2. ] preferred to [40. 1.]
+[12.5 1. ] preferred to [24.5 2. ]
+[12.5 1. ] preferred to [34. 31.5]
+[12.5 1. ] preferred to [41. 4.]
+
+0.5730876383401813
+0.4533340760739405
+0.28418485148495626
+0.39575630905885445
+0.26010934419645726
+0.20326341131876477
+0.22727205308480788
+0.217668809642366
+0.17321267965626747
+0.1923638743572308
+0.1510171183278587
+0.17140547941599316
+0.1382697697017818
+0.12587545361419664
+0.14624491910557685
+0.11391958168126196
+0.1563605904747631
+0.11480632079700034
+0.08984310085349302
+0.1123812166978404
+0.108856501317257
+0.07885003756862094
+0.07664264563404624
+0.09700860548335745
+0.06922931760500843
+0.06599882338531113
+0.06546911854686745
+0.08856168616871476
+0.08661154184451957
+0.05904424680990032
+
+[21.5 11. ] preferred to [ 1. 36.5]
+[21.5 11. ] preferred to [18. 9.5]
+[21.5 11. ] preferred to [ 4.5 43.5]
+[21.5 11. ] preferred to [49. 37.5]
+[21.5 11. ] preferred to [43. 48.5]
+[21.5 11. ] preferred to [2. 6.5]
+[21.5 11. ] preferred to [ 2.5 12.5]
+[21.5 11. ] preferred to [2.5 5.5]
+[21.5 11. ] preferred to [ 0.5 49. ]
+[21.5 11. ] preferred to [10.5 26.5]
+[21.5 11. ] preferred to [15.5 35. ]
+[21.5 11. ] preferred to [42. 34.]
+[21.5 11. ] preferred to [18.5 33.5]
+[21.5 11. ] preferred to [29. 44.5]
+[21.5 11. ] preferred to [35.5 7. ]
+[21.5 11. ] preferred to [33.5 10. ]
+[11.5 1. ] preferred to [21.5 11. ]
+[11.5 1. ] preferred to [ 2. 20.]
+[11.5 1. ] preferred to [23. 10.5]
+[11.5 1. ] preferred to [44. 34.5]
+[11.5 1. ] preferred to [41.5 44.5]
+[11.5 1. ] preferred to [15.5 15.5]
+[11.5 1. ] preferred to [15.5 39. ]
+[11.5 1. ] preferred to [23.5 45.5]
+[11.5 1. ] preferred to [45.5 9.5]
+[11.5 1. ] preferred to [46.5 20.5]
+[11.5 1. ] preferred to [ 0.5 49. ]
+[11.5 1. ] preferred to [47. 24.]
+[11.5 1. ] preferred to [24.5 27. ]
+[11.5 1. ] preferred to [48. 1.]
+[16.5 4. ] preferred to [11.5 1. ]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0.5687962239182937
+0.39973858723329886
+0.48634780181389214
+0.40460319577834164
+0.19853692007226273
+
+0.5714603940540006
+0.45518028563443086
+0.43847333688578455
+0.33934937345491545
+0.18599433789449157
+0.31514932886083613
+
+
+
+
+0.5723602248634607
+0.5581916262528474
+0.3990198940052517
+0.37942249713705695
+0.3230108078468068
+0.321614676749231
+0.23732832880571653
+
+0.5598215400866542
+0.5108538058095394
+0.4245321385567464
+0.3663688564259919
+0.3651731011191544
+0.27431185932576413
+0.15910102836608536
+
+
+
+0.5659604000369767
+0.548344727139298
+0.46760120872913175
+
+
+
+0.5689082406675321
+
+0.5380672400828752
+
+0.5707255372788069
+
+0.5634859751085567
+
+0.5523573987479432
+0.4261881107338303
+0.3384160843245639
+0.21752883743300302
+
+0.5569621774683268
+0.32002243024054217
+0.43950931737711774
+
+0.5664109007115267
+0.3265896365555948
+
+
+0.5526757007641803
+0.44196850910289753
+0.26156689700627345
+0.39386098694109456
+0.5186377128491417
+0.3080173544656099
+0.29153115615231034
+0.2056222782749797
+0.2502597173815358
+0.20583655797853304
+0.21274670217617642
+0.182143683314065
+0.12500119981515098
+0.12148803681884458
+0.11111096608567565
+0.09772323877650302
+0.0923719639269986
+0.08159721342560168
+0.07540062958341182
+0.10033647606474864
+0.07050618414901905
+0.09500834741041125
+0.07260252619416238
+0.05434632578691145
+0.06750261872583672
+0.0668193838516236
+0.06319326518891702
+0.040025010995847536
+0.06015844634005931
+
+
+
+
+0.5711164483714275
+0.5274170675604491
+0.39359271864910117
+0.21802775822086895
+0.255845835402251
+0.20319965833851222
+0.18985408766393969
+0.17717391159275137
+0.16619581592468546
+0.133574808505166
+
+
+0.5694789463786044
+0.3203162114855419
+
+0.5511330298819602
+0.5352954473862119
+0.444332162975813
+0.3812753381937229
+0.43810351784721546
+0.3326210897393962
+0.28527501612770045
+0.33711165163137646
+0.23187695609968745
+0.1941107072155198
+0.15868838626108867
+0.17818751478931452
+0.11262605826781777
+0.2786734442962078
+0.1941509461072615
+0.14898437675863355
+0.1516864181842028
+0.10624914762915341
+0.12169019802428292
+0.08201199530915691
+0.09899491783489021
+0.07016464587763045
+0.06623829584458234
+0.05510157533071055
+0.07735712653363422
+
+0.04579841081366285
+
+0.072162528296973
+
+0.539860445403556
+0.4259380054080638
+0.0433523301874217
+0.35974727749386654
+0.38725911010685377
+0.32668179691635735
+0.04201459330902139
+0.19316671918079134
+0.2207936922999836
+0.20350947291152052
+0.06880037544415737
+0.1625067376679412
+0.15651270173560858
diff --git a/Yuwen project/FORCESNLPsolver/FORCESNLPsolver.m b/Yuwen project/FORCESNLPsolver/FORCESNLPsolver.m
new file mode 100644
index 0000000..45ec199
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/FORCESNLPsolver.m
@@ -0,0 +1,93 @@
+% FORCESNLPsolver - a fast solver generated by FORCES Pro v1.6.121
+%
+% OUTPUT = FORCESNLPsolver(PARAMS) solves a multistage problem
+% subject to the parameters supplied in the following struct:
+% PARAMS.x0 - column vector of length 1464
+% PARAMS.xinit - column vector of length 16
+% PARAMS.xfinal - column vector of length 11
+% PARAMS.all_parameters - column vector of length 2501
+%
+% OUTPUT returns the values of the last iteration of the solver where
+% OUTPUT.x01 - column vector of size 24
+% OUTPUT.x02 - column vector of size 24
+% OUTPUT.x03 - column vector of size 24
+% OUTPUT.x04 - column vector of size 24
+% OUTPUT.x05 - column vector of size 24
+% OUTPUT.x06 - column vector of size 24
+% OUTPUT.x07 - column vector of size 24
+% OUTPUT.x08 - column vector of size 24
+% OUTPUT.x09 - column vector of size 24
+% OUTPUT.x10 - column vector of size 24
+% OUTPUT.x11 - column vector of size 24
+% OUTPUT.x12 - column vector of size 24
+% OUTPUT.x13 - column vector of size 24
+% OUTPUT.x14 - column vector of size 24
+% OUTPUT.x15 - column vector of size 24
+% OUTPUT.x16 - column vector of size 24
+% OUTPUT.x17 - column vector of size 24
+% OUTPUT.x18 - column vector of size 24
+% OUTPUT.x19 - column vector of size 24
+% OUTPUT.x20 - column vector of size 24
+% OUTPUT.x21 - column vector of size 24
+% OUTPUT.x22 - column vector of size 24
+% OUTPUT.x23 - column vector of size 24
+% OUTPUT.x24 - column vector of size 24
+% OUTPUT.x25 - column vector of size 24
+% OUTPUT.x26 - column vector of size 24
+% OUTPUT.x27 - column vector of size 24
+% OUTPUT.x28 - column vector of size 24
+% OUTPUT.x29 - column vector of size 24
+% OUTPUT.x30 - column vector of size 24
+% OUTPUT.x31 - column vector of size 24
+% OUTPUT.x32 - column vector of size 24
+% OUTPUT.x33 - column vector of size 24
+% OUTPUT.x34 - column vector of size 24
+% OUTPUT.x35 - column vector of size 24
+% OUTPUT.x36 - column vector of size 24
+% OUTPUT.x37 - column vector of size 24
+% OUTPUT.x38 - column vector of size 24
+% OUTPUT.x39 - column vector of size 24
+% OUTPUT.x40 - column vector of size 24
+% OUTPUT.x41 - column vector of size 24
+% OUTPUT.x42 - column vector of size 24
+% OUTPUT.x43 - column vector of size 24
+% OUTPUT.x44 - column vector of size 24
+% OUTPUT.x45 - column vector of size 24
+% OUTPUT.x46 - column vector of size 24
+% OUTPUT.x47 - column vector of size 24
+% OUTPUT.x48 - column vector of size 24
+% OUTPUT.x49 - column vector of size 24
+% OUTPUT.x50 - column vector of size 24
+% OUTPUT.x51 - column vector of size 24
+% OUTPUT.x52 - column vector of size 24
+% OUTPUT.x53 - column vector of size 24
+% OUTPUT.x54 - column vector of size 24
+% OUTPUT.x55 - column vector of size 24
+% OUTPUT.x56 - column vector of size 24
+% OUTPUT.x57 - column vector of size 24
+% OUTPUT.x58 - column vector of size 24
+% OUTPUT.x59 - column vector of size 24
+% OUTPUT.x60 - column vector of size 24
+% OUTPUT.x61 - column vector of size 24
+%
+% [OUTPUT, EXITFLAG] = FORCESNLPsolver(PARAMS) returns additionally
+% the integer EXITFLAG indicating the state of the solution with
+% 1 - OPTIMAL solution has been found (subject to desired accuracy)
+% 0 - Timeout - maximum number of iterations reached
+% -6 - NaN or INF occured during evaluation of functions and derivatives. Please check your initial guess.
+% -7 - Method could not progress. Problem may be infeasible. Run FORCESdiagnostics on your problem to check for most common errors in the formulation.
+% -100 - License error
+%
+% [OUTPUT, EXITFLAG, INFO] = FORCESNLPsolver(PARAMS) returns
+% additional information about the last iterate:
+% INFO.it - number of iterations that lead to this result
+% INFO.res_eq - max. equality constraint residual
+% INFO.res_ineq - max. inequality constraint residual
+% INFO.rsnorm - norm of stationarity condition
+% INFO.rcompnorm - max of all complementarity violations
+% INFO.pobj - primal objective
+% INFO.mu - duality measure
+% INFO.solvetime - Time needed for solve (wall clock time)
+% INFO.fevalstime - Time needed for function evaluations (wall clock time)
+%
+% See also COPYING
diff --git a/Yuwen project/FORCESNLPsolver/include/FORCESNLPsolver.h b/Yuwen project/FORCESNLPsolver/include/FORCESNLPsolver.h
new file mode 100644
index 0000000..a3e08f8
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/include/FORCESNLPsolver.h
@@ -0,0 +1,427 @@
+/*
+FORCESNLPsolver : A fast customized optimization solver.
+
+Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+
+
+This software is intended for simulation and testing purposes only.
+Use of this software for any commercial purpose is prohibited.
+
+This program is distributed in the hope that it will be useful.
+EMBOTECH makes NO WARRANTIES with respect to the use of the software
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.
+
+EMBOTECH shall not have any liability for any damage arising from the use
+of the software.
+
+This Agreement shall exclusively be governed by and interpreted in
+accordance with the laws of Switzerland, excluding its principles
+of conflict of laws. The Courts of Zurich-City shall have exclusive
+jurisdiction in case of any dispute.
+
+*/
+
+/* Generated by FORCES PRO v1.6.121 on Monday, March 26, 2018 at 8:17:55 AM */
+
+#include
+
+#ifndef __FORCESNLPsolver_H__
+#define __FORCESNLPsolver_H__
+
+/* DATA TYPE ------------------------------------------------------------*/
+typedef double FORCESNLPsolver_float;
+
+typedef double FORCESNLPsolverinterface_float;
+
+#ifndef __SOLVER_STANDARD_TYPES__
+#define __SOLVER_STANDARD_TYPES__
+
+typedef signed char solver_int8_signed;
+typedef unsigned char solver_int8_unsigned;
+typedef char solver_int8_default;
+typedef signed short int solver_int16_signed;
+typedef unsigned short int solver_int16_unsigned;
+typedef short int solver_int16_default;
+typedef signed int solver_int32_signed;
+typedef unsigned int solver_int32_unsigned;
+typedef int solver_int32_default;
+typedef signed long long int solver_int64_signed;
+typedef unsigned long long int solver_int64_unsigned;
+typedef long long int solver_int64_default;
+
+#endif
+
+#ifndef __SOLVER_STANDARD_TYPES__
+#define __SOLVER_STANDARD_TYPES__
+
+typedef signed char solver_int8_signed;
+typedef unsigned char solver_int8_unsigned;
+typedef char solver_int8_default;
+typedef signed short int solver_int16_signed;
+typedef unsigned short int solver_int16_unsigned;
+typedef short int solver_int16_default;
+typedef signed int solver_int32_signed;
+typedef unsigned int solver_int32_unsigned;
+typedef int solver_int32_default;
+typedef signed long long int solver_int64_signed;
+typedef unsigned long long int solver_int64_unsigned;
+typedef long long int solver_int64_default;
+
+#endif
+
+/* SOLVER SETTINGS ------------------------------------------------------*/
+/* print level */
+#ifndef FORCESNLPsolver_SET_PRINTLEVEL
+#define FORCESNLPsolver_SET_PRINTLEVEL (1)
+#endif
+
+/* timing */
+#ifndef FORCESNLPsolver_SET_TIMING
+#define FORCESNLPsolver_SET_TIMING (1)
+#endif
+
+/* Numeric Warnings */
+/* #define PRINTNUMERICALWARNINGS */
+
+/* maximum number of iterations */
+#define FORCESNLPsolver_SET_MAXIT (5000)
+
+/* scaling factor of line search (FTB rule) */
+#define FORCESNLPsolver_SET_FLS_SCALE (FORCESNLPsolver_float)(0.99)
+
+/* maximum number of supported elements in the filter */
+#define FORCESNLPsolver_MAX_FILTER_SIZE (5000)
+
+/* maximum number of supported elements in the filter */
+#define FORCESNLPsolver_MAX_SOC_IT (4)
+
+/* desired relative duality gap */
+#define FORCESNLPsolver_SET_ACC_RDGAP (FORCESNLPsolver_float)(0.0001)
+
+/* desired maximum residual on equality constraints */
+#define FORCESNLPsolver_SET_ACC_RESEQ (FORCESNLPsolver_float)(1E-06)
+
+/* desired maximum residual on inequality constraints */
+#define FORCESNLPsolver_SET_ACC_RESINEQ (FORCESNLPsolver_float)(1E-06)
+
+/* desired maximum violation of complementarity */
+#define FORCESNLPsolver_SET_ACC_KKTCOMPL (FORCESNLPsolver_float)(1E-06)
+
+
+/* RETURN CODES----------------------------------------------------------*/
+/* solver has converged within desired accuracy */
+#define FORCESNLPsolver_OPTIMAL (1)
+
+/* maximum number of iterations has been reached */
+#define FORCESNLPsolver_MAXITREACHED (0)
+
+/* factorization error */
+#define FORCESNLPsolver_FACTORIZATION_ERROR (-5)
+
+/* NaN encountered in function evaluations */
+#define FORCESNLPsolver_BADFUNCEVAL (-6)
+
+/* no progress in method possible */
+#define FORCESNLPsolver_NOPROGRESS (-7)
+
+/* licensing error - solver not valid on this machine */
+#define FORCESNLPsolver_LICENSE_ERROR (-100)
+
+
+
+/* PARAMETERS -----------------------------------------------------------*/
+/* fill this with data before calling the solver! */
+typedef struct FORCESNLPsolver_params
+{
+ /* vector of size 1464 */
+ FORCESNLPsolver_float x0[1464];
+
+ /* vector of size 16 */
+ FORCESNLPsolver_float xinit[16];
+
+ /* vector of size 11 */
+ FORCESNLPsolver_float xfinal[11];
+
+ /* vector of size 2501 */
+ FORCESNLPsolver_float all_parameters[2501];
+
+} FORCESNLPsolver_params;
+
+
+/* OUTPUTS --------------------------------------------------------------*/
+/* the desired variables are put here by the solver */
+typedef struct FORCESNLPsolver_output
+{
+ /* vector of size 24 */
+ FORCESNLPsolver_float x01[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x02[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x03[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x04[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x05[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x06[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x07[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x08[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x09[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x10[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x11[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x12[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x13[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x14[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x15[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x16[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x17[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x18[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x19[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x20[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x21[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x22[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x23[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x24[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x25[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x26[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x27[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x28[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x29[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x30[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x31[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x32[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x33[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x34[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x35[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x36[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x37[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x38[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x39[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x40[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x41[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x42[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x43[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x44[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x45[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x46[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x47[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x48[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x49[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x50[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x51[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x52[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x53[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x54[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x55[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x56[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x57[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x58[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x59[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x60[24];
+
+ /* vector of size 24 */
+ FORCESNLPsolver_float x61[24];
+
+} FORCESNLPsolver_output;
+
+
+/* SOLVER INFO ----------------------------------------------------------*/
+/* diagnostic data from last interior point step */
+typedef struct FORCESNLPsolver_info
+{
+ /* iteration number */
+ solver_int32_default it;
+
+ /* number of iterations needed to optimality (branch-and-bound) */
+ solver_int32_default it2opt;
+
+ /* inf-norm of equality constraint residuals */
+ FORCESNLPsolver_float res_eq;
+
+ /* inf-norm of inequality constraint residuals */
+ FORCESNLPsolver_float res_ineq;
+
+ /* norm of stationarity condition */
+ FORCESNLPsolver_float rsnorm;
+
+ /* max of all complementarity violations */
+ FORCESNLPsolver_float rcompnorm;
+
+ /* primal objective */
+ FORCESNLPsolver_float pobj;
+
+ /* dual objective */
+ FORCESNLPsolver_float dobj;
+
+ /* duality gap := pobj - dobj */
+ FORCESNLPsolver_float dgap;
+
+ /* relative duality gap := |dgap / pobj | */
+ FORCESNLPsolver_float rdgap;
+
+ /* duality measure */
+ FORCESNLPsolver_float mu;
+
+ /* duality measure (after affine step) */
+ FORCESNLPsolver_float mu_aff;
+
+ /* centering parameter */
+ FORCESNLPsolver_float sigma;
+
+ /* number of backtracking line search steps (affine direction) */
+ solver_int32_default lsit_aff;
+
+ /* number of backtracking line search steps (combined direction) */
+ solver_int32_default lsit_cc;
+
+ /* step size (affine direction) */
+ FORCESNLPsolver_float step_aff;
+
+ /* step size (combined direction) */
+ FORCESNLPsolver_float step_cc;
+
+ /* solvertime */
+ FORCESNLPsolver_float solvetime;
+
+ /* time spent in function evaluations */
+ FORCESNLPsolver_float fevalstime;
+
+} FORCESNLPsolver_info;
+
+
+
+
+
+
+
+
+/* SOLVER FUNCTION DEFINITION -------------------------------------------*/
+/* examine exitflag before using the result! */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*FORCESNLPsolver_extfunc)(FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, FORCESNLPsolver_float*, solver_int32_default);
+
+extern solver_int32_default FORCESNLPsolver_solve(FORCESNLPsolver_params *params, FORCESNLPsolver_output *output, FORCESNLPsolver_info *info, FILE *fs, FORCESNLPsolver_extfunc FORCESNLPsolver_evalextfunctions);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/Yuwen project/FORCESNLPsolver/interface/COPYING.m b/Yuwen project/FORCESNLPsolver/interface/COPYING.m
new file mode 100644
index 0000000..4c63da1
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/COPYING.m
@@ -0,0 +1,21 @@
+% FORCESNLPsolver : A fast customized optimization solver.
+%
+% Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+%
+%
+% This software is intended for simulation and testing purposes only.
+% Use of this software for any commercial purpose is prohibited.
+%
+% This program is distributed in the hope that it will be useful.
+% EMBOTECH makes NO WARRANTIES with respect to the use of the software
+% without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+% PARTICULAR PURPOSE.
+%
+% EMBOTECH shall not have any liability for any damage arising from the use
+% of the software.
+%
+% This Agreement shall exclusively be governed by and interpreted in
+% accordance with the laws of Switzerland, excluding its principles
+% of conflict of laws. The Courts of Zurich-City shall have exclusive
+% jurisdiction in case of any dispute.
+%
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver.m b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver.m
new file mode 100644
index 0000000..45ec199
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver.m
@@ -0,0 +1,93 @@
+% FORCESNLPsolver - a fast solver generated by FORCES Pro v1.6.121
+%
+% OUTPUT = FORCESNLPsolver(PARAMS) solves a multistage problem
+% subject to the parameters supplied in the following struct:
+% PARAMS.x0 - column vector of length 1464
+% PARAMS.xinit - column vector of length 16
+% PARAMS.xfinal - column vector of length 11
+% PARAMS.all_parameters - column vector of length 2501
+%
+% OUTPUT returns the values of the last iteration of the solver where
+% OUTPUT.x01 - column vector of size 24
+% OUTPUT.x02 - column vector of size 24
+% OUTPUT.x03 - column vector of size 24
+% OUTPUT.x04 - column vector of size 24
+% OUTPUT.x05 - column vector of size 24
+% OUTPUT.x06 - column vector of size 24
+% OUTPUT.x07 - column vector of size 24
+% OUTPUT.x08 - column vector of size 24
+% OUTPUT.x09 - column vector of size 24
+% OUTPUT.x10 - column vector of size 24
+% OUTPUT.x11 - column vector of size 24
+% OUTPUT.x12 - column vector of size 24
+% OUTPUT.x13 - column vector of size 24
+% OUTPUT.x14 - column vector of size 24
+% OUTPUT.x15 - column vector of size 24
+% OUTPUT.x16 - column vector of size 24
+% OUTPUT.x17 - column vector of size 24
+% OUTPUT.x18 - column vector of size 24
+% OUTPUT.x19 - column vector of size 24
+% OUTPUT.x20 - column vector of size 24
+% OUTPUT.x21 - column vector of size 24
+% OUTPUT.x22 - column vector of size 24
+% OUTPUT.x23 - column vector of size 24
+% OUTPUT.x24 - column vector of size 24
+% OUTPUT.x25 - column vector of size 24
+% OUTPUT.x26 - column vector of size 24
+% OUTPUT.x27 - column vector of size 24
+% OUTPUT.x28 - column vector of size 24
+% OUTPUT.x29 - column vector of size 24
+% OUTPUT.x30 - column vector of size 24
+% OUTPUT.x31 - column vector of size 24
+% OUTPUT.x32 - column vector of size 24
+% OUTPUT.x33 - column vector of size 24
+% OUTPUT.x34 - column vector of size 24
+% OUTPUT.x35 - column vector of size 24
+% OUTPUT.x36 - column vector of size 24
+% OUTPUT.x37 - column vector of size 24
+% OUTPUT.x38 - column vector of size 24
+% OUTPUT.x39 - column vector of size 24
+% OUTPUT.x40 - column vector of size 24
+% OUTPUT.x41 - column vector of size 24
+% OUTPUT.x42 - column vector of size 24
+% OUTPUT.x43 - column vector of size 24
+% OUTPUT.x44 - column vector of size 24
+% OUTPUT.x45 - column vector of size 24
+% OUTPUT.x46 - column vector of size 24
+% OUTPUT.x47 - column vector of size 24
+% OUTPUT.x48 - column vector of size 24
+% OUTPUT.x49 - column vector of size 24
+% OUTPUT.x50 - column vector of size 24
+% OUTPUT.x51 - column vector of size 24
+% OUTPUT.x52 - column vector of size 24
+% OUTPUT.x53 - column vector of size 24
+% OUTPUT.x54 - column vector of size 24
+% OUTPUT.x55 - column vector of size 24
+% OUTPUT.x56 - column vector of size 24
+% OUTPUT.x57 - column vector of size 24
+% OUTPUT.x58 - column vector of size 24
+% OUTPUT.x59 - column vector of size 24
+% OUTPUT.x60 - column vector of size 24
+% OUTPUT.x61 - column vector of size 24
+%
+% [OUTPUT, EXITFLAG] = FORCESNLPsolver(PARAMS) returns additionally
+% the integer EXITFLAG indicating the state of the solution with
+% 1 - OPTIMAL solution has been found (subject to desired accuracy)
+% 0 - Timeout - maximum number of iterations reached
+% -6 - NaN or INF occured during evaluation of functions and derivatives. Please check your initial guess.
+% -7 - Method could not progress. Problem may be infeasible. Run FORCESdiagnostics on your problem to check for most common errors in the formulation.
+% -100 - License error
+%
+% [OUTPUT, EXITFLAG, INFO] = FORCESNLPsolver(PARAMS) returns
+% additional information about the last iterate:
+% INFO.it - number of iterations that lead to this result
+% INFO.res_eq - max. equality constraint residual
+% INFO.res_ineq - max. inequality constraint residual
+% INFO.rsnorm - norm of stationarity condition
+% INFO.rcompnorm - max of all complementarity violations
+% INFO.pobj - primal objective
+% INFO.mu - duality measure
+% INFO.solvetime - Time needed for solve (wall clock time)
+% INFO.fevalstime - Time needed for function evaluations (wall clock time)
+%
+% See also COPYING
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_build.py b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_build.py
new file mode 100644
index 0000000..139f9d0
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_build.py
@@ -0,0 +1,62 @@
+#FORCESNLPsolver : A fast customized optimization solver.
+#
+#Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+#
+#
+#This software is intended for simulation and testing purposes only.
+#Use of this software for any commercial purpose is prohibited.
+#
+#This program is distributed in the hope that it will be useful.
+#EMBOTECH makes NO WARRANTIES with respect to the use of the software
+#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+#PARTICULAR PURPOSE.
+#
+#EMBOTECH shall not have any liability for any damage arising from the use
+#of the software.
+#
+#This Agreement shall exclusively be governed by and interpreted in
+#accordance with the laws of Switzerland, excluding its principles
+#of conflict of laws. The Courts of Zurich-City shall have exclusive
+#jurisdiction in case of any dispute.
+#
+from distutils.ccompiler import new_compiler
+c = new_compiler()
+#from numpy.distutils.intelccompiler import IntelCCompiler
+#c = IntelCCompiler()
+
+
+import os
+import sys
+import distutils
+
+# determine source file
+sourcefile = os.path.join(os.getcwd(),"FORCESNLPsolver","src","FORCESNLPsolver"+".c")
+
+# determine lib file
+if sys.platform.startswith('win'):
+ libfile = os.path.join(os.getcwd(),"FORCESNLPsolver","lib","FORCESNLPsolver"+".lib")
+else:
+ libfile = os.path.join(os.getcwd(),"FORCESNLPsolver","lib","FORCESNLPsolver"+".so")
+
+# create lib dir if it does not exist yet
+if not os.path.exists(os.path.join(os.getcwd(),"FORCESNLPsolver","lib")):
+ os.makedirs(os.path.join(os.getcwd(),"FORCESNLPsolver","lib"))
+
+
+
+# compile into object file
+objdir = os.path.join(os.getcwd(),"FORCESNLPsolver","obj")
+if isinstance(c,distutils.unixccompiler.UnixCCompiler):
+ #objects = c.compile([sourcefile], output_dir=objdir, extra_preargs=['-O3','-fPIC','-fopenmp','-mavx'])
+ objects = c.compile([sourcefile], output_dir=objdir, extra_preargs=['-O3','-fPIC','-mavx'])
+ if sys.platform.startswith('linux'):
+ c.set_libraries(['rt','gomp'])
+else:
+ objects = c.compile([sourcefile], output_dir=objdir)
+
+
+# create libraries
+libdir = os.path.join(os.getcwd(),"FORCESNLPsolver","lib")
+exportsymbols = ["%s_solve" % "FORCESNLPsolver"]
+c.create_static_lib(objects, "FORCESNLPsolver", output_dir=libdir)
+c.link_shared_lib(objects, "FORCESNLPsolver", output_dir=libdir, export_symbols=exportsymbols)
\ No newline at end of file
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_lib.mdl b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_lib.mdl
new file mode 100644
index 0000000..8771d6c
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_lib.mdl
@@ -0,0 +1,947 @@
+Model {
+ Name "FORCESNLPsolver"
+ Version 8.0
+ MdlSubVersion 0
+ GraphicalInterface {
+ NumRootInports 0
+ NumRootOutports 0
+ ParameterArgumentNames ""
+ ComputedModelVersion "1.2"
+ NumModelReferences 0
+ NumTestPointedSignals 0
+ }
+ SavedCharacterEncoding "windows-1252"
+ SaveDefaultBlockParams on
+ ScopeRefreshTime 0.035000
+ OverrideScopeRefreshTime on
+ DisableAllScopes off
+ DataTypeOverride "UseLocalSettings"
+ DataTypeOverrideAppliesTo "AllNumericTypes"
+ MinMaxOverflowLogging "UseLocalSettings"
+ MinMaxOverflowArchiveMode "Overwrite"
+ FPTRunName "Run 1"
+ MaxMDLFileLineLength 120
+ Object {
+ $PropName "BdWindowsInfo"
+ $ObjectID 1
+ $ClassName "Simulink.BDWindowsInfo"
+ Object {
+ $PropName "WindowsInfo"
+ $ObjectID 2
+ $ClassName "Simulink.WindowInfo"
+ IsActive [1]
+ Location [385.0, 84.0, 816.0, 539.0]
+ Object {
+ $PropName "ModelBrowserInfo"
+ $ObjectID 3
+ $ClassName "Simulink.ModelBrowserInfo"
+ Visible [1]
+ DockPosition "Left"
+ Width [50]
+ Height [50]
+ Filter [9]
+ }
+ Object {
+ $PropName "ExplorerBarInfo"
+ $ObjectID 4
+ $ClassName "Simulink.ExplorerBarInfo"
+ Visible [1]
+ }
+ Object {
+ $PropName "EditorsInfo"
+ $ObjectID 5
+ $ClassName "Simulink.EditorInfo"
+ IsActive [1]
+ ViewObjType "SimulinkTopLevel"
+ LoadSaveID "0"
+ Extents [569.0, 363.0]
+ ZoomFactor [1.0]
+ Offset [0.0, 0.0]
+ }
+ }
+ }
+ Created "3/26/2018 8:18:05 AM"
+ Creator "embotech AG"
+ UpdateHistory "UpdateHistoryNever"
+ ModifiedByFormat "%"
+ LastModifiedBy "embotech AG"
+ ModifiedDateFormat "%"
+ LastModifiedDate "3/26/2018 8:18:05 AM"
+ RTWModifiedTimeStamp 315310195
+ ModelVersionFormat "1.%"
+ ConfigurationManager "None"
+ SampleTimeColors off
+ SampleTimeAnnotations off
+ LibraryLinkDisplay "disabled"
+ WideLines off
+ ShowLineDimensions off
+ ShowPortDataTypes off
+ ShowDesignRanges off
+ ShowLoopsOnError on
+ IgnoreBidirectionalLines off
+ ShowStorageClass off
+ ShowTestPointIcons on
+ ShowSignalResolutionIcons on
+ ShowViewerIcons on
+ SortedOrder off
+ ExecutionContextIcon off
+ ShowLinearizationAnnotations on
+ BlockNameDataTip off
+ BlockParametersDataTip off
+ BlockDescriptionStringDataTip off
+ ToolBar on
+ StatusBar on
+ BrowserShowLibraryLinks off
+ BrowserLookUnderMasks off
+ SimulationMode "normal"
+ LinearizationMsg "none"
+ Profile off
+ ParamWorkspaceSource "MATLABWorkspace"
+ AccelSystemTargetFile "accel.tlc"
+ AccelTemplateMakefile "accel_default_tmf"
+ AccelMakeCommand "make_rtw"
+ TryForcingSFcnDF off
+ Object {
+ $PropName "DataLoggingOverride"
+ $ObjectID 6
+ $ClassName "Simulink.SimulationData.ModelLoggingInfo"
+ model_ "model_2012b"
+ overrideMode_ [0.0]
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "model_2012b"
+ PropName "logAsSpecifiedByModels_"
+ }
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell []
+ PropName "logAsSpecifiedByModelsSSIDs_"
+ }
+ }
+ RecordCoverage off
+ CovPath "/"
+ CovSaveName "covdata"
+ CovMetricSettings "dw"
+ CovNameIncrementing off
+ CovHtmlReporting on
+ CovForceBlockReductionOff on
+ covSaveCumulativeToWorkspaceVar on
+ CovSaveSingleToWorkspaceVar on
+ CovCumulativeVarName "covCumulativeData"
+ CovCumulativeReport off
+ CovReportOnPause on
+ CovModelRefEnable "Off"
+ CovExternalEMLEnable off
+ ExtModeBatchMode off
+ ExtModeEnableFloating on
+ ExtModeTrigType "manual"
+ ExtModeTrigMode "normal"
+ ExtModeTrigPort "1"
+ ExtModeTrigElement "any"
+ ExtModeTrigDuration 1000
+ ExtModeTrigDurationFloating "auto"
+ ExtModeTrigHoldOff 0
+ ExtModeTrigDelay 0
+ ExtModeTrigDirection "rising"
+ ExtModeTrigLevel 0
+ ExtModeArchiveMode "off"
+ ExtModeAutoIncOneShot off
+ ExtModeIncDirWhenArm off
+ ExtModeAddSuffixToVar off
+ ExtModeWriteAllDataToWs off
+ ExtModeArmWhenConnect on
+ ExtModeSkipDownloadWhenConnect off
+ ExtModeLogAll on
+ ExtModeAutoUpdateStatusClock on
+ BufferReuse on
+ ShowModelReferenceBlockVersion off
+ ShowModelReferenceBlockIO off
+ Array {
+ Type "Handle"
+ Dimension 1
+ Simulink.ConfigSet {
+ $ObjectID 7
+ Version "1.12.1"
+ Array {
+ Type "Handle"
+ Dimension 8
+ Simulink.SolverCC {
+ $ObjectID 8
+ Version "1.12.1"
+ StartTime "0.0"
+ StopTime "10.0"
+ AbsTol "auto"
+ FixedStep "auto"
+ InitialStep "auto"
+ MaxNumMinSteps "-1"
+ MaxOrder 5
+ ZcThreshold "auto"
+ ConsecutiveZCsStepRelTol "10*128*eps"
+ MaxConsecutiveZCs "1000"
+ ExtrapolationOrder 4
+ NumberNewtonIterations 1
+ MaxStep "auto"
+ MinStep "auto"
+ MaxConsecutiveMinStep "1"
+ RelTol "1e-3"
+ SolverMode "Auto"
+ EnableConcurrentExecution off
+ ConcurrentTasks off
+ Solver "ode45"
+ SolverName "ode45"
+ SolverJacobianMethodControl "auto"
+ ShapePreserveControl "DisableAll"
+ ZeroCrossControl "UseLocalSettings"
+ ZeroCrossAlgorithm "Nonadaptive"
+ AlgebraicLoopSolver "TrustRegion"
+ SolverResetMethod "Fast"
+ PositivePriorityOrder off
+ AutoInsertRateTranBlk off
+ SampleTimeConstraint "Unconstrained"
+ InsertRTBMode "Whenever possible"
+ }
+ Simulink.DataIOCC {
+ $ObjectID 9
+ Version "1.12.1"
+ Decimation "1"
+ ExternalInput "[t, u]"
+ FinalStateName "xFinal"
+ InitialState "xInitial"
+ LimitDataPoints on
+ MaxDataPoints "1000"
+ LoadExternalInput off
+ LoadInitialState off
+ SaveFinalState off
+ SaveCompleteFinalSimState off
+ SaveFormat "Array"
+ SignalLoggingSaveFormat "Dataset"
+ SaveOutput on
+ SaveState off
+ SignalLogging on
+ DSMLogging on
+ InspectSignalLogs off
+ SaveTime on
+ ReturnWorkspaceOutputs off
+ StateSaveName "xout"
+ TimeSaveName "tout"
+ OutputSaveName "yout"
+ SignalLoggingName "logsout"
+ DSMLoggingName "dsmout"
+ OutputOption "RefineOutputTimes"
+ OutputTimes "[]"
+ ReturnWorkspaceOutputsName "out"
+ Refine "1"
+ }
+ Simulink.OptimizationCC {
+ $ObjectID 10
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 8
+ Cell "BooleansAsBitfields"
+ Cell "PassReuseOutputArgsAs"
+ Cell "PassReuseOutputArgsThreshold"
+ Cell "ZeroExternalMemoryAtStartup"
+ Cell "ZeroInternalMemoryAtStartup"
+ Cell "OptimizeModelRefInitCode"
+ Cell "NoFixptDivByZeroProtection"
+ Cell "UseSpecifiedMinMax"
+ PropName "DisabledProps"
+ }
+ BlockReduction on
+ BooleanDataType on
+ ConditionallyExecuteInputs on
+ InlineParams off
+ UseIntDivNetSlope off
+ UseFloatMulNetSlope off
+ UseSpecifiedMinMax off
+ InlineInvariantSignals off
+ OptimizeBlockIOStorage on
+ BufferReuse on
+ EnhancedBackFolding off
+ StrengthReduction off
+ ExpressionFolding on
+ BooleansAsBitfields off
+ BitfieldContainerType "uint_T"
+ EnableMemcpy on
+ MemcpyThreshold 64
+ PassReuseOutputArgsAs "Structure reference"
+ ExpressionDepthLimit 2147483647
+ FoldNonRolledExpr on
+ LocalBlockOutputs on
+ RollThreshold 5
+ SystemCodeInlineAuto off
+ StateBitsets off
+ DataBitsets off
+ UseTempVars off
+ ZeroExternalMemoryAtStartup on
+ ZeroInternalMemoryAtStartup on
+ InitFltsAndDblsToZero off
+ NoFixptDivByZeroProtection off
+ EfficientFloat2IntCast off
+ EfficientMapNaN2IntZero on
+ OptimizeModelRefInitCode off
+ LifeSpan "inf"
+ MaxStackSize "Inherit from target"
+ BufferReusableBoundary on
+ SimCompilerOptimization "Off"
+ AccelVerboseBuild off
+ ParallelExecutionInRapidAccelerator on
+ }
+ Simulink.DebuggingCC {
+ $ObjectID 11
+ Version "1.12.1"
+ RTPrefix "error"
+ ConsistencyChecking "none"
+ ArrayBoundsChecking "none"
+ SignalInfNanChecking "none"
+ SignalRangeChecking "none"
+ ReadBeforeWriteMsg "UseLocalSettings"
+ WriteAfterWriteMsg "UseLocalSettings"
+ WriteAfterReadMsg "UseLocalSettings"
+ AlgebraicLoopMsg "warning"
+ ArtificialAlgebraicLoopMsg "warning"
+ SaveWithDisabledLinksMsg "warning"
+ SaveWithParameterizedLinksMsg "warning"
+ CheckSSInitialOutputMsg on
+ UnderspecifiedInitializationDetection "Classic"
+ MergeDetectMultiDrivingBlocksExec "none"
+ CheckExecutionContextPreStartOutputMsg off
+ CheckExecutionContextRuntimeOutputMsg off
+ SignalResolutionControl "UseLocalSettings"
+ BlockPriorityViolationMsg "warning"
+ MinStepSizeMsg "warning"
+ TimeAdjustmentMsg "none"
+ MaxConsecutiveZCsMsg "error"
+ MaskedZcDiagnostic "warning"
+ IgnoredZcDiagnostic "warning"
+ SolverPrmCheckMsg "warning"
+ InheritedTsInSrcMsg "warning"
+ DiscreteInheritContinuousMsg "warning"
+ MultiTaskDSMMsg "error"
+ MultiTaskCondExecSysMsg "error"
+ MultiTaskRateTransMsg "error"
+ SingleTaskRateTransMsg "none"
+ TasksWithSamePriorityMsg "warning"
+ SigSpecEnsureSampleTimeMsg "warning"
+ CheckMatrixSingularityMsg "none"
+ IntegerOverflowMsg "warning"
+ Int32ToFloatConvMsg "warning"
+ ParameterDowncastMsg "error"
+ ParameterOverflowMsg "error"
+ ParameterUnderflowMsg "none"
+ ParameterPrecisionLossMsg "warning"
+ ParameterTunabilityLossMsg "warning"
+ FixptConstUnderflowMsg "none"
+ FixptConstOverflowMsg "none"
+ FixptConstPrecisionLossMsg "none"
+ UnderSpecifiedDataTypeMsg "none"
+ UnnecessaryDatatypeConvMsg "none"
+ VectorMatrixConversionMsg "none"
+ InvalidFcnCallConnMsg "error"
+ FcnCallInpInsideContextMsg "EnableAllAsError"
+ SignalLabelMismatchMsg "none"
+ UnconnectedInputMsg "warning"
+ UnconnectedOutputMsg "warning"
+ UnconnectedLineMsg "warning"
+ SFcnCompatibilityMsg "none"
+ FrameProcessingCompatibilityMsg "warning"
+ UniqueDataStoreMsg "none"
+ BusObjectLabelMismatch "warning"
+ RootOutportRequireBusObject "warning"
+ AssertControl "UseLocalSettings"
+ EnableOverflowDetection off
+ ModelReferenceIOMsg "none"
+ ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
+ ModelReferenceVersionMismatchMessage "none"
+ ModelReferenceIOMismatchMessage "none"
+ ModelReferenceCSMismatchMessage "none"
+ UnknownTsInhSupMsg "warning"
+ ModelReferenceDataLoggingMessage "warning"
+ ModelReferenceSymbolNameMessage "warning"
+ ModelReferenceExtraNoncontSigs "error"
+ StateNameClashWarn "warning"
+ SimStateInterfaceChecksumMismatchMsg "warning"
+ SimStateOlderReleaseMsg "error"
+ InitInArrayFormatMsg "warning"
+ StrictBusMsg "ErrorLevel1"
+ BusNameAdapt "WarnAndRepair"
+ NonBusSignalsTreatedAsBus "none"
+ LoggingUnavailableSignals "error"
+ BlockIODiagnostic "none"
+ SFUnusedDataAndEventsDiag "warning"
+ SFUnexpectedBacktrackingDiag "warning"
+ SFInvalidInputDataAccessInChartInitDiag "warning"
+ SFNoUnconditionalDefaultTransitionDiag "warning"
+ SFTransitionOutsideNaturalParentDiag "warning"
+ SFUnconditionalTransitionShadowingDiag "warning"
+ SFUndirectedBroadcastEventsDiag "warning"
+ SFTransitionActionBeforeConditionDiag "warning"
+ }
+ Simulink.HardwareCC {
+ $ObjectID 12
+ Version "1.12.1"
+ ProdBitPerChar 8
+ ProdBitPerShort 16
+ ProdBitPerInt 32
+ ProdBitPerLong 32
+ ProdBitPerFloat 32
+ ProdBitPerDouble 64
+ ProdBitPerPointer 32
+ ProdLargestAtomicInteger "Char"
+ ProdLargestAtomicFloat "None"
+ ProdIntDivRoundTo "Undefined"
+ ProdEndianess "Unspecified"
+ ProdWordSize 32
+ ProdShiftRightIntArith on
+ ProdHWDeviceType "32-bit Generic"
+ TargetBitPerChar 8
+ TargetBitPerShort 16
+ TargetBitPerInt 32
+ TargetBitPerLong 32
+ TargetBitPerFloat 32
+ TargetBitPerDouble 64
+ TargetBitPerPointer 32
+ TargetLargestAtomicInteger "Char"
+ TargetLargestAtomicFloat "None"
+ TargetShiftRightIntArith on
+ TargetIntDivRoundTo "Undefined"
+ TargetEndianess "Unspecified"
+ TargetWordSize 32
+ TargetTypeEmulationWarnSuppressLevel 0
+ TargetPreprocMaxBitsSint 32
+ TargetPreprocMaxBitsUint 32
+ TargetHWDeviceType "Specified"
+ TargetUnknown off
+ ProdEqTarget on
+ }
+ Simulink.ModelReferenceCC {
+ $ObjectID 13
+ Version "1.12.1"
+ UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+ CheckModelReferenceTargetMessage "error"
+ EnableParallelModelReferenceBuilds off
+ ParallelModelReferenceErrorOnInvalidPool on
+ ParallelModelReferenceMATLABWorkerInit "None"
+ ModelReferenceNumInstancesAllowed "Multi"
+ PropagateVarSize "Infer from blocks in model"
+ ModelReferencePassRootInputsByReference on
+ ModelReferenceMinAlgLoopOccurrences off
+ PropagateSignalLabelsOutOfModel off
+ SupportModelReferenceSimTargetCustomCode off
+ }
+ Simulink.SFSimCC {
+ $ObjectID 14
+ Version "1.12.1"
+ SFSimEnableDebug on
+ SFSimOverflowDetection on
+ SFSimEcho on
+ SimBlas on
+ SimCtrlC on
+ SimExtrinsic on
+ SimIntegrity on
+ SimUseLocalCustomCode off
+ SimParseCustomCode on
+ SimBuildMode "sf_incremental_build"
+ }
+ Simulink.RTWCC {
+ $BackupClass "Simulink.RTWCC"
+ $ObjectID 15
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 15
+ Cell "IncludeHyperlinkInReport"
+ Cell "GenerateTraceInfo"
+ Cell "GenerateTraceReport"
+ Cell "GenerateTraceReportSl"
+ Cell "GenerateTraceReportSf"
+ Cell "GenerateTraceReportEml"
+ Cell "PortableWordSizes"
+ Cell "GenerateWebview"
+ Cell "GenerateCodeMetricsReport"
+ Cell "GenerateCodeReplacementReport"
+ Cell "GenerateErtSFunction"
+ Cell "CreateSILPILBlock"
+ Cell "CodeExecutionProfiling"
+ Cell "CodeProfilingSaveOptions"
+ Cell "CodeProfilingInstrumentation"
+ PropName "DisabledProps"
+ }
+ SystemTargetFile "grt.tlc"
+ GenCodeOnly off
+ MakeCommand "make_rtw"
+ GenerateMakefile on
+ PackageGeneratedCodeAndArtifacts off
+ TemplateMakefile "grt_default_tmf"
+ GenerateReport off
+ SaveLog off
+ RTWVerbose on
+ RetainRTWFile off
+ ProfileTLC off
+ TLCDebug off
+ TLCCoverage off
+ TLCAssert off
+ ProcessScriptMode "Default"
+ ConfigurationMode "Optimized"
+ ConfigAtBuild off
+ RTWUseLocalCustomCode off
+ RTWUseSimCustomCode off
+ IncludeHyperlinkInReport off
+ LaunchReport off
+ PortableWordSizes off
+ GenerateErtSFunction off
+ CreateSILPILBlock "None"
+ CodeExecutionProfiling off
+ CodeExecutionProfileVariable "executionProfile"
+ CodeProfilingSaveOptions "SummaryOnly"
+ CodeProfilingInstrumentation off
+ TargetLang "C"
+ IncludeBusHierarchyInRTWFileBlockHierarchyMap off
+ IncludeERTFirstTime off
+ GenerateTraceInfo off
+ GenerateTraceReport off
+ GenerateTraceReportSl off
+ GenerateTraceReportSf off
+ GenerateTraceReportEml off
+ GenerateCodeInfo off
+ GenerateWebview off
+ GenerateCodeMetricsReport off
+ GenerateCodeReplacementReport off
+ RTWCompilerOptimization "Off"
+ CheckMdlBeforeBuild "Off"
+ CustomRebuildMode "OnUpdate"
+ Array {
+ Type "Handle"
+ Dimension 2
+ Simulink.CodeAppCC {
+ $ObjectID 16
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 22
+ Cell "IgnoreCustomStorageClasses"
+ Cell "IgnoreTestpoints"
+ Cell "InsertBlockDesc"
+ Cell "InsertPolySpaceComments"
+ Cell "SFDataObjDesc"
+ Cell "MATLABFcnDesc"
+ Cell "SimulinkDataObjDesc"
+ Cell "DefineNamingRule"
+ Cell "SignalNamingRule"
+ Cell "ParamNamingRule"
+ Cell "InternalIdentifier"
+ Cell "InlinedPrmAccess"
+ Cell "CustomSymbolStr"
+ Cell "CustomSymbolStrGlobalVar"
+ Cell "CustomSymbolStrType"
+ Cell "CustomSymbolStrField"
+ Cell "CustomSymbolStrFcn"
+ Cell "CustomSymbolStrFcnArg"
+ Cell "CustomSymbolStrBlkIO"
+ Cell "CustomSymbolStrTmpVar"
+ Cell "CustomSymbolStrMacro"
+ Cell "ReqsInCode"
+ PropName "DisabledProps"
+ }
+ ForceParamTrailComments off
+ GenerateComments on
+ IgnoreCustomStorageClasses on
+ IgnoreTestpoints off
+ IncHierarchyInIds off
+ MaxIdLength 31
+ PreserveName off
+ PreserveNameWithParent off
+ ShowEliminatedStatement off
+ OperatorAnnotations off
+ IncAutoGenComments off
+ SimulinkDataObjDesc off
+ SFDataObjDesc off
+ MATLABFcnDesc off
+ IncDataTypeInIds off
+ MangleLength 1
+ CustomSymbolStrGlobalVar "$R$N$M"
+ CustomSymbolStrType "$N$R$M"
+ CustomSymbolStrField "$N$M"
+ CustomSymbolStrFcn "$R$N$M$F"
+ CustomSymbolStrFcnArg "rt$I$N$M"
+ CustomSymbolStrBlkIO "rtb_$N$M"
+ CustomSymbolStrTmpVar "$N$M"
+ CustomSymbolStrMacro "$R$N$M"
+ DefineNamingRule "None"
+ ParamNamingRule "None"
+ SignalNamingRule "None"
+ InsertBlockDesc off
+ InsertPolySpaceComments off
+ SimulinkBlockComments on
+ MATLABSourceComments off
+ EnableCustomComments off
+ InternalIdentifier "Classic"
+ InlinedPrmAccess "Literals"
+ ReqsInCode off
+ UseSimReservedNames off
+ }
+ Simulink.GRTTargetCC {
+ $BackupClass "Simulink.TargetCC"
+ $ObjectID 17
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 15
+ Cell "GeneratePreprocessorConditionals"
+ Cell "IncludeMdlTerminateFcn"
+ Cell "CombineOutputUpdateFcns"
+ Cell "SuppressErrorStatus"
+ Cell "ERTCustomFileBanners"
+ Cell "GenerateSampleERTMain"
+ Cell "GenerateTestInterfaces"
+ Cell "ModelStepFunctionPrototypeControlCompliant"
+ Cell "CPPClassGenCompliant"
+ Cell "MultiInstanceERTCode"
+ Cell "PurelyIntegerCode"
+ Cell "SupportComplex"
+ Cell "SupportAbsoluteTime"
+ Cell "SupportContinuousTime"
+ Cell "SupportNonInlinedSFcns"
+ PropName "DisabledProps"
+ }
+ TargetFcnLib "ansi_tfl_table_tmw.mat"
+ TargetLibSuffix ""
+ TargetPreCompLibLocation ""
+ CodeReplacementLibrary "ANSI_C"
+ UtilityFuncGeneration "Auto"
+ ERTMultiwordTypeDef "System defined"
+ ERTMultiwordLength 256
+ MultiwordLength 2048
+ GenerateFullHeader on
+ GenerateSampleERTMain off
+ GenerateTestInterfaces off
+ IsPILTarget off
+ ModelReferenceCompliant on
+ ParMdlRefBuildCompliant on
+ CompOptLevelCompliant on
+ ConcurrentExecutionCompliant on
+ IncludeMdlTerminateFcn on
+ GeneratePreprocessorConditionals "Disable all"
+ CombineOutputUpdateFcns on
+ CombineSignalStateStructs off
+ SuppressErrorStatus off
+ ERTFirstTimeCompliant off
+ IncludeFileDelimiter "Auto"
+ ERTCustomFileBanners off
+ SupportAbsoluteTime on
+ LogVarNameModifier "rt_"
+ MatFileLogging on
+ MultiInstanceERTCode off
+ SupportNonFinite on
+ SupportComplex on
+ PurelyIntegerCode off
+ SupportContinuousTime on
+ SupportNonInlinedSFcns on
+ SupportVariableSizeSignals off
+ EnableShiftOperators on
+ ParenthesesLevel "Nominal"
+ ModelStepFunctionPrototypeControlCompliant off
+ CPPClassGenCompliant off
+ AutosarCompliant off
+ GRTInterface off
+ UseMalloc off
+ ExtMode off
+ ExtModeStaticAlloc off
+ ExtModeTesting off
+ ExtModeStaticAllocSize 1000000
+ ExtModeTransport 0
+ ExtModeMexFile "ext_comm"
+ ExtModeIntrfLevel "Level1"
+ RTWCAPISignals off
+ RTWCAPIParams off
+ RTWCAPIStates off
+ RTWCAPIRootIO off
+ GenerateASAP2 off
+ }
+ PropName "Components"
+ }
+ }
+ PropName "Components"
+ }
+ Name "Configuration"
+ CurrentDlgPage "Solver"
+ ConfigPrmDlgPosition [ 520, 225, 1400, 855 ]
+ }
+ PropName "ConfigurationSets"
+ }
+ Simulink.ConfigSet {
+ $PropName "ActiveConfigurationSet"
+ $ObjectID 7
+ }
+ Object {
+ $PropName "DataTransfer"
+ $ObjectID 18
+ $ClassName "Simulink.GlobalDataTransfer"
+ DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)"
+ DefaultTransitionBetweenAsyncTasks "Ensure data integrity only"
+ DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)"
+ DefaultExtrapolationMethodBetweenContTasks "None"
+ AutoInsertRateTranBlk [0]
+ }
+ ExplicitPartitioning off
+ BlockDefaults {
+ ForegroundColor "black"
+ BackgroundColor "white"
+ DropShadow off
+ NamePlacement "normal"
+ FontName "Helvetica"
+ FontSize 10
+ FontWeight "normal"
+ FontAngle "normal"
+ ShowName on
+ BlockRotation 0
+ BlockMirror off
+ }
+ AnnotationDefaults {
+ HorizontalAlignment "center"
+ VerticalAlignment "middle"
+ ForegroundColor "black"
+ BackgroundColor "white"
+ DropShadow off
+ FontName "Helvetica"
+ FontSize 10
+ FontWeight "normal"
+ FontAngle "normal"
+ UseDisplayTextAsClickCallback off
+ }
+ LineDefaults {
+ FontName "Helvetica"
+ FontSize 9
+ FontWeight "normal"
+ FontAngle "normal"
+ }
+ MaskDefaults {
+ SelfModifiable "off"
+ IconFrame "on"
+ IconOpaque "on"
+ RunInitForIconRedraw "off"
+ IconRotate "none"
+ PortRotate "default"
+ IconUnits "autoscale"
+ }
+ MaskParameterDefaults {
+ Evaluate "on"
+ Tunable "on"
+ NeverSave "off"
+ Internal "off"
+ ReadOnly "off"
+ Enabled "on"
+ Visible "on"
+ ToolTip "on"
+ }
+ BlockParameterDefaults {
+ Block {
+ BlockType S-Function
+ FunctionName "system"
+ SFunctionModules "''"
+ PortCounts "[]"
+ SFunctionDeploymentMode off
+ }
+ }
+ System {
+ Name "FORCESNLPsolver"
+ Location [385, 84, 1201, 623]
+ Open on
+ ModelBrowserVisibility on
+ ModelBrowserWidth 200
+ ScreenColor "white"
+ PaperOrientation "landscape"
+ PaperPositionMode "auto"
+ PaperType "A4"
+ PaperUnits "centimeters"
+ TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
+ TiledPageScale 1
+ ShowPageBoundaries off
+ ZoomFactor "100"
+ ReportName "simulink-default.rpt"
+ SIDHighWatermark "1"
+ Block {
+ BlockType S-Function
+ Name "FORCESNLPsolver"
+ SID "1"
+ Ports [4, 61]
+ Position [170, 99, 650, 1037]
+ ZOrder 1
+ FunctionName "FORCESNLPsolver_simulinkBlock"
+ SFunctionModules "FORCESNLPsolver FORCESNLPsolver_simulinkBlock"
+ EnableBusSupport off
+ Object {
+ $PropName "MaskObject"
+ $ObjectID 19
+ $ClassName "Simulink.Mask"
+ Type "FORCESNLPsolver_simulinkBlock"
+ Description " ---- Simulink block encapsulating your customized solver FORCESNLPsolver ---- \n\n"
+ "FORCESNLPsolver : A fast customized optimization solver.\n"
+"\n"
+"Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.\n"
+"\n"
+"\n"
+"This software is intended for simulation and testing purposes only. \n"
+"Use of this software for any commercial purpose is prohibited.\n"
+"\n"
+"This program is distributed in the hope that it will be useful.\n"
+"EMBOTECH makes NO WARRANTIES with respect to the use of the software \n"
+"without even the implied warranty of MERCHANTABILITY or FITNESS FOR A \n"
+"PARTICULAR PURPOSE. \n"
+"\n"
+"EMBOTECH shall not have any liability for any damage arising from the use\n"
+"of the software.\n"
+"\n"
+"This Agreement shall exclusively be governed by and interpreted in \n"
+"accordance with the laws of Switzerland, excluding its principles\n"
+"of conflict of laws. The Courts of Zurich-City shall have exclusive \n"
+"jurisdiction in case of any dispute.\n"
+"\n"
+
+ Help "FORCESNLPsolver_simulinkBlock provides an easy Simulink interface for simulating your customized solver. \n"
+ "\nOUTPUTS = FORCESNLPsolver(INPUTS) solves an optimization problem where:\n\n"
+ "INPUTS:\n"
+ " - x0 - column vector of length 1464\n "
+" - xinit - column vector of length 16\n "
+" - xfinal - column vector of length 11\n "
+" - all_parameters - column vector of length 2501\n "
+
+ "\nOUTPUTS:\n"
+ " - x01 - column vector of length 24\n "
+" - x02 - column vector of length 24\n "
+" - x03 - column vector of length 24\n "
+" - x04 - column vector of length 24\n "
+" - x05 - column vector of length 24\n "
+" - x06 - column vector of length 24\n "
+" - x07 - column vector of length 24\n "
+" - x08 - column vector of length 24\n "
+" - x09 - column vector of length 24\n "
+" - x10 - column vector of length 24\n "
+" - x11 - column vector of length 24\n "
+" - x12 - column vector of length 24\n "
+" - x13 - column vector of length 24\n "
+" - x14 - column vector of length 24\n "
+" - x15 - column vector of length 24\n "
+" - x16 - column vector of length 24\n "
+" - x17 - column vector of length 24\n "
+" - x18 - column vector of length 24\n "
+" - x19 - column vector of length 24\n "
+" - x20 - column vector of length 24\n "
+" - x21 - column vector of length 24\n "
+" - x22 - column vector of length 24\n "
+" - x23 - column vector of length 24\n "
+" - x24 - column vector of length 24\n "
+" - x25 - column vector of length 24\n "
+" - x26 - column vector of length 24\n "
+" - x27 - column vector of length 24\n "
+" - x28 - column vector of length 24\n "
+" - x29 - column vector of length 24\n "
+" - x30 - column vector of length 24\n "
+" - x31 - column vector of length 24\n "
+" - x32 - column vector of length 24\n "
+" - x33 - column vector of length 24\n "
+" - x34 - column vector of length 24\n "
+" - x35 - column vector of length 24\n "
+" - x36 - column vector of length 24\n "
+" - x37 - column vector of length 24\n "
+" - x38 - column vector of length 24\n "
+" - x39 - column vector of length 24\n "
+" - x40 - column vector of length 24\n "
+" - x41 - column vector of length 24\n "
+" - x42 - column vector of length 24\n "
+" - x43 - column vector of length 24\n "
+" - x44 - column vector of length 24\n "
+" - x45 - column vector of length 24\n "
+" - x46 - column vector of length 24\n "
+" - x47 - column vector of length 24\n "
+" - x48 - column vector of length 24\n "
+" - x49 - column vector of length 24\n "
+" - x50 - column vector of length 24\n "
+" - x51 - column vector of length 24\n "
+" - x52 - column vector of length 24\n "
+" - x53 - column vector of length 24\n "
+" - x54 - column vector of length 24\n "
+" - x55 - column vector of length 24\n "
+" - x56 - column vector of length 24\n "
+" - x57 - column vector of length 24\n "
+" - x58 - column vector of length 24\n "
+" - x59 - column vector of length 24\n "
+" - x60 - column vector of length 24\n "
+" - x61 - column vector of length 24\n "
+
+ "\n For more information, see https://www.embotech.com/FORCES-Pro/How-to-use/Simulink-Interface/Simulink-Block \n "
+
+ Display "port_label('input', 1, 'x0') \n "
+"port_label('input', 2, 'xinit') \n "
+"port_label('input', 3, 'xfinal') \n "
+"port_label('input', 4, 'all_parameters') \n "
+"port_label('output', 1, 'x01') \n "
+"port_label('output', 2, 'x02') \n "
+"port_label('output', 3, 'x03') \n "
+"port_label('output', 4, 'x04') \n "
+"port_label('output', 5, 'x05') \n "
+"port_label('output', 6, 'x06') \n "
+"port_label('output', 7, 'x07') \n "
+"port_label('output', 8, 'x08') \n "
+"port_label('output', 9, 'x09') \n "
+"port_label('output', 10, 'x10') \n "
+"port_label('output', 11, 'x11') \n "
+"port_label('output', 12, 'x12') \n "
+"port_label('output', 13, 'x13') \n "
+"port_label('output', 14, 'x14') \n "
+"port_label('output', 15, 'x15') \n "
+"port_label('output', 16, 'x16') \n "
+"port_label('output', 17, 'x17') \n "
+"port_label('output', 18, 'x18') \n "
+"port_label('output', 19, 'x19') \n "
+"port_label('output', 20, 'x20') \n "
+"port_label('output', 21, 'x21') \n "
+"port_label('output', 22, 'x22') \n "
+"port_label('output', 23, 'x23') \n "
+"port_label('output', 24, 'x24') \n "
+"port_label('output', 25, 'x25') \n "
+"port_label('output', 26, 'x26') \n "
+"port_label('output', 27, 'x27') \n "
+"port_label('output', 28, 'x28') \n "
+"port_label('output', 29, 'x29') \n "
+"port_label('output', 30, 'x30') \n "
+"port_label('output', 31, 'x31') \n "
+"port_label('output', 32, 'x32') \n "
+"port_label('output', 33, 'x33') \n "
+"port_label('output', 34, 'x34') \n "
+"port_label('output', 35, 'x35') \n "
+"port_label('output', 36, 'x36') \n "
+"port_label('output', 37, 'x37') \n "
+"port_label('output', 38, 'x38') \n "
+"port_label('output', 39, 'x39') \n "
+"port_label('output', 40, 'x40') \n "
+"port_label('output', 41, 'x41') \n "
+"port_label('output', 42, 'x42') \n "
+"port_label('output', 43, 'x43') \n "
+"port_label('output', 44, 'x44') \n "
+"port_label('output', 45, 'x45') \n "
+"port_label('output', 46, 'x46') \n "
+"port_label('output', 47, 'x47') \n "
+"port_label('output', 48, 'x48') \n "
+"port_label('output', 49, 'x49') \n "
+"port_label('output', 50, 'x50') \n "
+"port_label('output', 51, 'x51') \n "
+"port_label('output', 52, 'x52') \n "
+"port_label('output', 53, 'x53') \n "
+"port_label('output', 54, 'x54') \n "
+"port_label('output', 55, 'x55') \n "
+"port_label('output', 56, 'x56') \n "
+"port_label('output', 57, 'x57') \n "
+"port_label('output', 58, 'x58') \n "
+"port_label('output', 59, 'x59') \n "
+"port_label('output', 60, 'x60') \n "
+"port_label('output', 61, 'x61') \n "
+"if( exist('forcesprologo.jpg','file') ), image(imread('forcesprologo.jpg'),'center','on'); elseif( exist(['interface',filesep,'forcesprologo.jpg'],'file') ), image(imread(['interface',filesep,'forcesprologo.jpg']),'center','on'); elseif( exist(['FORCESNLPsolver',filesep,'interface',filesep,'forcesprologo.jpg'],'file') ), image(imread(['FORCESNLPsolver',filesep,'interface',filesep,'forcesprologo.jpg']),'center','on'); end \n "
+
+ }
+ }
+ }
+}
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_mex.c b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_mex.c
new file mode 100644
index 0000000..d0f6f9d
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_mex.c
@@ -0,0 +1,496 @@
+/*
+FORCESNLPsolver : A fast customized optimization solver.
+
+Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+
+
+This software is intended for simulation and testing purposes only.
+Use of this software for any commercial purpose is prohibited.
+
+This program is distributed in the hope that it will be useful.
+EMBOTECH makes NO WARRANTIES with respect to the use of the software
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.
+
+EMBOTECH shall not have any liability for any damage arising from the use
+of the software.
+
+This Agreement shall exclusively be governed by and interpreted in
+accordance with the laws of Switzerland, excluding its principles
+of conflict of laws. The Courts of Zurich-City shall have exclusive
+jurisdiction in case of any dispute.
+
+*/
+
+#include "mex.h"
+#include "math.h"
+#include "../include/FORCESNLPsolver.h"
+#include
+
+
+
+/* copy functions */
+void copyCArrayToM(double *src, double *dest, solver_int32_default dim)
+{
+ while (dim--)
+ {
+ *dest++ = (double)*src++;
+ }
+}
+void copyMArrayToC(double *src, double *dest, solver_int32_default dim)
+{
+ while (dim--)
+ {
+ *dest++ = (double) (*src++) ;
+ }
+}
+
+
+extern void FORCESNLPsolver_casadi2forces(FORCESNLPsolver_float *x, FORCESNLPsolver_float *y, FORCESNLPsolver_float *l, FORCESNLPsolver_float *p, FORCESNLPsolver_float *f, FORCESNLPsolver_float *nabla_f, FORCESNLPsolver_float *c, FORCESNLPsolver_float *nabla_c, FORCESNLPsolver_float *h, FORCESNLPsolver_float *nabla_h, FORCESNLPsolver_float *hess, solver_int32_default stage);
+FORCESNLPsolver_extfunc pt2function = &FORCESNLPsolver_casadi2forces;
+
+
+/* Some memory for mex-function */
+FORCESNLPsolver_params params;
+FORCESNLPsolver_output output;
+FORCESNLPsolver_info info;
+
+/* THE mex-function */
+void mexFunction( solver_int32_default nlhs, mxArray *plhs[], solver_int32_default nrhs, const mxArray *prhs[] )
+{
+ /* file pointer for printing */
+ FILE *fp = NULL;
+
+ /* define variables */
+ mxArray *par;
+ mxArray *outvar;
+ const mxArray *PARAMS = prhs[0];
+ double *pvalue;
+ solver_int32_default i;
+ solver_int32_default exitflag;
+ const solver_int8_default *fname;
+ const solver_int8_default *outputnames[61] = {"x01","x02","x03","x04","x05","x06","x07","x08","x09","x10","x11","x12","x13","x14","x15","x16","x17","x18","x19","x20","x21","x22","x23","x24","x25","x26","x27","x28","x29","x30","x31","x32","x33","x34","x35","x36","x37","x38","x39","x40","x41","x42","x43","x44","x45","x46","x47","x48","x49","x50","x51","x52","x53","x54","x55","x56","x57","x58","x59","x60","x61"};
+ const solver_int8_default *infofields[10] = { "it", "it2opt", "res_eq", "res_ineq", "rsnorm", "rcompnorm", "pobj", "mu", "solvetime", "fevalstime"};
+
+ /* Check for proper number of arguments */
+ if (nrhs != 1)
+ {
+ mexErrMsgTxt("This function requires exactly 1 input: PARAMS struct.\nType 'help FORCESNLPsolver_mex' for details.");
+ }
+ if (nlhs > 3)
+ {
+ mexErrMsgTxt("This function returns at most 3 outputs.\nType 'help FORCESNLPsolver_mex' for details.");
+ }
+
+ /* Check whether params is actually a structure */
+ if( !mxIsStruct(PARAMS) )
+ {
+ mexErrMsgTxt("PARAMS must be a structure.");
+ }
+
+ /* copy parameters into the right location */
+ par = mxGetField(PARAMS, 0, "x0");
+#ifdef MEXARGMUENTCHECKS
+ if( par == NULL )
+ {
+ mexErrMsgTxt("PARAMS.x0 not found");
+ }
+ if( !mxIsDouble(par) )
+ {
+ mexErrMsgTxt("PARAMS.x0 must be a double.");
+ }
+ if( mxGetM(par) != 1464 || mxGetN(par) != 1 )
+ {
+ mexErrMsgTxt("PARAMS.x0 must be of size [1464 x 1]");
+ }
+#endif
+ copyMArrayToC(mxGetPr(par), params.x0, 1464);
+
+ par = mxGetField(PARAMS, 0, "xinit");
+#ifdef MEXARGMUENTCHECKS
+ if( par == NULL )
+ {
+ mexErrMsgTxt("PARAMS.xinit not found");
+ }
+ if( !mxIsDouble(par) )
+ {
+ mexErrMsgTxt("PARAMS.xinit must be a double.");
+ }
+ if( mxGetM(par) != 16 || mxGetN(par) != 1 )
+ {
+ mexErrMsgTxt("PARAMS.xinit must be of size [16 x 1]");
+ }
+#endif
+ copyMArrayToC(mxGetPr(par), params.xinit, 16);
+
+ par = mxGetField(PARAMS, 0, "xfinal");
+#ifdef MEXARGMUENTCHECKS
+ if( par == NULL )
+ {
+ mexErrMsgTxt("PARAMS.xfinal not found");
+ }
+ if( !mxIsDouble(par) )
+ {
+ mexErrMsgTxt("PARAMS.xfinal must be a double.");
+ }
+ if( mxGetM(par) != 11 || mxGetN(par) != 1 )
+ {
+ mexErrMsgTxt("PARAMS.xfinal must be of size [11 x 1]");
+ }
+#endif
+ copyMArrayToC(mxGetPr(par), params.xfinal, 11);
+
+ par = mxGetField(PARAMS, 0, "all_parameters");
+#ifdef MEXARGMUENTCHECKS
+ if( par == NULL )
+ {
+ mexErrMsgTxt("PARAMS.all_parameters not found");
+ }
+ if( !mxIsDouble(par) )
+ {
+ mexErrMsgTxt("PARAMS.all_parameters must be a double.");
+ }
+ if( mxGetM(par) != 2501 || mxGetN(par) != 1 )
+ {
+ mexErrMsgTxt("PARAMS.all_parameters must be of size [2501 x 1]");
+ }
+#endif
+ copyMArrayToC(mxGetPr(par), params.all_parameters, 2501);
+
+ #if FORCESNLPsolver_SET_PRINTLEVEL > 0
+ /* Prepare file for printfs */
+ /*fp = freopen("stdout_temp","w+",stdout);*/
+ fp = fopen("stdout_temp","w+");
+ if( fp == NULL )
+ {
+ mexErrMsgTxt("freopen of stdout did not work.");
+ }
+ rewind(fp);
+ #endif
+
+ /* call solver */
+ exitflag = FORCESNLPsolver_solve(¶ms, &output, &info, fp, pt2function);
+
+ /* close stdout */
+ /* fclose(fp); */
+
+ #if FORCESNLPsolver_SET_PRINTLEVEL > 0
+ /* Read contents of printfs printed to file */
+ rewind(fp);
+ while( (i = fgetc(fp)) != EOF )
+ {
+ mexPrintf("%c",i);
+ }
+ fclose(fp);
+ #endif
+
+ /* copy output to matlab arrays */
+ plhs[0] = mxCreateStructMatrix(1, 1, 61, outputnames);
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x01, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x01", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x02, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x02", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x03, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x03", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x04, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x04", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x05, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x05", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x06, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x06", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x07, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x07", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x08, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x08", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x09, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x09", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x10, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x10", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x11, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x11", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x12, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x12", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x13, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x13", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x14, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x14", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x15, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x15", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x16, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x16", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x17, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x17", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x18, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x18", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x19, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x19", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x20, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x20", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x21, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x21", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x22, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x22", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x23, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x23", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x24, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x24", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x25, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x25", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x26, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x26", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x27, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x27", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x28, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x28", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x29, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x29", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x30, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x30", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x31, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x31", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x32, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x32", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x33, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x33", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x34, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x34", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x35, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x35", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x36, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x36", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x37, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x37", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x38, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x38", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x39, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x39", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x40, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x40", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x41, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x41", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x42, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x42", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x43, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x43", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x44, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x44", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x45, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x45", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x46, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x46", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x47, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x47", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x48, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x48", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x49, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x49", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x50, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x50", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x51, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x51", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x52, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x52", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x53, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x53", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x54, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x54", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x55, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x55", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x56, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x56", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x57, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x57", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x58, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x58", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x59, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x59", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x60, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x60", outvar);
+
+ outvar = mxCreateDoubleMatrix(24, 1, mxREAL);
+ copyCArrayToM( output.x61, mxGetPr(outvar), 24);
+ mxSetField(plhs[0], 0, "x61", outvar);
+
+ /* copy exitflag */
+ if( nlhs > 1 )
+ {
+ plhs[1] = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(plhs[1]) = (double)exitflag;
+ }
+
+ /* copy info struct */
+ if( nlhs > 2 )
+ {
+ plhs[2] = mxCreateStructMatrix(1, 1, 10, infofields);
+
+
+ /* iterations */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = (double)info.it;
+ mxSetField(plhs[2], 0, "it", outvar);
+
+ /* iterations to optimality (branch and bound) */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = (double)info.it2opt;
+ mxSetField(plhs[2], 0, "it2opt", outvar);
+
+ /* res_eq */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.res_eq;
+ mxSetField(plhs[2], 0, "res_eq", outvar);
+
+ /* res_ineq */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.res_ineq;
+ mxSetField(plhs[2], 0, "res_ineq", outvar);
+
+ /* rsnorm */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.rsnorm;
+ mxSetField(plhs[2], 0, "rsnorm", outvar);
+
+ /* rcompnorm */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.rcompnorm;
+ mxSetField(plhs[2], 0, "rcompnorm", outvar);
+
+ /* pobj */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.pobj;
+ mxSetField(plhs[2], 0, "pobj", outvar);
+
+ /* mu */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.mu;
+ mxSetField(plhs[2], 0, "mu", outvar);
+
+ /* solver time */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.solvetime;
+ mxSetField(plhs[2], 0, "solvetime", outvar);
+
+ /* solver time */
+ outvar = mxCreateDoubleMatrix(1, 1, mxREAL);
+ *mxGetPr(outvar) = info.fevalstime;
+ mxSetField(plhs[2], 0, "fevalstime", outvar);
+ }
+}
\ No newline at end of file
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_py.py b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_py.py
new file mode 100644
index 0000000..69d3969
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_py.py
@@ -0,0 +1,491 @@
+#FORCESNLPsolver : A fast customized optimization solver.
+#
+#Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+#
+#
+#This software is intended for simulation and testing purposes only.
+#Use of this software for any commercial purpose is prohibited.
+#
+#This program is distributed in the hope that it will be useful.
+#EMBOTECH makes NO WARRANTIES with respect to the use of the software
+#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+#PARTICULAR PURPOSE.
+#
+#EMBOTECH shall not have any liability for any damage arising from the use
+#of the software.
+#
+#This Agreement shall exclusively be governed by and interpreted in
+#accordance with the laws of Switzerland, excluding its principles
+#of conflict of laws. The Courts of Zurich-City shall have exclusive
+#jurisdiction in case of any dispute.
+#
+#def __init__():
+'''
+a Python wrapper for a fast solver generated by FORCES Pro v1.6.121
+
+ OUTPUT = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) solves a multistage problem
+ subject to the parameters supplied in the following dictionary:
+ PARAMS['x0'] - column vector of length 1464
+ PARAMS['xinit'] - column vector of length 16
+ PARAMS['xfinal'] - column vector of length 11
+ PARAMS['all_parameters'] - column vector of length 2501
+
+ OUTPUT returns the values of the last iteration of the solver where
+ OUTPUT['x01'] - column vector of size 24
+ OUTPUT['x02'] - column vector of size 24
+ OUTPUT['x03'] - column vector of size 24
+ OUTPUT['x04'] - column vector of size 24
+ OUTPUT['x05'] - column vector of size 24
+ OUTPUT['x06'] - column vector of size 24
+ OUTPUT['x07'] - column vector of size 24
+ OUTPUT['x08'] - column vector of size 24
+ OUTPUT['x09'] - column vector of size 24
+ OUTPUT['x10'] - column vector of size 24
+ OUTPUT['x11'] - column vector of size 24
+ OUTPUT['x12'] - column vector of size 24
+ OUTPUT['x13'] - column vector of size 24
+ OUTPUT['x14'] - column vector of size 24
+ OUTPUT['x15'] - column vector of size 24
+ OUTPUT['x16'] - column vector of size 24
+ OUTPUT['x17'] - column vector of size 24
+ OUTPUT['x18'] - column vector of size 24
+ OUTPUT['x19'] - column vector of size 24
+ OUTPUT['x20'] - column vector of size 24
+ OUTPUT['x21'] - column vector of size 24
+ OUTPUT['x22'] - column vector of size 24
+ OUTPUT['x23'] - column vector of size 24
+ OUTPUT['x24'] - column vector of size 24
+ OUTPUT['x25'] - column vector of size 24
+ OUTPUT['x26'] - column vector of size 24
+ OUTPUT['x27'] - column vector of size 24
+ OUTPUT['x28'] - column vector of size 24
+ OUTPUT['x29'] - column vector of size 24
+ OUTPUT['x30'] - column vector of size 24
+ OUTPUT['x31'] - column vector of size 24
+ OUTPUT['x32'] - column vector of size 24
+ OUTPUT['x33'] - column vector of size 24
+ OUTPUT['x34'] - column vector of size 24
+ OUTPUT['x35'] - column vector of size 24
+ OUTPUT['x36'] - column vector of size 24
+ OUTPUT['x37'] - column vector of size 24
+ OUTPUT['x38'] - column vector of size 24
+ OUTPUT['x39'] - column vector of size 24
+ OUTPUT['x40'] - column vector of size 24
+ OUTPUT['x41'] - column vector of size 24
+ OUTPUT['x42'] - column vector of size 24
+ OUTPUT['x43'] - column vector of size 24
+ OUTPUT['x44'] - column vector of size 24
+ OUTPUT['x45'] - column vector of size 24
+ OUTPUT['x46'] - column vector of size 24
+ OUTPUT['x47'] - column vector of size 24
+ OUTPUT['x48'] - column vector of size 24
+ OUTPUT['x49'] - column vector of size 24
+ OUTPUT['x50'] - column vector of size 24
+ OUTPUT['x51'] - column vector of size 24
+ OUTPUT['x52'] - column vector of size 24
+ OUTPUT['x53'] - column vector of size 24
+ OUTPUT['x54'] - column vector of size 24
+ OUTPUT['x55'] - column vector of size 24
+ OUTPUT['x56'] - column vector of size 24
+ OUTPUT['x57'] - column vector of size 24
+ OUTPUT['x58'] - column vector of size 24
+ OUTPUT['x59'] - column vector of size 24
+ OUTPUT['x60'] - column vector of size 24
+ OUTPUT['x61'] - column vector of size 24
+
+ [OUTPUT, EXITFLAG] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns additionally
+ the integer EXITFLAG indicating the state of the solution with
+ 1 - Optimal solution has been found (subject to desired accuracy)
+ 2 - (only branch-and-bound) A feasible point has been identified for which the objective value is no more than codeoptions.mip.mipgap*100 per cent worse than the global optimum
+ 0 - Timeout - maximum number of iterations reached
+ -1 - (only branch-and-bound) Infeasible problem (problems solving the root relaxation to the desired accuracy)
+ -2 - (only branch-and-bound) Out of memory - cannot fit branch and bound nodes into pre-allocated memory.
+ -6 - NaN or INF occured during evaluation of functions and derivatives. Please check your initial guess.
+ -7 - Method could not progress. Problem may be infeasible. Run FORCESdiagnostics on your problem to check for most common errors in the formulation.
+ -10 - The convex solver could not proceed due to an internal error
+ -100 - License error
+
+ [OUTPUT, EXITFLAG, INFO] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns
+ additional information about the last iterate:
+ INFO.it - number of iterations that lead to this result
+ INFO.it2opt - number of convex solves
+ INFO.res_eq - max. equality constraint residual
+ INFO.res_ineq - max. inequality constraint residual
+ INFO.rsnorm - norm of stationarity condition
+ INFO.rcompnorm - max of all complementarity violations
+ INFO.pobj - primal objective
+ INFO.mu - duality measure
+ INFO.solvetime - Time needed for solve (wall clock time)
+ INFO.fevalstime - Time needed for function evaluations (wall clock time)
+
+ See also COPYING
+
+'''
+
+import ctypes
+import os
+import numpy as np
+import numpy.ctypeslib as npct
+import sys
+
+#_lib = ctypes.CDLL(os.path.join(os.getcwd(),'FORCESNLPsolver/lib/FORCESNLPsolver.so'))
+try:
+ _lib = ctypes.CDLL(os.path.join(os.path.dirname(os.path.abspath(__file__)),'FORCESNLPsolver/lib/FORCESNLPsolver_withModel.so'))
+ csolver = getattr(_lib,'FORCESNLPsolver_solve')
+except:
+ _lib = ctypes.CDLL(os.path.join(os.path.dirname(os.path.abspath(__file__)),'FORCESNLPsolver/lib/libFORCESNLPsolver_withModel.so'))
+ csolver = getattr(_lib,'FORCESNLPsolver_solve')
+
+class FORCESNLPsolver_params_ctypes(ctypes.Structure):
+# @classmethod
+# def from_param(self):
+# return self
+ _fields_ = [('x0', ctypes.c_double * 1464),
+('xinit', ctypes.c_double * 16),
+('xfinal', ctypes.c_double * 11),
+('all_parameters', ctypes.c_double * 2501),
+]
+
+FORCESNLPsolver_params = {'x0' : np.array([]),
+'xinit' : np.array([]),
+'xfinal' : np.array([]),
+'all_parameters' : np.array([]),
+}
+params = {'x0' : np.array([]),
+'xinit' : np.array([]),
+'xfinal' : np.array([]),
+'all_parameters' : np.array([]),
+}
+
+class FORCESNLPsolver_outputs_ctypes(ctypes.Structure):
+# @classmethod
+# def from_param(self):
+# return self
+ _fields_ = [('x01', ctypes.c_double * 24),
+('x02', ctypes.c_double * 24),
+('x03', ctypes.c_double * 24),
+('x04', ctypes.c_double * 24),
+('x05', ctypes.c_double * 24),
+('x06', ctypes.c_double * 24),
+('x07', ctypes.c_double * 24),
+('x08', ctypes.c_double * 24),
+('x09', ctypes.c_double * 24),
+('x10', ctypes.c_double * 24),
+('x11', ctypes.c_double * 24),
+('x12', ctypes.c_double * 24),
+('x13', ctypes.c_double * 24),
+('x14', ctypes.c_double * 24),
+('x15', ctypes.c_double * 24),
+('x16', ctypes.c_double * 24),
+('x17', ctypes.c_double * 24),
+('x18', ctypes.c_double * 24),
+('x19', ctypes.c_double * 24),
+('x20', ctypes.c_double * 24),
+('x21', ctypes.c_double * 24),
+('x22', ctypes.c_double * 24),
+('x23', ctypes.c_double * 24),
+('x24', ctypes.c_double * 24),
+('x25', ctypes.c_double * 24),
+('x26', ctypes.c_double * 24),
+('x27', ctypes.c_double * 24),
+('x28', ctypes.c_double * 24),
+('x29', ctypes.c_double * 24),
+('x30', ctypes.c_double * 24),
+('x31', ctypes.c_double * 24),
+('x32', ctypes.c_double * 24),
+('x33', ctypes.c_double * 24),
+('x34', ctypes.c_double * 24),
+('x35', ctypes.c_double * 24),
+('x36', ctypes.c_double * 24),
+('x37', ctypes.c_double * 24),
+('x38', ctypes.c_double * 24),
+('x39', ctypes.c_double * 24),
+('x40', ctypes.c_double * 24),
+('x41', ctypes.c_double * 24),
+('x42', ctypes.c_double * 24),
+('x43', ctypes.c_double * 24),
+('x44', ctypes.c_double * 24),
+('x45', ctypes.c_double * 24),
+('x46', ctypes.c_double * 24),
+('x47', ctypes.c_double * 24),
+('x48', ctypes.c_double * 24),
+('x49', ctypes.c_double * 24),
+('x50', ctypes.c_double * 24),
+('x51', ctypes.c_double * 24),
+('x52', ctypes.c_double * 24),
+('x53', ctypes.c_double * 24),
+('x54', ctypes.c_double * 24),
+('x55', ctypes.c_double * 24),
+('x56', ctypes.c_double * 24),
+('x57', ctypes.c_double * 24),
+('x58', ctypes.c_double * 24),
+('x59', ctypes.c_double * 24),
+('x60', ctypes.c_double * 24),
+('x61', ctypes.c_double * 24),
+]
+
+FORCESNLPsolver_outputs = {'x01' : np.array([]),
+'x02' : np.array([]),
+'x03' : np.array([]),
+'x04' : np.array([]),
+'x05' : np.array([]),
+'x06' : np.array([]),
+'x07' : np.array([]),
+'x08' : np.array([]),
+'x09' : np.array([]),
+'x10' : np.array([]),
+'x11' : np.array([]),
+'x12' : np.array([]),
+'x13' : np.array([]),
+'x14' : np.array([]),
+'x15' : np.array([]),
+'x16' : np.array([]),
+'x17' : np.array([]),
+'x18' : np.array([]),
+'x19' : np.array([]),
+'x20' : np.array([]),
+'x21' : np.array([]),
+'x22' : np.array([]),
+'x23' : np.array([]),
+'x24' : np.array([]),
+'x25' : np.array([]),
+'x26' : np.array([]),
+'x27' : np.array([]),
+'x28' : np.array([]),
+'x29' : np.array([]),
+'x30' : np.array([]),
+'x31' : np.array([]),
+'x32' : np.array([]),
+'x33' : np.array([]),
+'x34' : np.array([]),
+'x35' : np.array([]),
+'x36' : np.array([]),
+'x37' : np.array([]),
+'x38' : np.array([]),
+'x39' : np.array([]),
+'x40' : np.array([]),
+'x41' : np.array([]),
+'x42' : np.array([]),
+'x43' : np.array([]),
+'x44' : np.array([]),
+'x45' : np.array([]),
+'x46' : np.array([]),
+'x47' : np.array([]),
+'x48' : np.array([]),
+'x49' : np.array([]),
+'x50' : np.array([]),
+'x51' : np.array([]),
+'x52' : np.array([]),
+'x53' : np.array([]),
+'x54' : np.array([]),
+'x55' : np.array([]),
+'x56' : np.array([]),
+'x57' : np.array([]),
+'x58' : np.array([]),
+'x59' : np.array([]),
+'x60' : np.array([]),
+'x61' : np.array([]),
+}
+
+
+class FORCESNLPsolver_info(ctypes.Structure):
+# @classmethod
+# def from_param(self):
+# return self
+ _fields_ = [('it', ctypes.c_int),
+('it2opt', ctypes.c_int),
+('res_eq', ctypes.c_double),
+('res_ineq', ctypes.c_double),
+('rsnorm', ctypes.c_double),
+('rcompnorm', ctypes.c_double),
+('pobj',ctypes.c_double),
+('dobj',ctypes.c_double),
+('dgap',ctypes.c_double),
+('rdgap',ctypes.c_double),
+('mu',ctypes.c_double),
+('mu_aff',ctypes.c_double),
+('sigma',ctypes.c_double),
+('lsit_aff', ctypes.c_int),
+('lsit_cc', ctypes.c_int),
+('step_aff',ctypes.c_double),
+('step_cc',ctypes.c_double),
+('solvetime',ctypes.c_double),
+('fevalstime',ctypes.c_double)
+]
+
+class FILE(ctypes.Structure):
+ pass
+if sys.version_info.major == 2:
+ PyFile_AsFile = ctypes.pythonapi.PyFile_AsFile # problem here with python 3 http://stackoverflow.com/questions/16130268/python-3-replacement-for-pyfile-asfile
+ PyFile_AsFile.argtypes = [ctypes.py_object]
+ PyFile_AsFile.restype = ctypes.POINTER(FILE)
+
+# determine data types for solver function prototype
+csolver.argtypes = ( ctypes.POINTER(FORCESNLPsolver_params_ctypes), ctypes.POINTER(FORCESNLPsolver_outputs_ctypes), ctypes.POINTER(FORCESNLPsolver_info), ctypes.POINTER(FILE))
+csolver.restype = ctypes.c_int
+
+def FORCESNLPsolver_solve(params_arg):
+ '''
+a Python wrapper for a fast solver generated by FORCES Pro v1.6.121
+
+ OUTPUT = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) solves a multistage problem
+ subject to the parameters supplied in the following dictionary:
+ PARAMS['x0'] - column vector of length 1464
+ PARAMS['xinit'] - column vector of length 16
+ PARAMS['xfinal'] - column vector of length 11
+ PARAMS['all_parameters'] - column vector of length 2501
+
+ OUTPUT returns the values of the last iteration of the solver where
+ OUTPUT['x01'] - column vector of size 24
+ OUTPUT['x02'] - column vector of size 24
+ OUTPUT['x03'] - column vector of size 24
+ OUTPUT['x04'] - column vector of size 24
+ OUTPUT['x05'] - column vector of size 24
+ OUTPUT['x06'] - column vector of size 24
+ OUTPUT['x07'] - column vector of size 24
+ OUTPUT['x08'] - column vector of size 24
+ OUTPUT['x09'] - column vector of size 24
+ OUTPUT['x10'] - column vector of size 24
+ OUTPUT['x11'] - column vector of size 24
+ OUTPUT['x12'] - column vector of size 24
+ OUTPUT['x13'] - column vector of size 24
+ OUTPUT['x14'] - column vector of size 24
+ OUTPUT['x15'] - column vector of size 24
+ OUTPUT['x16'] - column vector of size 24
+ OUTPUT['x17'] - column vector of size 24
+ OUTPUT['x18'] - column vector of size 24
+ OUTPUT['x19'] - column vector of size 24
+ OUTPUT['x20'] - column vector of size 24
+ OUTPUT['x21'] - column vector of size 24
+ OUTPUT['x22'] - column vector of size 24
+ OUTPUT['x23'] - column vector of size 24
+ OUTPUT['x24'] - column vector of size 24
+ OUTPUT['x25'] - column vector of size 24
+ OUTPUT['x26'] - column vector of size 24
+ OUTPUT['x27'] - column vector of size 24
+ OUTPUT['x28'] - column vector of size 24
+ OUTPUT['x29'] - column vector of size 24
+ OUTPUT['x30'] - column vector of size 24
+ OUTPUT['x31'] - column vector of size 24
+ OUTPUT['x32'] - column vector of size 24
+ OUTPUT['x33'] - column vector of size 24
+ OUTPUT['x34'] - column vector of size 24
+ OUTPUT['x35'] - column vector of size 24
+ OUTPUT['x36'] - column vector of size 24
+ OUTPUT['x37'] - column vector of size 24
+ OUTPUT['x38'] - column vector of size 24
+ OUTPUT['x39'] - column vector of size 24
+ OUTPUT['x40'] - column vector of size 24
+ OUTPUT['x41'] - column vector of size 24
+ OUTPUT['x42'] - column vector of size 24
+ OUTPUT['x43'] - column vector of size 24
+ OUTPUT['x44'] - column vector of size 24
+ OUTPUT['x45'] - column vector of size 24
+ OUTPUT['x46'] - column vector of size 24
+ OUTPUT['x47'] - column vector of size 24
+ OUTPUT['x48'] - column vector of size 24
+ OUTPUT['x49'] - column vector of size 24
+ OUTPUT['x50'] - column vector of size 24
+ OUTPUT['x51'] - column vector of size 24
+ OUTPUT['x52'] - column vector of size 24
+ OUTPUT['x53'] - column vector of size 24
+ OUTPUT['x54'] - column vector of size 24
+ OUTPUT['x55'] - column vector of size 24
+ OUTPUT['x56'] - column vector of size 24
+ OUTPUT['x57'] - column vector of size 24
+ OUTPUT['x58'] - column vector of size 24
+ OUTPUT['x59'] - column vector of size 24
+ OUTPUT['x60'] - column vector of size 24
+ OUTPUT['x61'] - column vector of size 24
+
+ [OUTPUT, EXITFLAG] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns additionally
+ the integer EXITFLAG indicating the state of the solution with
+ 1 - Optimal solution has been found (subject to desired accuracy)
+ 2 - (only branch-and-bound) A feasible point has been identified for which the objective value is no more than codeoptions.mip.mipgap*100 per cent worse than the global optimum
+ 0 - Timeout - maximum number of iterations reached
+ -1 - (only branch-and-bound) Infeasible problem (problems solving the root relaxation to the desired accuracy)
+ -2 - (only branch-and-bound) Out of memory - cannot fit branch and bound nodes into pre-allocated memory.
+ -6 - NaN or INF occured during evaluation of functions and derivatives. Please check your initial guess.
+ -7 - Method could not progress. Problem may be infeasible. Run FORCESdiagnostics on your problem to check for most common errors in the formulation.
+ -10 - The convex solver could not proceed due to an internal error
+ -100 - License error
+
+ [OUTPUT, EXITFLAG, INFO] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns
+ additional information about the last iterate:
+ INFO.it - number of iterations that lead to this result
+ INFO.it2opt - number of convex solves
+ INFO.res_eq - max. equality constraint residual
+ INFO.res_ineq - max. inequality constraint residual
+ INFO.rsnorm - norm of stationarity condition
+ INFO.rcompnorm - max of all complementarity violations
+ INFO.pobj - primal objective
+ INFO.mu - duality measure
+ INFO.solvetime - Time needed for solve (wall clock time)
+ INFO.fevalstime - Time needed for function evaluations (wall clock time)
+
+ See also COPYING
+
+ '''
+ global _lib
+
+ # convert parameters
+ params_py = FORCESNLPsolver_params_ctypes()
+ for par in params_arg:
+ try:
+ #setattr(params_py, par, npct.as_ctypes(np.reshape(params_arg[par],np.size(params_arg[par]),order='A')))
+ params_arg[par] = np.require(params_arg[par], dtype=np.float64, requirements='F')
+ setattr(params_py, par, npct.as_ctypes(np.reshape(params_arg[par],np.size(params_arg[par]),order='F')))
+ except:
+ raise ValueError('Parameter ' + par + ' does not have the appropriate dimensions or data type. Please use numpy arrays for parameters.')
+
+ outputs_py = FORCESNLPsolver_outputs_ctypes()
+ info_py = FORCESNLPsolver_info()
+ if sys.version_info.major == 2:
+ if sys.platform.startswith('win'):
+ fp = None # if set to none, the solver prints to stdout by default - necessary because we have an access violation otherwise under windows
+ else:
+ #fp = open('stdout_temp.txt','w')
+ fp = sys.stdout
+ try:
+ PyFile_AsFile.restype = ctypes.POINTER(FILE)
+ exitflag = _lib.FORCESNLPsolver_solve( params_py, ctypes.byref(outputs_py), ctypes.byref(info_py), PyFile_AsFile(fp) , _lib.FORCESNLPsolver_casadi2forces )
+ #fp = open('stdout_temp.txt','r')
+ #print (fp.read())
+ #fp.close()
+ except:
+ #print 'Problem with solver'
+ raise
+ elif sys.version_info.major == 3:
+ if sys.platform.startswith('win'):
+ libc = ctypes.cdll.msvcrt
+ elif sys.platform.startswith('darwin'):
+ libc = ctypes.CDLL('libc.dylib')
+ else:
+ libc = ctypes.CDLL('libc.so.6') # Open libc
+ cfopen = getattr(libc,'fopen') # Get its fopen
+ cfopen.restype = ctypes.POINTER(FILE) # Yes, fopen gives a file pointer
+ cfopen.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # Yes, fopen gives a file pointer
+ fp = cfopen('stdout_temp.txt'.encode('utf-8'),'w'.encode('utf-8')) # Use that fopen
+
+ try:
+ if sys.platform.startswith('win'):
+ exitflag = _lib.FORCESNLPsolver_solve( params_py, ctypes.byref(outputs_py), ctypes.byref(info_py), None , _lib.FORCESNLPsolver_casadi2forces)
+ else:
+ exitflag = _lib.FORCESNLPsolver_solve( params_py, ctypes.byref(outputs_py), ctypes.byref(info_py), fp , _lib.FORCESNLPsolver_casadi2forces)
+ libc.fclose(fp)
+ fptemp = open('stdout_temp.txt','r')
+ print (fptemp.read())
+ fptemp.close()
+ except:
+ #print 'Problem with solver'
+ raise
+
+ # convert outputs
+ for out in FORCESNLPsolver_outputs:
+ FORCESNLPsolver_outputs[out] = npct.as_array(getattr(outputs_py,out))
+
+ return FORCESNLPsolver_outputs,int(exitflag),info_py
+
+solve = FORCESNLPsolver_solve
+
+
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_simulinkBlock.c b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_simulinkBlock.c
new file mode 100644
index 0000000..13ce888
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_simulinkBlock.c
@@ -0,0 +1,959 @@
+/*
+FORCESNLPsolver : A fast customized optimization solver.
+
+Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+
+
+This software is intended for simulation and testing purposes only.
+Use of this software for any commercial purpose is prohibited.
+
+This program is distributed in the hope that it will be useful.
+EMBOTECH makes NO WARRANTIES with respect to the use of the software
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.
+
+EMBOTECH shall not have any liability for any damage arising from the use
+of the software.
+
+This Agreement shall exclusively be governed by and interpreted in
+accordance with the laws of Switzerland, excluding its principles
+of conflict of laws. The Courts of Zurich-City shall have exclusive
+jurisdiction in case of any dispute.
+
+*/
+
+
+#define S_FUNCTION_LEVEL 2
+#define S_FUNCTION_NAME FORCESNLPsolver_simulinkBlock
+
+#include "simstruc.h"
+
+
+
+/* SYSTEM INCLUDES FOR TIMING ------------------------------------------ */
+
+
+/* include FORCES functions and defs */
+#include "../include/FORCESNLPsolver.h"
+
+#if defined(MATLAB_MEX_FILE)
+#include "tmwtypes.h"
+#include "simstruc_types.h"
+#else
+#include "rtwtypes.h"
+#endif
+
+typedef FORCESNLPsolverinterface_float FORCESNLPsolvernmpc_float;
+
+extern void FORCESNLPsolver_casadi2forces(double *x, double *y, double *l, double *p, double *f, double *nabla_f, double *c, double *nabla_c, double *h, double *nabla_h, double *hess, solver_int32_default stage);
+FORCESNLPsolver_extfunc pt2function = &FORCESNLPsolver_casadi2forces;
+
+
+
+
+/*====================*
+ * S-function methods *
+ *====================*/
+/* Function: mdlInitializeSizes =========================================
+ * Abstract:
+ * Setup sizes of the various vectors.
+ */
+static void mdlInitializeSizes(SimStruct *S)
+{
+
+ DECL_AND_INIT_DIMSINFO(inputDimsInfo);
+ DECL_AND_INIT_DIMSINFO(outputDimsInfo);
+ ssSetNumSFcnParams(S, 0);
+ if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S))
+ {
+ return; /* Parameter mismatch will be reported by Simulink */
+ }
+
+ /* initialize size of continuous and discrete states to zero */
+ ssSetNumContStates(S, 0);
+ ssSetNumDiscStates(S, 0);
+
+ /* initialize input ports - there are 4 in total */
+ if (!ssSetNumInputPorts(S, 4)) return;
+
+ /* Input Port 0 */
+ ssSetInputPortMatrixDimensions(S, 0, 1464, 1);
+ ssSetInputPortDataType(S, 0, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 0, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 0, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 0, 1); /*direct input signal access*/
+ /* Input Port 1 */
+ ssSetInputPortMatrixDimensions(S, 1, 16, 1);
+ ssSetInputPortDataType(S, 1, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 1, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 1, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 1, 1); /*direct input signal access*/
+ /* Input Port 2 */
+ ssSetInputPortMatrixDimensions(S, 2, 11, 1);
+ ssSetInputPortDataType(S, 2, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 2, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 2, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 2, 1); /*direct input signal access*/
+ /* Input Port 3 */
+ ssSetInputPortMatrixDimensions(S, 3, 2501, 1);
+ ssSetInputPortDataType(S, 3, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 3, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 3, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 3, 1); /*direct input signal access*/
+
+
+ /* initialize output ports - there are 61 in total */
+ if (!ssSetNumOutputPorts(S, 61)) return;
+
+ /* Output Port 0 */
+ ssSetOutputPortMatrixDimensions(S, 0, 24, 1);
+ ssSetOutputPortDataType(S, 0, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 0, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 1 */
+ ssSetOutputPortMatrixDimensions(S, 1, 24, 1);
+ ssSetOutputPortDataType(S, 1, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 1, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 2 */
+ ssSetOutputPortMatrixDimensions(S, 2, 24, 1);
+ ssSetOutputPortDataType(S, 2, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 2, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 3 */
+ ssSetOutputPortMatrixDimensions(S, 3, 24, 1);
+ ssSetOutputPortDataType(S, 3, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 3, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 4 */
+ ssSetOutputPortMatrixDimensions(S, 4, 24, 1);
+ ssSetOutputPortDataType(S, 4, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 4, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 5 */
+ ssSetOutputPortMatrixDimensions(S, 5, 24, 1);
+ ssSetOutputPortDataType(S, 5, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 5, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 6 */
+ ssSetOutputPortMatrixDimensions(S, 6, 24, 1);
+ ssSetOutputPortDataType(S, 6, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 6, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 7 */
+ ssSetOutputPortMatrixDimensions(S, 7, 24, 1);
+ ssSetOutputPortDataType(S, 7, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 7, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 8 */
+ ssSetOutputPortMatrixDimensions(S, 8, 24, 1);
+ ssSetOutputPortDataType(S, 8, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 8, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 9 */
+ ssSetOutputPortMatrixDimensions(S, 9, 24, 1);
+ ssSetOutputPortDataType(S, 9, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 9, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 10 */
+ ssSetOutputPortMatrixDimensions(S, 10, 24, 1);
+ ssSetOutputPortDataType(S, 10, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 10, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 11 */
+ ssSetOutputPortMatrixDimensions(S, 11, 24, 1);
+ ssSetOutputPortDataType(S, 11, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 11, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 12 */
+ ssSetOutputPortMatrixDimensions(S, 12, 24, 1);
+ ssSetOutputPortDataType(S, 12, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 12, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 13 */
+ ssSetOutputPortMatrixDimensions(S, 13, 24, 1);
+ ssSetOutputPortDataType(S, 13, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 13, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 14 */
+ ssSetOutputPortMatrixDimensions(S, 14, 24, 1);
+ ssSetOutputPortDataType(S, 14, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 14, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 15 */
+ ssSetOutputPortMatrixDimensions(S, 15, 24, 1);
+ ssSetOutputPortDataType(S, 15, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 15, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 16 */
+ ssSetOutputPortMatrixDimensions(S, 16, 24, 1);
+ ssSetOutputPortDataType(S, 16, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 16, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 17 */
+ ssSetOutputPortMatrixDimensions(S, 17, 24, 1);
+ ssSetOutputPortDataType(S, 17, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 17, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 18 */
+ ssSetOutputPortMatrixDimensions(S, 18, 24, 1);
+ ssSetOutputPortDataType(S, 18, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 18, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 19 */
+ ssSetOutputPortMatrixDimensions(S, 19, 24, 1);
+ ssSetOutputPortDataType(S, 19, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 19, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 20 */
+ ssSetOutputPortMatrixDimensions(S, 20, 24, 1);
+ ssSetOutputPortDataType(S, 20, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 20, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 21 */
+ ssSetOutputPortMatrixDimensions(S, 21, 24, 1);
+ ssSetOutputPortDataType(S, 21, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 21, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 22 */
+ ssSetOutputPortMatrixDimensions(S, 22, 24, 1);
+ ssSetOutputPortDataType(S, 22, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 22, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 23 */
+ ssSetOutputPortMatrixDimensions(S, 23, 24, 1);
+ ssSetOutputPortDataType(S, 23, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 23, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 24 */
+ ssSetOutputPortMatrixDimensions(S, 24, 24, 1);
+ ssSetOutputPortDataType(S, 24, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 24, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 25 */
+ ssSetOutputPortMatrixDimensions(S, 25, 24, 1);
+ ssSetOutputPortDataType(S, 25, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 25, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 26 */
+ ssSetOutputPortMatrixDimensions(S, 26, 24, 1);
+ ssSetOutputPortDataType(S, 26, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 26, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 27 */
+ ssSetOutputPortMatrixDimensions(S, 27, 24, 1);
+ ssSetOutputPortDataType(S, 27, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 27, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 28 */
+ ssSetOutputPortMatrixDimensions(S, 28, 24, 1);
+ ssSetOutputPortDataType(S, 28, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 28, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 29 */
+ ssSetOutputPortMatrixDimensions(S, 29, 24, 1);
+ ssSetOutputPortDataType(S, 29, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 29, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 30 */
+ ssSetOutputPortMatrixDimensions(S, 30, 24, 1);
+ ssSetOutputPortDataType(S, 30, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 30, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 31 */
+ ssSetOutputPortMatrixDimensions(S, 31, 24, 1);
+ ssSetOutputPortDataType(S, 31, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 31, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 32 */
+ ssSetOutputPortMatrixDimensions(S, 32, 24, 1);
+ ssSetOutputPortDataType(S, 32, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 32, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 33 */
+ ssSetOutputPortMatrixDimensions(S, 33, 24, 1);
+ ssSetOutputPortDataType(S, 33, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 33, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 34 */
+ ssSetOutputPortMatrixDimensions(S, 34, 24, 1);
+ ssSetOutputPortDataType(S, 34, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 34, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 35 */
+ ssSetOutputPortMatrixDimensions(S, 35, 24, 1);
+ ssSetOutputPortDataType(S, 35, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 35, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 36 */
+ ssSetOutputPortMatrixDimensions(S, 36, 24, 1);
+ ssSetOutputPortDataType(S, 36, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 36, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 37 */
+ ssSetOutputPortMatrixDimensions(S, 37, 24, 1);
+ ssSetOutputPortDataType(S, 37, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 37, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 38 */
+ ssSetOutputPortMatrixDimensions(S, 38, 24, 1);
+ ssSetOutputPortDataType(S, 38, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 38, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 39 */
+ ssSetOutputPortMatrixDimensions(S, 39, 24, 1);
+ ssSetOutputPortDataType(S, 39, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 39, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 40 */
+ ssSetOutputPortMatrixDimensions(S, 40, 24, 1);
+ ssSetOutputPortDataType(S, 40, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 40, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 41 */
+ ssSetOutputPortMatrixDimensions(S, 41, 24, 1);
+ ssSetOutputPortDataType(S, 41, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 41, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 42 */
+ ssSetOutputPortMatrixDimensions(S, 42, 24, 1);
+ ssSetOutputPortDataType(S, 42, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 42, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 43 */
+ ssSetOutputPortMatrixDimensions(S, 43, 24, 1);
+ ssSetOutputPortDataType(S, 43, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 43, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 44 */
+ ssSetOutputPortMatrixDimensions(S, 44, 24, 1);
+ ssSetOutputPortDataType(S, 44, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 44, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 45 */
+ ssSetOutputPortMatrixDimensions(S, 45, 24, 1);
+ ssSetOutputPortDataType(S, 45, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 45, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 46 */
+ ssSetOutputPortMatrixDimensions(S, 46, 24, 1);
+ ssSetOutputPortDataType(S, 46, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 46, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 47 */
+ ssSetOutputPortMatrixDimensions(S, 47, 24, 1);
+ ssSetOutputPortDataType(S, 47, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 47, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 48 */
+ ssSetOutputPortMatrixDimensions(S, 48, 24, 1);
+ ssSetOutputPortDataType(S, 48, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 48, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 49 */
+ ssSetOutputPortMatrixDimensions(S, 49, 24, 1);
+ ssSetOutputPortDataType(S, 49, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 49, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 50 */
+ ssSetOutputPortMatrixDimensions(S, 50, 24, 1);
+ ssSetOutputPortDataType(S, 50, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 50, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 51 */
+ ssSetOutputPortMatrixDimensions(S, 51, 24, 1);
+ ssSetOutputPortDataType(S, 51, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 51, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 52 */
+ ssSetOutputPortMatrixDimensions(S, 52, 24, 1);
+ ssSetOutputPortDataType(S, 52, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 52, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 53 */
+ ssSetOutputPortMatrixDimensions(S, 53, 24, 1);
+ ssSetOutputPortDataType(S, 53, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 53, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 54 */
+ ssSetOutputPortMatrixDimensions(S, 54, 24, 1);
+ ssSetOutputPortDataType(S, 54, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 54, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 55 */
+ ssSetOutputPortMatrixDimensions(S, 55, 24, 1);
+ ssSetOutputPortDataType(S, 55, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 55, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 56 */
+ ssSetOutputPortMatrixDimensions(S, 56, 24, 1);
+ ssSetOutputPortDataType(S, 56, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 56, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 57 */
+ ssSetOutputPortMatrixDimensions(S, 57, 24, 1);
+ ssSetOutputPortDataType(S, 57, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 57, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 58 */
+ ssSetOutputPortMatrixDimensions(S, 58, 24, 1);
+ ssSetOutputPortDataType(S, 58, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 58, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 59 */
+ ssSetOutputPortMatrixDimensions(S, 59, 24, 1);
+ ssSetOutputPortDataType(S, 59, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 59, COMPLEX_NO); /* no complex signals suppported */
+
+ /* Output Port 60 */
+ ssSetOutputPortMatrixDimensions(S, 60, 24, 1);
+ ssSetOutputPortDataType(S, 60, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 60, COMPLEX_NO); /* no complex signals suppported */
+
+
+ /* set sampling time */
+ ssSetNumSampleTimes(S, 1);
+
+ /* set internal memory of block */
+ ssSetNumRWork(S, 0);
+ ssSetNumIWork(S, 0);
+ ssSetNumPWork(S, 0);
+ ssSetNumModes(S, 0);
+ ssSetNumNonsampledZCs(S, 0);
+
+ /* Take care when specifying exception free code - see sfuntmpl_doc.c */
+ /* SS_OPTION_USE_TLC_WITH_ACCELERATOR removed */
+ /* SS_OPTION_USE_TLC_WITH_ACCELERATOR removed */
+ /* ssSetOptions(S, (SS_OPTION_EXCEPTION_FREE_CODE |
+ SS_OPTION_WORKS_WITH_CODE_REUSE)); */
+ ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE );
+
+
+}
+
+#if defined(MATLAB_MEX_FILE)
+#define MDL_SET_INPUT_PORT_DIMENSION_INFO
+static void mdlSetInputPortDimensionInfo(SimStruct *S,
+ int_T port,
+ const DimsInfo_T *dimsInfo)
+{
+ if(!ssSetInputPortDimensionInfo(S, port, dimsInfo)) return;
+}
+#endif
+
+#define MDL_SET_OUTPUT_PORT_DIMENSION_INFO
+#if defined(MDL_SET_OUTPUT_PORT_DIMENSION_INFO)
+static void mdlSetOutputPortDimensionInfo(SimStruct *S,
+ int_T port,
+ const DimsInfo_T *dimsInfo)
+{
+ if (!ssSetOutputPortDimensionInfo(S, port, dimsInfo)) return;
+}
+#endif
+# define MDL_SET_INPUT_PORT_FRAME_DATA
+static void mdlSetInputPortFrameData(SimStruct *S,
+ int_T port,
+ Frame_T frameData)
+{
+ ssSetInputPortFrameData(S, port, frameData);
+}
+/* Function: mdlInitializeSampleTimes =========================================
+ * Abstract:
+ * Specifiy the sample time.
+ */
+static void mdlInitializeSampleTimes(SimStruct *S)
+{
+ ssSetSampleTime(S, 0, INHERITED_SAMPLE_TIME);
+ ssSetOffsetTime(S, 0, 0.0);
+}
+
+#define MDL_SET_INPUT_PORT_DATA_TYPE
+static void mdlSetInputPortDataType(SimStruct *S, solver_int32_default port, DTypeId dType)
+{
+ ssSetInputPortDataType( S, 0, dType);
+}
+#define MDL_SET_OUTPUT_PORT_DATA_TYPE
+static void mdlSetOutputPortDataType(SimStruct *S, solver_int32_default port, DTypeId dType)
+{
+ ssSetOutputPortDataType(S, 0, dType);
+}
+
+#define MDL_SET_DEFAULT_PORT_DATA_TYPES
+static void mdlSetDefaultPortDataTypes(SimStruct *S)
+{
+ ssSetInputPortDataType( S, 0, SS_DOUBLE);
+ ssSetOutputPortDataType(S, 0, SS_DOUBLE);
+}
+
+
+
+
+
+/* Function: mdlOutputs =======================================================
+ *
+*/
+static void mdlOutputs(SimStruct *S, int_T tid)
+{
+ solver_int32_default i, j, k;
+
+ /* file pointer for printing */
+ FILE *fp = NULL;
+
+ /* Simulink data */
+ const real_T *x0 = (const real_T*) ssGetInputPortSignal(S,0);
+ const real_T *xinit = (const real_T*) ssGetInputPortSignal(S,1);
+ const real_T *xfinal = (const real_T*) ssGetInputPortSignal(S,2);
+ const real_T *all_parameters = (const real_T*) ssGetInputPortSignal(S,3);
+
+ real_T *x01 = (real_T*) ssGetOutputPortSignal(S,0);
+ real_T *x02 = (real_T*) ssGetOutputPortSignal(S,1);
+ real_T *x03 = (real_T*) ssGetOutputPortSignal(S,2);
+ real_T *x04 = (real_T*) ssGetOutputPortSignal(S,3);
+ real_T *x05 = (real_T*) ssGetOutputPortSignal(S,4);
+ real_T *x06 = (real_T*) ssGetOutputPortSignal(S,5);
+ real_T *x07 = (real_T*) ssGetOutputPortSignal(S,6);
+ real_T *x08 = (real_T*) ssGetOutputPortSignal(S,7);
+ real_T *x09 = (real_T*) ssGetOutputPortSignal(S,8);
+ real_T *x10 = (real_T*) ssGetOutputPortSignal(S,9);
+ real_T *x11 = (real_T*) ssGetOutputPortSignal(S,10);
+ real_T *x12 = (real_T*) ssGetOutputPortSignal(S,11);
+ real_T *x13 = (real_T*) ssGetOutputPortSignal(S,12);
+ real_T *x14 = (real_T*) ssGetOutputPortSignal(S,13);
+ real_T *x15 = (real_T*) ssGetOutputPortSignal(S,14);
+ real_T *x16 = (real_T*) ssGetOutputPortSignal(S,15);
+ real_T *x17 = (real_T*) ssGetOutputPortSignal(S,16);
+ real_T *x18 = (real_T*) ssGetOutputPortSignal(S,17);
+ real_T *x19 = (real_T*) ssGetOutputPortSignal(S,18);
+ real_T *x20 = (real_T*) ssGetOutputPortSignal(S,19);
+ real_T *x21 = (real_T*) ssGetOutputPortSignal(S,20);
+ real_T *x22 = (real_T*) ssGetOutputPortSignal(S,21);
+ real_T *x23 = (real_T*) ssGetOutputPortSignal(S,22);
+ real_T *x24 = (real_T*) ssGetOutputPortSignal(S,23);
+ real_T *x25 = (real_T*) ssGetOutputPortSignal(S,24);
+ real_T *x26 = (real_T*) ssGetOutputPortSignal(S,25);
+ real_T *x27 = (real_T*) ssGetOutputPortSignal(S,26);
+ real_T *x28 = (real_T*) ssGetOutputPortSignal(S,27);
+ real_T *x29 = (real_T*) ssGetOutputPortSignal(S,28);
+ real_T *x30 = (real_T*) ssGetOutputPortSignal(S,29);
+ real_T *x31 = (real_T*) ssGetOutputPortSignal(S,30);
+ real_T *x32 = (real_T*) ssGetOutputPortSignal(S,31);
+ real_T *x33 = (real_T*) ssGetOutputPortSignal(S,32);
+ real_T *x34 = (real_T*) ssGetOutputPortSignal(S,33);
+ real_T *x35 = (real_T*) ssGetOutputPortSignal(S,34);
+ real_T *x36 = (real_T*) ssGetOutputPortSignal(S,35);
+ real_T *x37 = (real_T*) ssGetOutputPortSignal(S,36);
+ real_T *x38 = (real_T*) ssGetOutputPortSignal(S,37);
+ real_T *x39 = (real_T*) ssGetOutputPortSignal(S,38);
+ real_T *x40 = (real_T*) ssGetOutputPortSignal(S,39);
+ real_T *x41 = (real_T*) ssGetOutputPortSignal(S,40);
+ real_T *x42 = (real_T*) ssGetOutputPortSignal(S,41);
+ real_T *x43 = (real_T*) ssGetOutputPortSignal(S,42);
+ real_T *x44 = (real_T*) ssGetOutputPortSignal(S,43);
+ real_T *x45 = (real_T*) ssGetOutputPortSignal(S,44);
+ real_T *x46 = (real_T*) ssGetOutputPortSignal(S,45);
+ real_T *x47 = (real_T*) ssGetOutputPortSignal(S,46);
+ real_T *x48 = (real_T*) ssGetOutputPortSignal(S,47);
+ real_T *x49 = (real_T*) ssGetOutputPortSignal(S,48);
+ real_T *x50 = (real_T*) ssGetOutputPortSignal(S,49);
+ real_T *x51 = (real_T*) ssGetOutputPortSignal(S,50);
+ real_T *x52 = (real_T*) ssGetOutputPortSignal(S,51);
+ real_T *x53 = (real_T*) ssGetOutputPortSignal(S,52);
+ real_T *x54 = (real_T*) ssGetOutputPortSignal(S,53);
+ real_T *x55 = (real_T*) ssGetOutputPortSignal(S,54);
+ real_T *x56 = (real_T*) ssGetOutputPortSignal(S,55);
+ real_T *x57 = (real_T*) ssGetOutputPortSignal(S,56);
+ real_T *x58 = (real_T*) ssGetOutputPortSignal(S,57);
+ real_T *x59 = (real_T*) ssGetOutputPortSignal(S,58);
+ real_T *x60 = (real_T*) ssGetOutputPortSignal(S,59);
+ real_T *x61 = (real_T*) ssGetOutputPortSignal(S,60);
+
+
+
+ /* Solver data */
+ FORCESNLPsolver_params params;
+ FORCESNLPsolver_output output;
+ FORCESNLPsolver_info info;
+ solver_int32_default exitflag;
+
+ /* Extra NMPC data */
+
+
+ /* Copy inputs */
+ for( i=0; i<1464; i++)
+ {
+ params.x0[i] = (double) x0[i];
+ }
+
+ for( i=0; i<16; i++)
+ {
+ params.xinit[i] = (double) xinit[i];
+ }
+
+ for( i=0; i<11; i++)
+ {
+ params.xfinal[i] = (double) xfinal[i];
+ }
+
+ for( i=0; i<2501; i++)
+ {
+ params.all_parameters[i] = (double) all_parameters[i];
+ }
+
+
+
+
+
+ #if FORCESNLPsolver_SET_PRINTLEVEL > 0
+ /* Prepare file for printfs */
+ fp = fopen("stdout_temp","w+");
+ if( fp == NULL )
+ {
+ mexErrMsgTxt("freopen of stdout did not work.");
+ }
+ rewind(fp);
+ #endif
+
+ /* Call solver */
+ exitflag = FORCESNLPsolver_solve(¶ms, &output, &info, fp , pt2function);
+
+ #if FORCESNLPsolver_SET_PRINTLEVEL > 0
+ /* Read contents of printfs printed to file */
+ rewind(fp);
+ while( (i = fgetc(fp)) != EOF )
+ {
+ ssPrintf("%c",i);
+ }
+ fclose(fp);
+ #endif
+
+
+
+ /* Copy outputs */
+ for( i=0; i<24; i++)
+ {
+ x01[i] = (real_T) output.x01[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x02[i] = (real_T) output.x02[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x03[i] = (real_T) output.x03[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x04[i] = (real_T) output.x04[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x05[i] = (real_T) output.x05[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x06[i] = (real_T) output.x06[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x07[i] = (real_T) output.x07[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x08[i] = (real_T) output.x08[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x09[i] = (real_T) output.x09[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x10[i] = (real_T) output.x10[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x11[i] = (real_T) output.x11[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x12[i] = (real_T) output.x12[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x13[i] = (real_T) output.x13[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x14[i] = (real_T) output.x14[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x15[i] = (real_T) output.x15[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x16[i] = (real_T) output.x16[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x17[i] = (real_T) output.x17[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x18[i] = (real_T) output.x18[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x19[i] = (real_T) output.x19[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x20[i] = (real_T) output.x20[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x21[i] = (real_T) output.x21[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x22[i] = (real_T) output.x22[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x23[i] = (real_T) output.x23[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x24[i] = (real_T) output.x24[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x25[i] = (real_T) output.x25[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x26[i] = (real_T) output.x26[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x27[i] = (real_T) output.x27[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x28[i] = (real_T) output.x28[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x29[i] = (real_T) output.x29[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x30[i] = (real_T) output.x30[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x31[i] = (real_T) output.x31[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x32[i] = (real_T) output.x32[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x33[i] = (real_T) output.x33[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x34[i] = (real_T) output.x34[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x35[i] = (real_T) output.x35[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x36[i] = (real_T) output.x36[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x37[i] = (real_T) output.x37[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x38[i] = (real_T) output.x38[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x39[i] = (real_T) output.x39[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x40[i] = (real_T) output.x40[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x41[i] = (real_T) output.x41[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x42[i] = (real_T) output.x42[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x43[i] = (real_T) output.x43[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x44[i] = (real_T) output.x44[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x45[i] = (real_T) output.x45[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x46[i] = (real_T) output.x46[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x47[i] = (real_T) output.x47[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x48[i] = (real_T) output.x48[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x49[i] = (real_T) output.x49[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x50[i] = (real_T) output.x50[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x51[i] = (real_T) output.x51[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x52[i] = (real_T) output.x52[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x53[i] = (real_T) output.x53[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x54[i] = (real_T) output.x54[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x55[i] = (real_T) output.x55[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x56[i] = (real_T) output.x56[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x57[i] = (real_T) output.x57[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x58[i] = (real_T) output.x58[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x59[i] = (real_T) output.x59[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x60[i] = (real_T) output.x60[i];
+ }
+
+ for( i=0; i<24; i++)
+ {
+ x61[i] = (real_T) output.x61[i];
+ }
+
+
+}
+
+
+
+
+
+/* Function: mdlTerminate =====================================================
+ * Abstract:
+ * In this function, you should perform any actions that are necessary
+ * at the termination of a simulation. For example, if memory was
+ * allocated in mdlStart, this is the place to free it.
+ */
+static void mdlTerminate(SimStruct *S)
+{
+}
+#ifdef MATLAB_MEX_FILE /* Is this file being compiled as a MEX-file? */
+#include "simulink.c" /* MEX-file interface mechanism */
+#else
+#include "cg_sfun.h" /* Code generation registration function */
+#endif
+
+
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_simulinkBlockcompact.c b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_simulinkBlockcompact.c
new file mode 100644
index 0000000..74dc0a6
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolver_simulinkBlockcompact.c
@@ -0,0 +1,659 @@
+/*
+FORCESNLPsolver : A fast customized optimization solver.
+
+Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+
+
+This software is intended for simulation and testing purposes only.
+Use of this software for any commercial purpose is prohibited.
+
+This program is distributed in the hope that it will be useful.
+EMBOTECH makes NO WARRANTIES with respect to the use of the software
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.
+
+EMBOTECH shall not have any liability for any damage arising from the use
+of the software.
+
+This Agreement shall exclusively be governed by and interpreted in
+accordance with the laws of Switzerland, excluding its principles
+of conflict of laws. The Courts of Zurich-City shall have exclusive
+jurisdiction in case of any dispute.
+
+*/
+
+
+#define S_FUNCTION_LEVEL 2
+#define S_FUNCTION_NAME FORCESNLPsolver_simulinkBlockcompact
+
+#include "simstruc.h"
+
+
+
+/* SYSTEM INCLUDES FOR TIMING ------------------------------------------ */
+
+
+/* include FORCES functions and defs */
+#include "../include/FORCESNLPsolver.h"
+
+#if defined(MATLAB_MEX_FILE)
+#include "tmwtypes.h"
+#include "simstruc_types.h"
+#else
+#include "rtwtypes.h"
+#endif
+
+typedef FORCESNLPsolverinterface_float FORCESNLPsolvernmpc_float;
+
+extern void FORCESNLPsolver_casadi2forces(double *x, double *y, double *l, double *p, double *f, double *nabla_f, double *c, double *nabla_c, double *h, double *nabla_h, double *hess, solver_int32_default stage);
+FORCESNLPsolver_extfunc pt2function = &FORCESNLPsolver_casadi2forces;
+
+
+
+
+/*====================*
+ * S-function methods *
+ *====================*/
+/* Function: mdlInitializeSizes =========================================
+ * Abstract:
+ * Setup sizes of the various vectors.
+ */
+static void mdlInitializeSizes(SimStruct *S)
+{
+
+ DECL_AND_INIT_DIMSINFO(inputDimsInfo);
+ DECL_AND_INIT_DIMSINFO(outputDimsInfo);
+ ssSetNumSFcnParams(S, 0);
+ if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S))
+ {
+ return; /* Parameter mismatch will be reported by Simulink */
+ }
+
+ /* initialize size of continuous and discrete states to zero */
+ ssSetNumContStates(S, 0);
+ ssSetNumDiscStates(S, 0);
+
+ /* initialize input ports - there are 4 in total */
+ if (!ssSetNumInputPorts(S, 4)) return;
+
+ /* Input Port 0 */
+ ssSetInputPortMatrixDimensions(S, 0, 1464, 1);
+ ssSetInputPortDataType(S, 0, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 0, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 0, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 0, 1); /*direct input signal access*/
+ /* Input Port 1 */
+ ssSetInputPortMatrixDimensions(S, 1, 16, 1);
+ ssSetInputPortDataType(S, 1, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 1, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 1, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 1, 1); /*direct input signal access*/
+ /* Input Port 2 */
+ ssSetInputPortMatrixDimensions(S, 2, 11, 1);
+ ssSetInputPortDataType(S, 2, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 2, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 2, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 2, 1); /*direct input signal access*/
+ /* Input Port 3 */
+ ssSetInputPortMatrixDimensions(S, 3, 2501, 1);
+ ssSetInputPortDataType(S, 3, SS_DOUBLE);
+ ssSetInputPortComplexSignal(S, 3, COMPLEX_NO); /* no complex signals suppported */
+ ssSetInputPortDirectFeedThrough(S, 3, 1); /* Feedthrough enabled */
+ ssSetInputPortRequiredContiguous(S, 3, 1); /*direct input signal access*/
+
+
+ /* initialize output ports - there are 1 in total */
+ if (!ssSetNumOutputPorts(S, 1)) return;
+
+ /* Output Port 0 */
+ ssSetOutputPortMatrixDimensions(S, 0, 1464, 1);
+ ssSetOutputPortDataType(S, 0, SS_DOUBLE);
+ ssSetOutputPortComplexSignal(S, 0, COMPLEX_NO); /* no complex signals suppported */
+
+
+ /* set sampling time */
+ ssSetNumSampleTimes(S, 1);
+
+ /* set internal memory of block */
+ ssSetNumRWork(S, 0);
+ ssSetNumIWork(S, 0);
+ ssSetNumPWork(S, 0);
+ ssSetNumModes(S, 0);
+ ssSetNumNonsampledZCs(S, 0);
+
+ /* Take care when specifying exception free code - see sfuntmpl_doc.c */
+ /* SS_OPTION_USE_TLC_WITH_ACCELERATOR removed */
+ /* SS_OPTION_USE_TLC_WITH_ACCELERATOR removed */
+ /* ssSetOptions(S, (SS_OPTION_EXCEPTION_FREE_CODE |
+ SS_OPTION_WORKS_WITH_CODE_REUSE)); */
+ ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE );
+
+
+}
+
+#if defined(MATLAB_MEX_FILE)
+#define MDL_SET_INPUT_PORT_DIMENSION_INFO
+static void mdlSetInputPortDimensionInfo(SimStruct *S,
+ int_T port,
+ const DimsInfo_T *dimsInfo)
+{
+ if(!ssSetInputPortDimensionInfo(S, port, dimsInfo)) return;
+}
+#endif
+
+#define MDL_SET_OUTPUT_PORT_DIMENSION_INFO
+#if defined(MDL_SET_OUTPUT_PORT_DIMENSION_INFO)
+static void mdlSetOutputPortDimensionInfo(SimStruct *S,
+ int_T port,
+ const DimsInfo_T *dimsInfo)
+{
+ if (!ssSetOutputPortDimensionInfo(S, port, dimsInfo)) return;
+}
+#endif
+# define MDL_SET_INPUT_PORT_FRAME_DATA
+static void mdlSetInputPortFrameData(SimStruct *S,
+ int_T port,
+ Frame_T frameData)
+{
+ ssSetInputPortFrameData(S, port, frameData);
+}
+/* Function: mdlInitializeSampleTimes =========================================
+ * Abstract:
+ * Specifiy the sample time.
+ */
+static void mdlInitializeSampleTimes(SimStruct *S)
+{
+ ssSetSampleTime(S, 0, INHERITED_SAMPLE_TIME);
+ ssSetOffsetTime(S, 0, 0.0);
+}
+
+#define MDL_SET_INPUT_PORT_DATA_TYPE
+static void mdlSetInputPortDataType(SimStruct *S, solver_int32_default port, DTypeId dType)
+{
+ ssSetInputPortDataType( S, 0, dType);
+}
+#define MDL_SET_OUTPUT_PORT_DATA_TYPE
+static void mdlSetOutputPortDataType(SimStruct *S, solver_int32_default port, DTypeId dType)
+{
+ ssSetOutputPortDataType(S, 0, dType);
+}
+
+#define MDL_SET_DEFAULT_PORT_DATA_TYPES
+static void mdlSetDefaultPortDataTypes(SimStruct *S)
+{
+ ssSetInputPortDataType( S, 0, SS_DOUBLE);
+ ssSetOutputPortDataType(S, 0, SS_DOUBLE);
+}
+
+
+
+
+
+/* Function: mdlOutputs =======================================================
+ *
+*/
+static void mdlOutputs(SimStruct *S, int_T tid)
+{
+ solver_int32_default i, j, k;
+
+ /* file pointer for printing */
+ FILE *fp = NULL;
+
+ /* Simulink data */
+ const real_T *x0 = (const real_T*) ssGetInputPortSignal(S,0);
+ const real_T *xinit = (const real_T*) ssGetInputPortSignal(S,1);
+ const real_T *xfinal = (const real_T*) ssGetInputPortSignal(S,2);
+ const real_T *all_parameters = (const real_T*) ssGetInputPortSignal(S,3);
+
+ real_T *outputs = (real_T*) ssGetOutputPortSignal(S,0);
+
+
+
+ /* Solver data */
+ FORCESNLPsolver_params params;
+ FORCESNLPsolver_output output;
+ FORCESNLPsolver_info info;
+ solver_int32_default exitflag;
+
+ /* Extra NMPC data */
+
+
+ /* Copy inputs */
+ for( i=0; i<1464; i++)
+ {
+ params.x0[i] = (double) x0[i];
+ }
+
+ for( i=0; i<16; i++)
+ {
+ params.xinit[i] = (double) xinit[i];
+ }
+
+ for( i=0; i<11; i++)
+ {
+ params.xfinal[i] = (double) xfinal[i];
+ }
+
+ for( i=0; i<2501; i++)
+ {
+ params.all_parameters[i] = (double) all_parameters[i];
+ }
+
+
+
+
+
+ #if FORCESNLPsolver_SET_PRINTLEVEL > 0
+ /* Prepare file for printfs */
+ fp = fopen("stdout_temp","w+");
+ if( fp == NULL )
+ {
+ mexErrMsgTxt("freopen of stdout did not work.");
+ }
+ rewind(fp);
+ #endif
+
+ /* Call solver */
+ exitflag = FORCESNLPsolver_solve(¶ms, &output, &info, fp , pt2function);
+
+ #if FORCESNLPsolver_SET_PRINTLEVEL > 0
+ /* Read contents of printfs printed to file */
+ rewind(fp);
+ while( (i = fgetc(fp)) != EOF )
+ {
+ ssPrintf("%c",i);
+ }
+ fclose(fp);
+ #endif
+
+
+
+ /* Copy outputs */
+ for( i=0; i<24; i++)
+ {
+ outputs[i] = (real_T) output.x01[i];
+ }
+
+ k=24;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x02[i];
+ }
+
+ k=48;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x03[i];
+ }
+
+ k=72;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x04[i];
+ }
+
+ k=96;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x05[i];
+ }
+
+ k=120;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x06[i];
+ }
+
+ k=144;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x07[i];
+ }
+
+ k=168;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x08[i];
+ }
+
+ k=192;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x09[i];
+ }
+
+ k=216;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x10[i];
+ }
+
+ k=240;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x11[i];
+ }
+
+ k=264;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x12[i];
+ }
+
+ k=288;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x13[i];
+ }
+
+ k=312;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x14[i];
+ }
+
+ k=336;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x15[i];
+ }
+
+ k=360;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x16[i];
+ }
+
+ k=384;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x17[i];
+ }
+
+ k=408;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x18[i];
+ }
+
+ k=432;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x19[i];
+ }
+
+ k=456;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x20[i];
+ }
+
+ k=480;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x21[i];
+ }
+
+ k=504;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x22[i];
+ }
+
+ k=528;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x23[i];
+ }
+
+ k=552;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x24[i];
+ }
+
+ k=576;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x25[i];
+ }
+
+ k=600;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x26[i];
+ }
+
+ k=624;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x27[i];
+ }
+
+ k=648;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x28[i];
+ }
+
+ k=672;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x29[i];
+ }
+
+ k=696;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x30[i];
+ }
+
+ k=720;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x31[i];
+ }
+
+ k=744;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x32[i];
+ }
+
+ k=768;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x33[i];
+ }
+
+ k=792;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x34[i];
+ }
+
+ k=816;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x35[i];
+ }
+
+ k=840;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x36[i];
+ }
+
+ k=864;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x37[i];
+ }
+
+ k=888;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x38[i];
+ }
+
+ k=912;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x39[i];
+ }
+
+ k=936;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x40[i];
+ }
+
+ k=960;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x41[i];
+ }
+
+ k=984;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x42[i];
+ }
+
+ k=1008;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x43[i];
+ }
+
+ k=1032;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x44[i];
+ }
+
+ k=1056;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x45[i];
+ }
+
+ k=1080;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x46[i];
+ }
+
+ k=1104;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x47[i];
+ }
+
+ k=1128;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x48[i];
+ }
+
+ k=1152;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x49[i];
+ }
+
+ k=1176;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x50[i];
+ }
+
+ k=1200;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x51[i];
+ }
+
+ k=1224;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x52[i];
+ }
+
+ k=1248;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x53[i];
+ }
+
+ k=1272;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x54[i];
+ }
+
+ k=1296;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x55[i];
+ }
+
+ k=1320;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x56[i];
+ }
+
+ k=1344;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x57[i];
+ }
+
+ k=1368;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x58[i];
+ }
+
+ k=1392;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x59[i];
+ }
+
+ k=1416;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x60[i];
+ }
+
+ k=1440;
+ for( i=0; i<24; i++)
+ {
+ outputs[k++] = (real_T) output.x61[i];
+ }
+
+
+}
+
+
+
+
+
+/* Function: mdlTerminate =====================================================
+ * Abstract:
+ * In this function, you should perform any actions that are necessary
+ * at the termination of a simulation. For example, if memory was
+ * allocated in mdlStart, this is the place to free it.
+ */
+static void mdlTerminate(SimStruct *S)
+{
+}
+#ifdef MATLAB_MEX_FILE /* Is this file being compiled as a MEX-file? */
+#include "simulink.c" /* MEX-file interface mechanism */
+#else
+#include "cg_sfun.h" /* Code generation registration function */
+#endif
+
+
diff --git a/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolvercompact_lib.mdl b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolvercompact_lib.mdl
new file mode 100644
index 0000000..c0cb7cb
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver/interface/FORCESNLPsolvercompact_lib.mdl
@@ -0,0 +1,827 @@
+Model {
+ Name "FORCESNLPsolver"
+ Version 8.0
+ MdlSubVersion 0
+ GraphicalInterface {
+ NumRootInports 0
+ NumRootOutports 0
+ ParameterArgumentNames ""
+ ComputedModelVersion "1.2"
+ NumModelReferences 0
+ NumTestPointedSignals 0
+ }
+ SavedCharacterEncoding "windows-1252"
+ SaveDefaultBlockParams on
+ ScopeRefreshTime 0.035000
+ OverrideScopeRefreshTime on
+ DisableAllScopes off
+ DataTypeOverride "UseLocalSettings"
+ DataTypeOverrideAppliesTo "AllNumericTypes"
+ MinMaxOverflowLogging "UseLocalSettings"
+ MinMaxOverflowArchiveMode "Overwrite"
+ FPTRunName "Run 1"
+ MaxMDLFileLineLength 120
+ Object {
+ $PropName "BdWindowsInfo"
+ $ObjectID 1
+ $ClassName "Simulink.BDWindowsInfo"
+ Object {
+ $PropName "WindowsInfo"
+ $ObjectID 2
+ $ClassName "Simulink.WindowInfo"
+ IsActive [1]
+ Location [385.0, 84.0, 816.0, 539.0]
+ Object {
+ $PropName "ModelBrowserInfo"
+ $ObjectID 3
+ $ClassName "Simulink.ModelBrowserInfo"
+ Visible [1]
+ DockPosition "Left"
+ Width [50]
+ Height [50]
+ Filter [9]
+ }
+ Object {
+ $PropName "ExplorerBarInfo"
+ $ObjectID 4
+ $ClassName "Simulink.ExplorerBarInfo"
+ Visible [1]
+ }
+ Object {
+ $PropName "EditorsInfo"
+ $ObjectID 5
+ $ClassName "Simulink.EditorInfo"
+ IsActive [1]
+ ViewObjType "SimulinkTopLevel"
+ LoadSaveID "0"
+ Extents [569.0, 363.0]
+ ZoomFactor [1.0]
+ Offset [0.0, 0.0]
+ }
+ }
+ }
+ Created "3/26/2018 8:18:05 AM"
+ Creator "embotech AG"
+ UpdateHistory "UpdateHistoryNever"
+ ModifiedByFormat "%"
+ LastModifiedBy "embotech AG"
+ ModifiedDateFormat "%"
+ LastModifiedDate "3/26/2018 8:18:05 AM"
+ RTWModifiedTimeStamp 315310195
+ ModelVersionFormat "1.%"
+ ConfigurationManager "None"
+ SampleTimeColors off
+ SampleTimeAnnotations off
+ LibraryLinkDisplay "disabled"
+ WideLines off
+ ShowLineDimensions off
+ ShowPortDataTypes off
+ ShowDesignRanges off
+ ShowLoopsOnError on
+ IgnoreBidirectionalLines off
+ ShowStorageClass off
+ ShowTestPointIcons on
+ ShowSignalResolutionIcons on
+ ShowViewerIcons on
+ SortedOrder off
+ ExecutionContextIcon off
+ ShowLinearizationAnnotations on
+ BlockNameDataTip off
+ BlockParametersDataTip off
+ BlockDescriptionStringDataTip off
+ ToolBar on
+ StatusBar on
+ BrowserShowLibraryLinks off
+ BrowserLookUnderMasks off
+ SimulationMode "normal"
+ LinearizationMsg "none"
+ Profile off
+ ParamWorkspaceSource "MATLABWorkspace"
+ AccelSystemTargetFile "accel.tlc"
+ AccelTemplateMakefile "accel_default_tmf"
+ AccelMakeCommand "make_rtw"
+ TryForcingSFcnDF off
+ Object {
+ $PropName "DataLoggingOverride"
+ $ObjectID 6
+ $ClassName "Simulink.SimulationData.ModelLoggingInfo"
+ model_ "model_2012b"
+ overrideMode_ [0.0]
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "model_2012b"
+ PropName "logAsSpecifiedByModels_"
+ }
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell []
+ PropName "logAsSpecifiedByModelsSSIDs_"
+ }
+ }
+ RecordCoverage off
+ CovPath "/"
+ CovSaveName "covdata"
+ CovMetricSettings "dw"
+ CovNameIncrementing off
+ CovHtmlReporting on
+ CovForceBlockReductionOff on
+ covSaveCumulativeToWorkspaceVar on
+ CovSaveSingleToWorkspaceVar on
+ CovCumulativeVarName "covCumulativeData"
+ CovCumulativeReport off
+ CovReportOnPause on
+ CovModelRefEnable "Off"
+ CovExternalEMLEnable off
+ ExtModeBatchMode off
+ ExtModeEnableFloating on
+ ExtModeTrigType "manual"
+ ExtModeTrigMode "normal"
+ ExtModeTrigPort "1"
+ ExtModeTrigElement "any"
+ ExtModeTrigDuration 1000
+ ExtModeTrigDurationFloating "auto"
+ ExtModeTrigHoldOff 0
+ ExtModeTrigDelay 0
+ ExtModeTrigDirection "rising"
+ ExtModeTrigLevel 0
+ ExtModeArchiveMode "off"
+ ExtModeAutoIncOneShot off
+ ExtModeIncDirWhenArm off
+ ExtModeAddSuffixToVar off
+ ExtModeWriteAllDataToWs off
+ ExtModeArmWhenConnect on
+ ExtModeSkipDownloadWhenConnect off
+ ExtModeLogAll on
+ ExtModeAutoUpdateStatusClock on
+ BufferReuse on
+ ShowModelReferenceBlockVersion off
+ ShowModelReferenceBlockIO off
+ Array {
+ Type "Handle"
+ Dimension 1
+ Simulink.ConfigSet {
+ $ObjectID 7
+ Version "1.12.1"
+ Array {
+ Type "Handle"
+ Dimension 8
+ Simulink.SolverCC {
+ $ObjectID 8
+ Version "1.12.1"
+ StartTime "0.0"
+ StopTime "10.0"
+ AbsTol "auto"
+ FixedStep "auto"
+ InitialStep "auto"
+ MaxNumMinSteps "-1"
+ MaxOrder 5
+ ZcThreshold "auto"
+ ConsecutiveZCsStepRelTol "10*128*eps"
+ MaxConsecutiveZCs "1000"
+ ExtrapolationOrder 4
+ NumberNewtonIterations 1
+ MaxStep "auto"
+ MinStep "auto"
+ MaxConsecutiveMinStep "1"
+ RelTol "1e-3"
+ SolverMode "Auto"
+ EnableConcurrentExecution off
+ ConcurrentTasks off
+ Solver "ode45"
+ SolverName "ode45"
+ SolverJacobianMethodControl "auto"
+ ShapePreserveControl "DisableAll"
+ ZeroCrossControl "UseLocalSettings"
+ ZeroCrossAlgorithm "Nonadaptive"
+ AlgebraicLoopSolver "TrustRegion"
+ SolverResetMethod "Fast"
+ PositivePriorityOrder off
+ AutoInsertRateTranBlk off
+ SampleTimeConstraint "Unconstrained"
+ InsertRTBMode "Whenever possible"
+ }
+ Simulink.DataIOCC {
+ $ObjectID 9
+ Version "1.12.1"
+ Decimation "1"
+ ExternalInput "[t, u]"
+ FinalStateName "xFinal"
+ InitialState "xInitial"
+ LimitDataPoints on
+ MaxDataPoints "1000"
+ LoadExternalInput off
+ LoadInitialState off
+ SaveFinalState off
+ SaveCompleteFinalSimState off
+ SaveFormat "Array"
+ SignalLoggingSaveFormat "Dataset"
+ SaveOutput on
+ SaveState off
+ SignalLogging on
+ DSMLogging on
+ InspectSignalLogs off
+ SaveTime on
+ ReturnWorkspaceOutputs off
+ StateSaveName "xout"
+ TimeSaveName "tout"
+ OutputSaveName "yout"
+ SignalLoggingName "logsout"
+ DSMLoggingName "dsmout"
+ OutputOption "RefineOutputTimes"
+ OutputTimes "[]"
+ ReturnWorkspaceOutputsName "out"
+ Refine "1"
+ }
+ Simulink.OptimizationCC {
+ $ObjectID 10
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 8
+ Cell "BooleansAsBitfields"
+ Cell "PassReuseOutputArgsAs"
+ Cell "PassReuseOutputArgsThreshold"
+ Cell "ZeroExternalMemoryAtStartup"
+ Cell "ZeroInternalMemoryAtStartup"
+ Cell "OptimizeModelRefInitCode"
+ Cell "NoFixptDivByZeroProtection"
+ Cell "UseSpecifiedMinMax"
+ PropName "DisabledProps"
+ }
+ BlockReduction on
+ BooleanDataType on
+ ConditionallyExecuteInputs on
+ InlineParams off
+ UseIntDivNetSlope off
+ UseFloatMulNetSlope off
+ UseSpecifiedMinMax off
+ InlineInvariantSignals off
+ OptimizeBlockIOStorage on
+ BufferReuse on
+ EnhancedBackFolding off
+ StrengthReduction off
+ ExpressionFolding on
+ BooleansAsBitfields off
+ BitfieldContainerType "uint_T"
+ EnableMemcpy on
+ MemcpyThreshold 64
+ PassReuseOutputArgsAs "Structure reference"
+ ExpressionDepthLimit 2147483647
+ FoldNonRolledExpr on
+ LocalBlockOutputs on
+ RollThreshold 5
+ SystemCodeInlineAuto off
+ StateBitsets off
+ DataBitsets off
+ UseTempVars off
+ ZeroExternalMemoryAtStartup on
+ ZeroInternalMemoryAtStartup on
+ InitFltsAndDblsToZero off
+ NoFixptDivByZeroProtection off
+ EfficientFloat2IntCast off
+ EfficientMapNaN2IntZero on
+ OptimizeModelRefInitCode off
+ LifeSpan "inf"
+ MaxStackSize "Inherit from target"
+ BufferReusableBoundary on
+ SimCompilerOptimization "Off"
+ AccelVerboseBuild off
+ ParallelExecutionInRapidAccelerator on
+ }
+ Simulink.DebuggingCC {
+ $ObjectID 11
+ Version "1.12.1"
+ RTPrefix "error"
+ ConsistencyChecking "none"
+ ArrayBoundsChecking "none"
+ SignalInfNanChecking "none"
+ SignalRangeChecking "none"
+ ReadBeforeWriteMsg "UseLocalSettings"
+ WriteAfterWriteMsg "UseLocalSettings"
+ WriteAfterReadMsg "UseLocalSettings"
+ AlgebraicLoopMsg "warning"
+ ArtificialAlgebraicLoopMsg "warning"
+ SaveWithDisabledLinksMsg "warning"
+ SaveWithParameterizedLinksMsg "warning"
+ CheckSSInitialOutputMsg on
+ UnderspecifiedInitializationDetection "Classic"
+ MergeDetectMultiDrivingBlocksExec "none"
+ CheckExecutionContextPreStartOutputMsg off
+ CheckExecutionContextRuntimeOutputMsg off
+ SignalResolutionControl "UseLocalSettings"
+ BlockPriorityViolationMsg "warning"
+ MinStepSizeMsg "warning"
+ TimeAdjustmentMsg "none"
+ MaxConsecutiveZCsMsg "error"
+ MaskedZcDiagnostic "warning"
+ IgnoredZcDiagnostic "warning"
+ SolverPrmCheckMsg "warning"
+ InheritedTsInSrcMsg "warning"
+ DiscreteInheritContinuousMsg "warning"
+ MultiTaskDSMMsg "error"
+ MultiTaskCondExecSysMsg "error"
+ MultiTaskRateTransMsg "error"
+ SingleTaskRateTransMsg "none"
+ TasksWithSamePriorityMsg "warning"
+ SigSpecEnsureSampleTimeMsg "warning"
+ CheckMatrixSingularityMsg "none"
+ IntegerOverflowMsg "warning"
+ Int32ToFloatConvMsg "warning"
+ ParameterDowncastMsg "error"
+ ParameterOverflowMsg "error"
+ ParameterUnderflowMsg "none"
+ ParameterPrecisionLossMsg "warning"
+ ParameterTunabilityLossMsg "warning"
+ FixptConstUnderflowMsg "none"
+ FixptConstOverflowMsg "none"
+ FixptConstPrecisionLossMsg "none"
+ UnderSpecifiedDataTypeMsg "none"
+ UnnecessaryDatatypeConvMsg "none"
+ VectorMatrixConversionMsg "none"
+ InvalidFcnCallConnMsg "error"
+ FcnCallInpInsideContextMsg "EnableAllAsError"
+ SignalLabelMismatchMsg "none"
+ UnconnectedInputMsg "warning"
+ UnconnectedOutputMsg "warning"
+ UnconnectedLineMsg "warning"
+ SFcnCompatibilityMsg "none"
+ FrameProcessingCompatibilityMsg "warning"
+ UniqueDataStoreMsg "none"
+ BusObjectLabelMismatch "warning"
+ RootOutportRequireBusObject "warning"
+ AssertControl "UseLocalSettings"
+ EnableOverflowDetection off
+ ModelReferenceIOMsg "none"
+ ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
+ ModelReferenceVersionMismatchMessage "none"
+ ModelReferenceIOMismatchMessage "none"
+ ModelReferenceCSMismatchMessage "none"
+ UnknownTsInhSupMsg "warning"
+ ModelReferenceDataLoggingMessage "warning"
+ ModelReferenceSymbolNameMessage "warning"
+ ModelReferenceExtraNoncontSigs "error"
+ StateNameClashWarn "warning"
+ SimStateInterfaceChecksumMismatchMsg "warning"
+ SimStateOlderReleaseMsg "error"
+ InitInArrayFormatMsg "warning"
+ StrictBusMsg "ErrorLevel1"
+ BusNameAdapt "WarnAndRepair"
+ NonBusSignalsTreatedAsBus "none"
+ LoggingUnavailableSignals "error"
+ BlockIODiagnostic "none"
+ SFUnusedDataAndEventsDiag "warning"
+ SFUnexpectedBacktrackingDiag "warning"
+ SFInvalidInputDataAccessInChartInitDiag "warning"
+ SFNoUnconditionalDefaultTransitionDiag "warning"
+ SFTransitionOutsideNaturalParentDiag "warning"
+ SFUnconditionalTransitionShadowingDiag "warning"
+ SFUndirectedBroadcastEventsDiag "warning"
+ SFTransitionActionBeforeConditionDiag "warning"
+ }
+ Simulink.HardwareCC {
+ $ObjectID 12
+ Version "1.12.1"
+ ProdBitPerChar 8
+ ProdBitPerShort 16
+ ProdBitPerInt 32
+ ProdBitPerLong 32
+ ProdBitPerFloat 32
+ ProdBitPerDouble 64
+ ProdBitPerPointer 32
+ ProdLargestAtomicInteger "Char"
+ ProdLargestAtomicFloat "None"
+ ProdIntDivRoundTo "Undefined"
+ ProdEndianess "Unspecified"
+ ProdWordSize 32
+ ProdShiftRightIntArith on
+ ProdHWDeviceType "32-bit Generic"
+ TargetBitPerChar 8
+ TargetBitPerShort 16
+ TargetBitPerInt 32
+ TargetBitPerLong 32
+ TargetBitPerFloat 32
+ TargetBitPerDouble 64
+ TargetBitPerPointer 32
+ TargetLargestAtomicInteger "Char"
+ TargetLargestAtomicFloat "None"
+ TargetShiftRightIntArith on
+ TargetIntDivRoundTo "Undefined"
+ TargetEndianess "Unspecified"
+ TargetWordSize 32
+ TargetTypeEmulationWarnSuppressLevel 0
+ TargetPreprocMaxBitsSint 32
+ TargetPreprocMaxBitsUint 32
+ TargetHWDeviceType "Specified"
+ TargetUnknown off
+ ProdEqTarget on
+ }
+ Simulink.ModelReferenceCC {
+ $ObjectID 13
+ Version "1.12.1"
+ UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+ CheckModelReferenceTargetMessage "error"
+ EnableParallelModelReferenceBuilds off
+ ParallelModelReferenceErrorOnInvalidPool on
+ ParallelModelReferenceMATLABWorkerInit "None"
+ ModelReferenceNumInstancesAllowed "Multi"
+ PropagateVarSize "Infer from blocks in model"
+ ModelReferencePassRootInputsByReference on
+ ModelReferenceMinAlgLoopOccurrences off
+ PropagateSignalLabelsOutOfModel off
+ SupportModelReferenceSimTargetCustomCode off
+ }
+ Simulink.SFSimCC {
+ $ObjectID 14
+ Version "1.12.1"
+ SFSimEnableDebug on
+ SFSimOverflowDetection on
+ SFSimEcho on
+ SimBlas on
+ SimCtrlC on
+ SimExtrinsic on
+ SimIntegrity on
+ SimUseLocalCustomCode off
+ SimParseCustomCode on
+ SimBuildMode "sf_incremental_build"
+ }
+ Simulink.RTWCC {
+ $BackupClass "Simulink.RTWCC"
+ $ObjectID 15
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 15
+ Cell "IncludeHyperlinkInReport"
+ Cell "GenerateTraceInfo"
+ Cell "GenerateTraceReport"
+ Cell "GenerateTraceReportSl"
+ Cell "GenerateTraceReportSf"
+ Cell "GenerateTraceReportEml"
+ Cell "PortableWordSizes"
+ Cell "GenerateWebview"
+ Cell "GenerateCodeMetricsReport"
+ Cell "GenerateCodeReplacementReport"
+ Cell "GenerateErtSFunction"
+ Cell "CreateSILPILBlock"
+ Cell "CodeExecutionProfiling"
+ Cell "CodeProfilingSaveOptions"
+ Cell "CodeProfilingInstrumentation"
+ PropName "DisabledProps"
+ }
+ SystemTargetFile "grt.tlc"
+ GenCodeOnly off
+ MakeCommand "make_rtw"
+ GenerateMakefile on
+ PackageGeneratedCodeAndArtifacts off
+ TemplateMakefile "grt_default_tmf"
+ GenerateReport off
+ SaveLog off
+ RTWVerbose on
+ RetainRTWFile off
+ ProfileTLC off
+ TLCDebug off
+ TLCCoverage off
+ TLCAssert off
+ ProcessScriptMode "Default"
+ ConfigurationMode "Optimized"
+ ConfigAtBuild off
+ RTWUseLocalCustomCode off
+ RTWUseSimCustomCode off
+ IncludeHyperlinkInReport off
+ LaunchReport off
+ PortableWordSizes off
+ GenerateErtSFunction off
+ CreateSILPILBlock "None"
+ CodeExecutionProfiling off
+ CodeExecutionProfileVariable "executionProfile"
+ CodeProfilingSaveOptions "SummaryOnly"
+ CodeProfilingInstrumentation off
+ TargetLang "C"
+ IncludeBusHierarchyInRTWFileBlockHierarchyMap off
+ IncludeERTFirstTime off
+ GenerateTraceInfo off
+ GenerateTraceReport off
+ GenerateTraceReportSl off
+ GenerateTraceReportSf off
+ GenerateTraceReportEml off
+ GenerateCodeInfo off
+ GenerateWebview off
+ GenerateCodeMetricsReport off
+ GenerateCodeReplacementReport off
+ RTWCompilerOptimization "Off"
+ CheckMdlBeforeBuild "Off"
+ CustomRebuildMode "OnUpdate"
+ Array {
+ Type "Handle"
+ Dimension 2
+ Simulink.CodeAppCC {
+ $ObjectID 16
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 22
+ Cell "IgnoreCustomStorageClasses"
+ Cell "IgnoreTestpoints"
+ Cell "InsertBlockDesc"
+ Cell "InsertPolySpaceComments"
+ Cell "SFDataObjDesc"
+ Cell "MATLABFcnDesc"
+ Cell "SimulinkDataObjDesc"
+ Cell "DefineNamingRule"
+ Cell "SignalNamingRule"
+ Cell "ParamNamingRule"
+ Cell "InternalIdentifier"
+ Cell "InlinedPrmAccess"
+ Cell "CustomSymbolStr"
+ Cell "CustomSymbolStrGlobalVar"
+ Cell "CustomSymbolStrType"
+ Cell "CustomSymbolStrField"
+ Cell "CustomSymbolStrFcn"
+ Cell "CustomSymbolStrFcnArg"
+ Cell "CustomSymbolStrBlkIO"
+ Cell "CustomSymbolStrTmpVar"
+ Cell "CustomSymbolStrMacro"
+ Cell "ReqsInCode"
+ PropName "DisabledProps"
+ }
+ ForceParamTrailComments off
+ GenerateComments on
+ IgnoreCustomStorageClasses on
+ IgnoreTestpoints off
+ IncHierarchyInIds off
+ MaxIdLength 31
+ PreserveName off
+ PreserveNameWithParent off
+ ShowEliminatedStatement off
+ OperatorAnnotations off
+ IncAutoGenComments off
+ SimulinkDataObjDesc off
+ SFDataObjDesc off
+ MATLABFcnDesc off
+ IncDataTypeInIds off
+ MangleLength 1
+ CustomSymbolStrGlobalVar "$R$N$M"
+ CustomSymbolStrType "$N$R$M"
+ CustomSymbolStrField "$N$M"
+ CustomSymbolStrFcn "$R$N$M$F"
+ CustomSymbolStrFcnArg "rt$I$N$M"
+ CustomSymbolStrBlkIO "rtb_$N$M"
+ CustomSymbolStrTmpVar "$N$M"
+ CustomSymbolStrMacro "$R$N$M"
+ DefineNamingRule "None"
+ ParamNamingRule "None"
+ SignalNamingRule "None"
+ InsertBlockDesc off
+ InsertPolySpaceComments off
+ SimulinkBlockComments on
+ MATLABSourceComments off
+ EnableCustomComments off
+ InternalIdentifier "Classic"
+ InlinedPrmAccess "Literals"
+ ReqsInCode off
+ UseSimReservedNames off
+ }
+ Simulink.GRTTargetCC {
+ $BackupClass "Simulink.TargetCC"
+ $ObjectID 17
+ Version "1.12.1"
+ Array {
+ Type "Cell"
+ Dimension 15
+ Cell "GeneratePreprocessorConditionals"
+ Cell "IncludeMdlTerminateFcn"
+ Cell "CombineOutputUpdateFcns"
+ Cell "SuppressErrorStatus"
+ Cell "ERTCustomFileBanners"
+ Cell "GenerateSampleERTMain"
+ Cell "GenerateTestInterfaces"
+ Cell "ModelStepFunctionPrototypeControlCompliant"
+ Cell "CPPClassGenCompliant"
+ Cell "MultiInstanceERTCode"
+ Cell "PurelyIntegerCode"
+ Cell "SupportComplex"
+ Cell "SupportAbsoluteTime"
+ Cell "SupportContinuousTime"
+ Cell "SupportNonInlinedSFcns"
+ PropName "DisabledProps"
+ }
+ TargetFcnLib "ansi_tfl_table_tmw.mat"
+ TargetLibSuffix ""
+ TargetPreCompLibLocation ""
+ CodeReplacementLibrary "ANSI_C"
+ UtilityFuncGeneration "Auto"
+ ERTMultiwordTypeDef "System defined"
+ ERTMultiwordLength 256
+ MultiwordLength 2048
+ GenerateFullHeader on
+ GenerateSampleERTMain off
+ GenerateTestInterfaces off
+ IsPILTarget off
+ ModelReferenceCompliant on
+ ParMdlRefBuildCompliant on
+ CompOptLevelCompliant on
+ ConcurrentExecutionCompliant on
+ IncludeMdlTerminateFcn on
+ GeneratePreprocessorConditionals "Disable all"
+ CombineOutputUpdateFcns on
+ CombineSignalStateStructs off
+ SuppressErrorStatus off
+ ERTFirstTimeCompliant off
+ IncludeFileDelimiter "Auto"
+ ERTCustomFileBanners off
+ SupportAbsoluteTime on
+ LogVarNameModifier "rt_"
+ MatFileLogging on
+ MultiInstanceERTCode off
+ SupportNonFinite on
+ SupportComplex on
+ PurelyIntegerCode off
+ SupportContinuousTime on
+ SupportNonInlinedSFcns on
+ SupportVariableSizeSignals off
+ EnableShiftOperators on
+ ParenthesesLevel "Nominal"
+ ModelStepFunctionPrototypeControlCompliant off
+ CPPClassGenCompliant off
+ AutosarCompliant off
+ GRTInterface off
+ UseMalloc off
+ ExtMode off
+ ExtModeStaticAlloc off
+ ExtModeTesting off
+ ExtModeStaticAllocSize 1000000
+ ExtModeTransport 0
+ ExtModeMexFile "ext_comm"
+ ExtModeIntrfLevel "Level1"
+ RTWCAPISignals off
+ RTWCAPIParams off
+ RTWCAPIStates off
+ RTWCAPIRootIO off
+ GenerateASAP2 off
+ }
+ PropName "Components"
+ }
+ }
+ PropName "Components"
+ }
+ Name "Configuration"
+ CurrentDlgPage "Solver"
+ ConfigPrmDlgPosition [ 520, 225, 1400, 855 ]
+ }
+ PropName "ConfigurationSets"
+ }
+ Simulink.ConfigSet {
+ $PropName "ActiveConfigurationSet"
+ $ObjectID 7
+ }
+ Object {
+ $PropName "DataTransfer"
+ $ObjectID 18
+ $ClassName "Simulink.GlobalDataTransfer"
+ DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)"
+ DefaultTransitionBetweenAsyncTasks "Ensure data integrity only"
+ DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)"
+ DefaultExtrapolationMethodBetweenContTasks "None"
+ AutoInsertRateTranBlk [0]
+ }
+ ExplicitPartitioning off
+ BlockDefaults {
+ ForegroundColor "black"
+ BackgroundColor "white"
+ DropShadow off
+ NamePlacement "normal"
+ FontName "Helvetica"
+ FontSize 10
+ FontWeight "normal"
+ FontAngle "normal"
+ ShowName on
+ BlockRotation 0
+ BlockMirror off
+ }
+ AnnotationDefaults {
+ HorizontalAlignment "center"
+ VerticalAlignment "middle"
+ ForegroundColor "black"
+ BackgroundColor "white"
+ DropShadow off
+ FontName "Helvetica"
+ FontSize 10
+ FontWeight "normal"
+ FontAngle "normal"
+ UseDisplayTextAsClickCallback off
+ }
+ LineDefaults {
+ FontName "Helvetica"
+ FontSize 9
+ FontWeight "normal"
+ FontAngle "normal"
+ }
+ MaskDefaults {
+ SelfModifiable "off"
+ IconFrame "on"
+ IconOpaque "on"
+ RunInitForIconRedraw "off"
+ IconRotate "none"
+ PortRotate "default"
+ IconUnits "autoscale"
+ }
+ MaskParameterDefaults {
+ Evaluate "on"
+ Tunable "on"
+ NeverSave "off"
+ Internal "off"
+ ReadOnly "off"
+ Enabled "on"
+ Visible "on"
+ ToolTip "on"
+ }
+ BlockParameterDefaults {
+ Block {
+ BlockType S-Function
+ FunctionName "system"
+ SFunctionModules "''"
+ PortCounts "[]"
+ SFunctionDeploymentMode off
+ }
+ }
+ System {
+ Name "FORCESNLPsolver"
+ Location [385, 84, 1201, 623]
+ Open on
+ ModelBrowserVisibility on
+ ModelBrowserWidth 200
+ ScreenColor "white"
+ PaperOrientation "landscape"
+ PaperPositionMode "auto"
+ PaperType "A4"
+ PaperUnits "centimeters"
+ TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
+ TiledPageScale 1
+ ShowPageBoundaries off
+ ZoomFactor "100"
+ ReportName "simulink-default.rpt"
+ SIDHighWatermark "1"
+ Block {
+ BlockType S-Function
+ Name "FORCESNLPsolver"
+ SID "1"
+ Ports [4, 1]
+ Position [170, 99, 650, 180]
+ ZOrder 1
+ FunctionName "FORCESNLPsolver_simulinkBlockcompact"
+ SFunctionModules "FORCESNLPsolver FORCESNLPsolver_simulinkBlockcompact"
+ EnableBusSupport off
+ Object {
+ $PropName "MaskObject"
+ $ObjectID 19
+ $ClassName "Simulink.Mask"
+ Type "FORCESNLPsolver_simulinkBlockcompact"
+ Description " ---- Simulink block encapsulating your customized solver FORCESNLPsolver ---- \n\n"
+ "FORCESNLPsolver : A fast customized optimization solver.\n"
+"\n"
+"Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.\n"
+"\n"
+"\n"
+"This software is intended for simulation and testing purposes only. \n"
+"Use of this software for any commercial purpose is prohibited.\n"
+"\n"
+"This program is distributed in the hope that it will be useful.\n"
+"EMBOTECH makes NO WARRANTIES with respect to the use of the software \n"
+"without even the implied warranty of MERCHANTABILITY or FITNESS FOR A \n"
+"PARTICULAR PURPOSE. \n"
+"\n"
+"EMBOTECH shall not have any liability for any damage arising from the use\n"
+"of the software.\n"
+"\n"
+"This Agreement shall exclusively be governed by and interpreted in \n"
+"accordance with the laws of Switzerland, excluding its principles\n"
+"of conflict of laws. The Courts of Zurich-City shall have exclusive \n"
+"jurisdiction in case of any dispute.\n"
+"\n"
+
+ Help "FORCESNLPsolver_simulinkBlockcompact provides an easy Simulink interface for simulating your customized solver. \n"
+ "\nOUTPUTS = FORCESNLPsolver(INPUTS) solves an optimization problem where:\n\n"
+ "INPUTS:\n"
+ " - x0 - column vector of length 1464\n "
+" - xinit - column vector of length 16\n "
+" - xfinal - column vector of length 11\n "
+" - all_parameters - column vector of length 2501\n "
+
+ "\nOUTPUTS:\n"
+ " - outputs - column vector of length 1464\n "
+
+ "\n For more information, see https://www.embotech.com/FORCES-Pro/How-to-use/Simulink-Interface/Simulink-Block \n "
+
+ Display "port_label('input', 1, 'x0') \n "
+"port_label('input', 2, 'xinit') \n "
+"port_label('input', 3, 'xfinal') \n "
+"port_label('input', 4, 'all_parameters') \n "
+"port_label('output', 1, 'outputs') \n "
+"if( exist('forcesprologo.jpg','file') ), image(imread('forcesprologo.jpg'),'center','on'); elseif( exist(['interface',filesep,'forcesprologo.jpg'],'file') ), image(imread(['interface',filesep,'forcesprologo.jpg']),'center','on'); elseif( exist(['FORCESNLPsolver',filesep,'interface',filesep,'forcesprologo.jpg'],'file') ), image(imread(['FORCESNLPsolver',filesep,'interface',filesep,'forcesprologo.jpg']),'center','on'); end \n "
+
+ }
+ }
+ }
+}
diff --git a/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver.a b/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver.a
new file mode 100644
index 0000000..6866e6f
Binary files /dev/null and b/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver.a differ
diff --git a/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver.so b/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver.so
new file mode 100755
index 0000000..6c8656f
Binary files /dev/null and b/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver.so differ
diff --git a/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver_withModel.so b/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver_withModel.so
new file mode 100755
index 0000000..f9dae8a
Binary files /dev/null and b/Yuwen project/FORCESNLPsolver/lib/libFORCESNLPsolver_withModel.so differ
diff --git a/Yuwen project/FORCESNLPsolver/obj/FORCESNLPsolver.o b/Yuwen project/FORCESNLPsolver/obj/FORCESNLPsolver.o
new file mode 100644
index 0000000..d15262f
Binary files /dev/null and b/Yuwen project/FORCESNLPsolver/obj/FORCESNLPsolver.o differ
diff --git a/Yuwen project/FORCESNLPsolver_py.py b/Yuwen project/FORCESNLPsolver_py.py
new file mode 100755
index 0000000..69d3969
--- /dev/null
+++ b/Yuwen project/FORCESNLPsolver_py.py
@@ -0,0 +1,491 @@
+#FORCESNLPsolver : A fast customized optimization solver.
+#
+#Copyright (C) 2013-2018 EMBOTECH AG [info@embotech.com]. All rights reserved.
+#
+#
+#This software is intended for simulation and testing purposes only.
+#Use of this software for any commercial purpose is prohibited.
+#
+#This program is distributed in the hope that it will be useful.
+#EMBOTECH makes NO WARRANTIES with respect to the use of the software
+#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+#PARTICULAR PURPOSE.
+#
+#EMBOTECH shall not have any liability for any damage arising from the use
+#of the software.
+#
+#This Agreement shall exclusively be governed by and interpreted in
+#accordance with the laws of Switzerland, excluding its principles
+#of conflict of laws. The Courts of Zurich-City shall have exclusive
+#jurisdiction in case of any dispute.
+#
+#def __init__():
+'''
+a Python wrapper for a fast solver generated by FORCES Pro v1.6.121
+
+ OUTPUT = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) solves a multistage problem
+ subject to the parameters supplied in the following dictionary:
+ PARAMS['x0'] - column vector of length 1464
+ PARAMS['xinit'] - column vector of length 16
+ PARAMS['xfinal'] - column vector of length 11
+ PARAMS['all_parameters'] - column vector of length 2501
+
+ OUTPUT returns the values of the last iteration of the solver where
+ OUTPUT['x01'] - column vector of size 24
+ OUTPUT['x02'] - column vector of size 24
+ OUTPUT['x03'] - column vector of size 24
+ OUTPUT['x04'] - column vector of size 24
+ OUTPUT['x05'] - column vector of size 24
+ OUTPUT['x06'] - column vector of size 24
+ OUTPUT['x07'] - column vector of size 24
+ OUTPUT['x08'] - column vector of size 24
+ OUTPUT['x09'] - column vector of size 24
+ OUTPUT['x10'] - column vector of size 24
+ OUTPUT['x11'] - column vector of size 24
+ OUTPUT['x12'] - column vector of size 24
+ OUTPUT['x13'] - column vector of size 24
+ OUTPUT['x14'] - column vector of size 24
+ OUTPUT['x15'] - column vector of size 24
+ OUTPUT['x16'] - column vector of size 24
+ OUTPUT['x17'] - column vector of size 24
+ OUTPUT['x18'] - column vector of size 24
+ OUTPUT['x19'] - column vector of size 24
+ OUTPUT['x20'] - column vector of size 24
+ OUTPUT['x21'] - column vector of size 24
+ OUTPUT['x22'] - column vector of size 24
+ OUTPUT['x23'] - column vector of size 24
+ OUTPUT['x24'] - column vector of size 24
+ OUTPUT['x25'] - column vector of size 24
+ OUTPUT['x26'] - column vector of size 24
+ OUTPUT['x27'] - column vector of size 24
+ OUTPUT['x28'] - column vector of size 24
+ OUTPUT['x29'] - column vector of size 24
+ OUTPUT['x30'] - column vector of size 24
+ OUTPUT['x31'] - column vector of size 24
+ OUTPUT['x32'] - column vector of size 24
+ OUTPUT['x33'] - column vector of size 24
+ OUTPUT['x34'] - column vector of size 24
+ OUTPUT['x35'] - column vector of size 24
+ OUTPUT['x36'] - column vector of size 24
+ OUTPUT['x37'] - column vector of size 24
+ OUTPUT['x38'] - column vector of size 24
+ OUTPUT['x39'] - column vector of size 24
+ OUTPUT['x40'] - column vector of size 24
+ OUTPUT['x41'] - column vector of size 24
+ OUTPUT['x42'] - column vector of size 24
+ OUTPUT['x43'] - column vector of size 24
+ OUTPUT['x44'] - column vector of size 24
+ OUTPUT['x45'] - column vector of size 24
+ OUTPUT['x46'] - column vector of size 24
+ OUTPUT['x47'] - column vector of size 24
+ OUTPUT['x48'] - column vector of size 24
+ OUTPUT['x49'] - column vector of size 24
+ OUTPUT['x50'] - column vector of size 24
+ OUTPUT['x51'] - column vector of size 24
+ OUTPUT['x52'] - column vector of size 24
+ OUTPUT['x53'] - column vector of size 24
+ OUTPUT['x54'] - column vector of size 24
+ OUTPUT['x55'] - column vector of size 24
+ OUTPUT['x56'] - column vector of size 24
+ OUTPUT['x57'] - column vector of size 24
+ OUTPUT['x58'] - column vector of size 24
+ OUTPUT['x59'] - column vector of size 24
+ OUTPUT['x60'] - column vector of size 24
+ OUTPUT['x61'] - column vector of size 24
+
+ [OUTPUT, EXITFLAG] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns additionally
+ the integer EXITFLAG indicating the state of the solution with
+ 1 - Optimal solution has been found (subject to desired accuracy)
+ 2 - (only branch-and-bound) A feasible point has been identified for which the objective value is no more than codeoptions.mip.mipgap*100 per cent worse than the global optimum
+ 0 - Timeout - maximum number of iterations reached
+ -1 - (only branch-and-bound) Infeasible problem (problems solving the root relaxation to the desired accuracy)
+ -2 - (only branch-and-bound) Out of memory - cannot fit branch and bound nodes into pre-allocated memory.
+ -6 - NaN or INF occured during evaluation of functions and derivatives. Please check your initial guess.
+ -7 - Method could not progress. Problem may be infeasible. Run FORCESdiagnostics on your problem to check for most common errors in the formulation.
+ -10 - The convex solver could not proceed due to an internal error
+ -100 - License error
+
+ [OUTPUT, EXITFLAG, INFO] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns
+ additional information about the last iterate:
+ INFO.it - number of iterations that lead to this result
+ INFO.it2opt - number of convex solves
+ INFO.res_eq - max. equality constraint residual
+ INFO.res_ineq - max. inequality constraint residual
+ INFO.rsnorm - norm of stationarity condition
+ INFO.rcompnorm - max of all complementarity violations
+ INFO.pobj - primal objective
+ INFO.mu - duality measure
+ INFO.solvetime - Time needed for solve (wall clock time)
+ INFO.fevalstime - Time needed for function evaluations (wall clock time)
+
+ See also COPYING
+
+'''
+
+import ctypes
+import os
+import numpy as np
+import numpy.ctypeslib as npct
+import sys
+
+#_lib = ctypes.CDLL(os.path.join(os.getcwd(),'FORCESNLPsolver/lib/FORCESNLPsolver.so'))
+try:
+ _lib = ctypes.CDLL(os.path.join(os.path.dirname(os.path.abspath(__file__)),'FORCESNLPsolver/lib/FORCESNLPsolver_withModel.so'))
+ csolver = getattr(_lib,'FORCESNLPsolver_solve')
+except:
+ _lib = ctypes.CDLL(os.path.join(os.path.dirname(os.path.abspath(__file__)),'FORCESNLPsolver/lib/libFORCESNLPsolver_withModel.so'))
+ csolver = getattr(_lib,'FORCESNLPsolver_solve')
+
+class FORCESNLPsolver_params_ctypes(ctypes.Structure):
+# @classmethod
+# def from_param(self):
+# return self
+ _fields_ = [('x0', ctypes.c_double * 1464),
+('xinit', ctypes.c_double * 16),
+('xfinal', ctypes.c_double * 11),
+('all_parameters', ctypes.c_double * 2501),
+]
+
+FORCESNLPsolver_params = {'x0' : np.array([]),
+'xinit' : np.array([]),
+'xfinal' : np.array([]),
+'all_parameters' : np.array([]),
+}
+params = {'x0' : np.array([]),
+'xinit' : np.array([]),
+'xfinal' : np.array([]),
+'all_parameters' : np.array([]),
+}
+
+class FORCESNLPsolver_outputs_ctypes(ctypes.Structure):
+# @classmethod
+# def from_param(self):
+# return self
+ _fields_ = [('x01', ctypes.c_double * 24),
+('x02', ctypes.c_double * 24),
+('x03', ctypes.c_double * 24),
+('x04', ctypes.c_double * 24),
+('x05', ctypes.c_double * 24),
+('x06', ctypes.c_double * 24),
+('x07', ctypes.c_double * 24),
+('x08', ctypes.c_double * 24),
+('x09', ctypes.c_double * 24),
+('x10', ctypes.c_double * 24),
+('x11', ctypes.c_double * 24),
+('x12', ctypes.c_double * 24),
+('x13', ctypes.c_double * 24),
+('x14', ctypes.c_double * 24),
+('x15', ctypes.c_double * 24),
+('x16', ctypes.c_double * 24),
+('x17', ctypes.c_double * 24),
+('x18', ctypes.c_double * 24),
+('x19', ctypes.c_double * 24),
+('x20', ctypes.c_double * 24),
+('x21', ctypes.c_double * 24),
+('x22', ctypes.c_double * 24),
+('x23', ctypes.c_double * 24),
+('x24', ctypes.c_double * 24),
+('x25', ctypes.c_double * 24),
+('x26', ctypes.c_double * 24),
+('x27', ctypes.c_double * 24),
+('x28', ctypes.c_double * 24),
+('x29', ctypes.c_double * 24),
+('x30', ctypes.c_double * 24),
+('x31', ctypes.c_double * 24),
+('x32', ctypes.c_double * 24),
+('x33', ctypes.c_double * 24),
+('x34', ctypes.c_double * 24),
+('x35', ctypes.c_double * 24),
+('x36', ctypes.c_double * 24),
+('x37', ctypes.c_double * 24),
+('x38', ctypes.c_double * 24),
+('x39', ctypes.c_double * 24),
+('x40', ctypes.c_double * 24),
+('x41', ctypes.c_double * 24),
+('x42', ctypes.c_double * 24),
+('x43', ctypes.c_double * 24),
+('x44', ctypes.c_double * 24),
+('x45', ctypes.c_double * 24),
+('x46', ctypes.c_double * 24),
+('x47', ctypes.c_double * 24),
+('x48', ctypes.c_double * 24),
+('x49', ctypes.c_double * 24),
+('x50', ctypes.c_double * 24),
+('x51', ctypes.c_double * 24),
+('x52', ctypes.c_double * 24),
+('x53', ctypes.c_double * 24),
+('x54', ctypes.c_double * 24),
+('x55', ctypes.c_double * 24),
+('x56', ctypes.c_double * 24),
+('x57', ctypes.c_double * 24),
+('x58', ctypes.c_double * 24),
+('x59', ctypes.c_double * 24),
+('x60', ctypes.c_double * 24),
+('x61', ctypes.c_double * 24),
+]
+
+FORCESNLPsolver_outputs = {'x01' : np.array([]),
+'x02' : np.array([]),
+'x03' : np.array([]),
+'x04' : np.array([]),
+'x05' : np.array([]),
+'x06' : np.array([]),
+'x07' : np.array([]),
+'x08' : np.array([]),
+'x09' : np.array([]),
+'x10' : np.array([]),
+'x11' : np.array([]),
+'x12' : np.array([]),
+'x13' : np.array([]),
+'x14' : np.array([]),
+'x15' : np.array([]),
+'x16' : np.array([]),
+'x17' : np.array([]),
+'x18' : np.array([]),
+'x19' : np.array([]),
+'x20' : np.array([]),
+'x21' : np.array([]),
+'x22' : np.array([]),
+'x23' : np.array([]),
+'x24' : np.array([]),
+'x25' : np.array([]),
+'x26' : np.array([]),
+'x27' : np.array([]),
+'x28' : np.array([]),
+'x29' : np.array([]),
+'x30' : np.array([]),
+'x31' : np.array([]),
+'x32' : np.array([]),
+'x33' : np.array([]),
+'x34' : np.array([]),
+'x35' : np.array([]),
+'x36' : np.array([]),
+'x37' : np.array([]),
+'x38' : np.array([]),
+'x39' : np.array([]),
+'x40' : np.array([]),
+'x41' : np.array([]),
+'x42' : np.array([]),
+'x43' : np.array([]),
+'x44' : np.array([]),
+'x45' : np.array([]),
+'x46' : np.array([]),
+'x47' : np.array([]),
+'x48' : np.array([]),
+'x49' : np.array([]),
+'x50' : np.array([]),
+'x51' : np.array([]),
+'x52' : np.array([]),
+'x53' : np.array([]),
+'x54' : np.array([]),
+'x55' : np.array([]),
+'x56' : np.array([]),
+'x57' : np.array([]),
+'x58' : np.array([]),
+'x59' : np.array([]),
+'x60' : np.array([]),
+'x61' : np.array([]),
+}
+
+
+class FORCESNLPsolver_info(ctypes.Structure):
+# @classmethod
+# def from_param(self):
+# return self
+ _fields_ = [('it', ctypes.c_int),
+('it2opt', ctypes.c_int),
+('res_eq', ctypes.c_double),
+('res_ineq', ctypes.c_double),
+('rsnorm', ctypes.c_double),
+('rcompnorm', ctypes.c_double),
+('pobj',ctypes.c_double),
+('dobj',ctypes.c_double),
+('dgap',ctypes.c_double),
+('rdgap',ctypes.c_double),
+('mu',ctypes.c_double),
+('mu_aff',ctypes.c_double),
+('sigma',ctypes.c_double),
+('lsit_aff', ctypes.c_int),
+('lsit_cc', ctypes.c_int),
+('step_aff',ctypes.c_double),
+('step_cc',ctypes.c_double),
+('solvetime',ctypes.c_double),
+('fevalstime',ctypes.c_double)
+]
+
+class FILE(ctypes.Structure):
+ pass
+if sys.version_info.major == 2:
+ PyFile_AsFile = ctypes.pythonapi.PyFile_AsFile # problem here with python 3 http://stackoverflow.com/questions/16130268/python-3-replacement-for-pyfile-asfile
+ PyFile_AsFile.argtypes = [ctypes.py_object]
+ PyFile_AsFile.restype = ctypes.POINTER(FILE)
+
+# determine data types for solver function prototype
+csolver.argtypes = ( ctypes.POINTER(FORCESNLPsolver_params_ctypes), ctypes.POINTER(FORCESNLPsolver_outputs_ctypes), ctypes.POINTER(FORCESNLPsolver_info), ctypes.POINTER(FILE))
+csolver.restype = ctypes.c_int
+
+def FORCESNLPsolver_solve(params_arg):
+ '''
+a Python wrapper for a fast solver generated by FORCES Pro v1.6.121
+
+ OUTPUT = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) solves a multistage problem
+ subject to the parameters supplied in the following dictionary:
+ PARAMS['x0'] - column vector of length 1464
+ PARAMS['xinit'] - column vector of length 16
+ PARAMS['xfinal'] - column vector of length 11
+ PARAMS['all_parameters'] - column vector of length 2501
+
+ OUTPUT returns the values of the last iteration of the solver where
+ OUTPUT['x01'] - column vector of size 24
+ OUTPUT['x02'] - column vector of size 24
+ OUTPUT['x03'] - column vector of size 24
+ OUTPUT['x04'] - column vector of size 24
+ OUTPUT['x05'] - column vector of size 24
+ OUTPUT['x06'] - column vector of size 24
+ OUTPUT['x07'] - column vector of size 24
+ OUTPUT['x08'] - column vector of size 24
+ OUTPUT['x09'] - column vector of size 24
+ OUTPUT['x10'] - column vector of size 24
+ OUTPUT['x11'] - column vector of size 24
+ OUTPUT['x12'] - column vector of size 24
+ OUTPUT['x13'] - column vector of size 24
+ OUTPUT['x14'] - column vector of size 24
+ OUTPUT['x15'] - column vector of size 24
+ OUTPUT['x16'] - column vector of size 24
+ OUTPUT['x17'] - column vector of size 24
+ OUTPUT['x18'] - column vector of size 24
+ OUTPUT['x19'] - column vector of size 24
+ OUTPUT['x20'] - column vector of size 24
+ OUTPUT['x21'] - column vector of size 24
+ OUTPUT['x22'] - column vector of size 24
+ OUTPUT['x23'] - column vector of size 24
+ OUTPUT['x24'] - column vector of size 24
+ OUTPUT['x25'] - column vector of size 24
+ OUTPUT['x26'] - column vector of size 24
+ OUTPUT['x27'] - column vector of size 24
+ OUTPUT['x28'] - column vector of size 24
+ OUTPUT['x29'] - column vector of size 24
+ OUTPUT['x30'] - column vector of size 24
+ OUTPUT['x31'] - column vector of size 24
+ OUTPUT['x32'] - column vector of size 24
+ OUTPUT['x33'] - column vector of size 24
+ OUTPUT['x34'] - column vector of size 24
+ OUTPUT['x35'] - column vector of size 24
+ OUTPUT['x36'] - column vector of size 24
+ OUTPUT['x37'] - column vector of size 24
+ OUTPUT['x38'] - column vector of size 24
+ OUTPUT['x39'] - column vector of size 24
+ OUTPUT['x40'] - column vector of size 24
+ OUTPUT['x41'] - column vector of size 24
+ OUTPUT['x42'] - column vector of size 24
+ OUTPUT['x43'] - column vector of size 24
+ OUTPUT['x44'] - column vector of size 24
+ OUTPUT['x45'] - column vector of size 24
+ OUTPUT['x46'] - column vector of size 24
+ OUTPUT['x47'] - column vector of size 24
+ OUTPUT['x48'] - column vector of size 24
+ OUTPUT['x49'] - column vector of size 24
+ OUTPUT['x50'] - column vector of size 24
+ OUTPUT['x51'] - column vector of size 24
+ OUTPUT['x52'] - column vector of size 24
+ OUTPUT['x53'] - column vector of size 24
+ OUTPUT['x54'] - column vector of size 24
+ OUTPUT['x55'] - column vector of size 24
+ OUTPUT['x56'] - column vector of size 24
+ OUTPUT['x57'] - column vector of size 24
+ OUTPUT['x58'] - column vector of size 24
+ OUTPUT['x59'] - column vector of size 24
+ OUTPUT['x60'] - column vector of size 24
+ OUTPUT['x61'] - column vector of size 24
+
+ [OUTPUT, EXITFLAG] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns additionally
+ the integer EXITFLAG indicating the state of the solution with
+ 1 - Optimal solution has been found (subject to desired accuracy)
+ 2 - (only branch-and-bound) A feasible point has been identified for which the objective value is no more than codeoptions.mip.mipgap*100 per cent worse than the global optimum
+ 0 - Timeout - maximum number of iterations reached
+ -1 - (only branch-and-bound) Infeasible problem (problems solving the root relaxation to the desired accuracy)
+ -2 - (only branch-and-bound) Out of memory - cannot fit branch and bound nodes into pre-allocated memory.
+ -6 - NaN or INF occured during evaluation of functions and derivatives. Please check your initial guess.
+ -7 - Method could not progress. Problem may be infeasible. Run FORCESdiagnostics on your problem to check for most common errors in the formulation.
+ -10 - The convex solver could not proceed due to an internal error
+ -100 - License error
+
+ [OUTPUT, EXITFLAG, INFO] = FORCESNLPsolver_py.FORCESNLPsolver_solve(PARAMS) returns
+ additional information about the last iterate:
+ INFO.it - number of iterations that lead to this result
+ INFO.it2opt - number of convex solves
+ INFO.res_eq - max. equality constraint residual
+ INFO.res_ineq - max. inequality constraint residual
+ INFO.rsnorm - norm of stationarity condition
+ INFO.rcompnorm - max of all complementarity violations
+ INFO.pobj - primal objective
+ INFO.mu - duality measure
+ INFO.solvetime - Time needed for solve (wall clock time)
+ INFO.fevalstime - Time needed for function evaluations (wall clock time)
+
+ See also COPYING
+
+ '''
+ global _lib
+
+ # convert parameters
+ params_py = FORCESNLPsolver_params_ctypes()
+ for par in params_arg:
+ try:
+ #setattr(params_py, par, npct.as_ctypes(np.reshape(params_arg[par],np.size(params_arg[par]),order='A')))
+ params_arg[par] = np.require(params_arg[par], dtype=np.float64, requirements='F')
+ setattr(params_py, par, npct.as_ctypes(np.reshape(params_arg[par],np.size(params_arg[par]),order='F')))
+ except:
+ raise ValueError('Parameter ' + par + ' does not have the appropriate dimensions or data type. Please use numpy arrays for parameters.')
+
+ outputs_py = FORCESNLPsolver_outputs_ctypes()
+ info_py = FORCESNLPsolver_info()
+ if sys.version_info.major == 2:
+ if sys.platform.startswith('win'):
+ fp = None # if set to none, the solver prints to stdout by default - necessary because we have an access violation otherwise under windows
+ else:
+ #fp = open('stdout_temp.txt','w')
+ fp = sys.stdout
+ try:
+ PyFile_AsFile.restype = ctypes.POINTER(FILE)
+ exitflag = _lib.FORCESNLPsolver_solve( params_py, ctypes.byref(outputs_py), ctypes.byref(info_py), PyFile_AsFile(fp) , _lib.FORCESNLPsolver_casadi2forces )
+ #fp = open('stdout_temp.txt','r')
+ #print (fp.read())
+ #fp.close()
+ except:
+ #print 'Problem with solver'
+ raise
+ elif sys.version_info.major == 3:
+ if sys.platform.startswith('win'):
+ libc = ctypes.cdll.msvcrt
+ elif sys.platform.startswith('darwin'):
+ libc = ctypes.CDLL('libc.dylib')
+ else:
+ libc = ctypes.CDLL('libc.so.6') # Open libc
+ cfopen = getattr(libc,'fopen') # Get its fopen
+ cfopen.restype = ctypes.POINTER(FILE) # Yes, fopen gives a file pointer
+ cfopen.argtypes = [ctypes.c_char_p, ctypes.c_char_p] # Yes, fopen gives a file pointer
+ fp = cfopen('stdout_temp.txt'.encode('utf-8'),'w'.encode('utf-8')) # Use that fopen
+
+ try:
+ if sys.platform.startswith('win'):
+ exitflag = _lib.FORCESNLPsolver_solve( params_py, ctypes.byref(outputs_py), ctypes.byref(info_py), None , _lib.FORCESNLPsolver_casadi2forces)
+ else:
+ exitflag = _lib.FORCESNLPsolver_solve( params_py, ctypes.byref(outputs_py), ctypes.byref(info_py), fp , _lib.FORCESNLPsolver_casadi2forces)
+ libc.fclose(fp)
+ fptemp = open('stdout_temp.txt','r')
+ print (fptemp.read())
+ fptemp.close()
+ except:
+ #print 'Problem with solver'
+ raise
+
+ # convert outputs
+ for out in FORCESNLPsolver_outputs:
+ FORCESNLPsolver_outputs[out] = npct.as_array(getattr(outputs_py,out))
+
+ return FORCESNLPsolver_outputs,int(exitflag),info_py
+
+solve = FORCESNLPsolver_solve
+
+
diff --git a/Yuwen project/FORCES_client/BackwardEuler.m b/Yuwen project/FORCES_client/BackwardEuler.m
new file mode 100755
index 0000000..44a2820
--- /dev/null
+++ b/Yuwen project/FORCES_client/BackwardEuler.m
@@ -0,0 +1,26 @@
+% Backward Eurler integrator
+%
+% [XNEXT, JAC] = BackwardEuler( X, U, XIDX, UDIX, F, H) implements implicit Euler integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt. XIDX and UIDX are the indices for the states and
+% inputs used to construct the Jacobian JAC.
+%
+% [XNEXT, JAC] = BackwardEuler( X, U, XIDX, UDIX, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% [XNEXT, JAC] = BackwardEuler( X, U, XIDX, UDIX, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also ForwardEuler RK2 RK3 RK4 IRK2 IRK4 FORCES_NLP
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
diff --git a/Yuwen project/FORCES_client/BackwardEuler.p b/Yuwen project/FORCES_client/BackwardEuler.p
new file mode 100755
index 0000000..16c5a85
Binary files /dev/null and b/Yuwen project/FORCES_client/BackwardEuler.p differ
diff --git a/Yuwen project/FORCES_client/FORCES_NLP.m b/Yuwen project/FORCES_client/FORCES_NLP.m
new file mode 100755
index 0000000..461df38
--- /dev/null
+++ b/Yuwen project/FORCES_client/FORCES_NLP.m
@@ -0,0 +1,75 @@
+% Interface to embotech's FORCES nonlinear programming (NLP) solver.
+%
+% FORCES_NLP(MODEL, OPTIONS) generates an efficient solver for the following
+% possibly nonlinear problem:
+%
+% minimize sum_{i=1}^N f(x,p)
+% subject to x(xinitidx) == xinit (initial conditions)
+% E*x_{i+1} == c(x_i,p), for i = 1...N-1 (nonlinear equalities)
+% x(xfinalidx) == xfinal (terminal conditions)
+% lb <= x_i <= ub, for i = 1...N (bounds on x)
+% hl <= h(z_i) <= hu for i = 1...N (nonlinear inequalities)
+%
+% The problem above is defined by the structure MODEL as follows:
+%
+% MODEL.N - number of steps N
+% .nvar - number of variables in each stage
+% .neq - number of equalities in each stage (size of c(x))
+% .nh - number of inequalities in each stage (size of h(x))
+% .npar - number of parameters (length of p above) in each stage
+%
+% .xinitidx - indices on which the initial conditions are defined
+% .xfinalidx - indices on which the terminal conditions are defined
+% .E - matrix multiplying the LHS of equalities
+%
+% .lb - lower bounds on x. If unconstrained, use -inf
+% .ub - upper bounds on x. If unconstrained, use +inf
+% .hl - lower bounds on h(x). If unconstrained, use -inf
+% .hu - upper bounds on h(x). If unconstrained, use +inf
+%
+% Notes: - MODEL.nvar, .neq and .nh can be given per stage via cell arrays.
+% ====== Otherwise it is assumed that they are the same for each stage.
+% - MODEL.npar allows for parameterizing the functions and is
+% optional (by default set to zero).
+% - MODEL.lb and .ub can be empty; in this case provide
+% MODEL.lbidx and MODEL.ubidx to indicate on which variables lower
+% and upper bounds are present. The numerical values will then be
+% expected at runtime.
+%
+% The generated code will have automatically the following parameters,
+% which need to be supplied before calling the solver:
+%
+% PROBLEM.x0 - initial guess, supplied as one column vector of length nvar*N.
+%
+% If initial or final conditions are present, the following parameters have
+% to be appropriately supplied:
+%
+% PROBLEM.xinit - initial condition
+% PROBLEM.xfinal - final condition
+%
+% If lower and/or upper bounds are parametric (see notes above):
+%
+% PROBLEM.lb01 - lower bound for stage 1
+% PROBLEM.ub01 - upper bounds for stage 1
+% ... - similarly for all stages
+%
+% (the number of leading zeros is adjusted to the log10 of the number of
+% stages automatically)
+%
+% The default output names are:
+%
+% OUTPUTS.x01
+% OUTPUTS.x02 etc.
+%
+% You can type "help " after calling FORCES_NLP for more detailed
+% documentation of expected in- and outputs for the particular solver as
+% well as exitflags.
+%
+%
+% FORCES_NLP(MODEL, OPTIONS, OUTPUTS) as above, but with user defined
+% outputs.
+%
+% See also GETOPTIONS NEQOUTPUT FORCES_LICENSE
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/FORCES_NLP.p b/Yuwen project/FORCES_client/FORCES_NLP.p
new file mode 100755
index 0000000..5cf97c2
Binary files /dev/null and b/Yuwen project/FORCES_client/FORCES_NLP.p differ
diff --git a/Yuwen project/FORCES_client/FORCEScleanup.m b/Yuwen project/FORCES_client/FORCEScleanup.m
new file mode 100755
index 0000000..53f89db
--- /dev/null
+++ b/Yuwen project/FORCES_client/FORCEScleanup.m
@@ -0,0 +1,48 @@
+% Cleans up directory from FORCES artifacts.
+%
+% --- USE WITH CARE, THIS FUNCTION DELETES FILES FROM YOUR SYSTEM! ---
+% --- WHENEVER POSSIBLE, WE TURN ON THE RECYCLE OPTION ---
+%
+%
+% FORCESCLEANUP(SOLVERNAME) removes artifacts that are placed during
+% the code generation of a solver named SOLVERNAME in the current
+% directory. It removes only files and directories that are not needed
+% for running the solver in Matlab:
+%
+% - the @CodeGen directory (from older FORCES versions)
+% - ZIP file .zip
+% - C-files:
+% * model_i.c
+% * model_N.c
+% * casadi2forces.c
+% - Object files:
+% * .[o,obj]
+% * _simulinkBlock.[o,obj,pdb]
+% * _simulinkBlockcompact.[o,obj,pdb]
+% - Temporary file for solver prints: stdout_temp
+%
+%
+% FORCESCLEANUP(SOLVERNAME,'all') cleans up more thoroughly, deleting
+% all files placed by the code generator into the current directory:
+%
+% - the @FORCESproWS directory
+% - the solverdirectory
+% - MEX FILES:
+% * .
+% * _simulinkBlock.
+% * _simulinkBlockcompact.
+% - Matlab help file: .m
+%
+%
+% FORCESCLEANUP(SOLVERNAME, MODE, DIR) as above, but perform cleanup of
+% the directory DIR. To perform only a partial cleanup of DIR, use
+% MODE = 'partial'.
+%
+%
+% FORCESCLEANUP(SOLVERNAME, MODE, DIR, SILENT) as above but suppresses
+% printing if SILENT==1. Set DIR=[] (empty matrix) if you want to clean
+% the current directory.
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
diff --git a/Yuwen project/FORCES_client/FORCEScleanup.p b/Yuwen project/FORCES_client/FORCEScleanup.p
new file mode 100755
index 0000000..4991eed
Binary files /dev/null and b/Yuwen project/FORCES_client/FORCEScleanup.p differ
diff --git a/Yuwen project/FORCES_client/FORCESdiagnostics.m b/Yuwen project/FORCES_client/FORCESdiagnostics.m
new file mode 100755
index 0000000..9d450da
--- /dev/null
+++ b/Yuwen project/FORCES_client/FORCESdiagnostics.m
@@ -0,0 +1,13 @@
+% Detect problem formulation errors (like infeasibility or unboundness).
+%
+% FORCESdiagnostics(STAGES, PARAMSTRUCT, PARAM)
+% returns a message describing any potential problems in your formulation
+%
+% STAGES: is the structure of the multistage formulation
+% PARAMSTRUCT: are the parameters generated by NEWPARAM
+% PARAM: are the values of the parameters
+%
+% See also STAGES2QCQP SUBSTITUTEPARAMS
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
diff --git a/Yuwen project/FORCES_client/FORCESdiagnostics.p b/Yuwen project/FORCES_client/FORCESdiagnostics.p
new file mode 100755
index 0000000..627cf59
Binary files /dev/null and b/Yuwen project/FORCES_client/FORCESdiagnostics.p differ
diff --git a/Yuwen project/FORCES_client/FORCESstrsplit.m b/Yuwen project/FORCES_client/FORCESstrsplit.m
new file mode 100755
index 0000000..2f0079c
--- /dev/null
+++ b/Yuwen project/FORCES_client/FORCESstrsplit.m
@@ -0,0 +1,8 @@
+% Split strings. Shipped to support older Matlab versions.
+%
+% RESULT = FORCESSTRSPLIT(INPUT, DELIMITER) split string at specified
+% delimiter and return the results in a cell array
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
diff --git a/Yuwen project/FORCES_client/FORCESstrsplit.p b/Yuwen project/FORCES_client/FORCESstrsplit.p
new file mode 100755
index 0000000..4c25e43
Binary files /dev/null and b/Yuwen project/FORCES_client/FORCESstrsplit.p differ
diff --git a/Yuwen project/FORCES_client/FORCESversion.m b/Yuwen project/FORCES_client/FORCESversion.m
new file mode 100755
index 0000000..753e2f3
--- /dev/null
+++ b/Yuwen project/FORCES_client/FORCESversion.m
@@ -0,0 +1,13 @@
+% Returns the version string of the FORCES client or a server.
+%
+% VER = FORCESVERSION() without any arguments returns the version of the
+% FORCES PRO client as a string.
+%
+% VER = FORCESVERSION(SERVER) retrieves the server version as a
+% string. An error is thrown if either no connection can be made,
+% or the corresponding server does not publish its version.
+%
+% See also UPDATECLIENT Y2F_DOWNLOAD Y2F_INSTALL
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
diff --git a/Yuwen project/FORCES_client/FORCESversion.p b/Yuwen project/FORCES_client/FORCESversion.p
new file mode 100755
index 0000000..ba566d0
Binary files /dev/null and b/Yuwen project/FORCES_client/FORCESversion.p differ
diff --git a/Yuwen project/FORCES_client/ForwardEuler.m b/Yuwen project/FORCES_client/ForwardEuler.m
new file mode 100755
index 0000000..71efe2f
--- /dev/null
+++ b/Yuwen project/FORCES_client/ForwardEuler.m
@@ -0,0 +1,25 @@
+% Explicit Runge-Kutta integrator of order 4.
+%
+% XNEXT = ForwardEuler( X, U, F, H) implements explicit Euler integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt.
+%
+% XNEXT = ForwardEuler( X, U, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% XNEXT = ForwardEuler( X, U, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also BackwardEuler RK2 RK3 RK4 IRK2 IRK4 FORCES_NLP
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
diff --git a/Yuwen project/FORCES_client/ForwardEuler.p b/Yuwen project/FORCES_client/ForwardEuler.p
new file mode 100755
index 0000000..3d909ea
Binary files /dev/null and b/Yuwen project/FORCES_client/ForwardEuler.p differ
diff --git a/Yuwen project/FORCES_client/IRK2.m b/Yuwen project/FORCES_client/IRK2.m
new file mode 100755
index 0000000..a18f20e
--- /dev/null
+++ b/Yuwen project/FORCES_client/IRK2.m
@@ -0,0 +1,26 @@
+% Implicit Runge-Kutta integrator of order 2.
+%
+% [XNEXT, JAC] = IRK2( X, U, XIDX, UDIX, F, H) implements implicit RK2 integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt. XIDX and UIDX are the indices for the states and
+% inputs used to construct the Jacobian JAC.
+%
+% [XNEXT, JAC] = IRK2( X, U, XIDX, UDIX, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% [XNEXT, JAC] = IRK2( X, U, XIDX, UDIX, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also ForwardEuler BackwardEuler RK2 RK3 RK4 IRK4 FORCES_NLP
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
diff --git a/Yuwen project/FORCES_client/IRK2.p b/Yuwen project/FORCES_client/IRK2.p
new file mode 100755
index 0000000..835d7bc
Binary files /dev/null and b/Yuwen project/FORCES_client/IRK2.p differ
diff --git a/Yuwen project/FORCES_client/IRK4.m b/Yuwen project/FORCES_client/IRK4.m
new file mode 100755
index 0000000..d96d96c
--- /dev/null
+++ b/Yuwen project/FORCES_client/IRK4.m
@@ -0,0 +1,26 @@
+% Implicit Runge-Kutta integrator of order 4.
+%
+% [XNEXT, JAC] = IRK4( X, U, XIDX, UDIX, F, H) implements implicit RK4 integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt. XIDX and UIDX are the indices for the states and
+% inputs used to construct the Jacobian JAC.
+%
+% [XNEXT, JAC] = IRK4( X, U, XIDX, UDIX, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% [XNEXT, JAC] = IRK4( X, U, XIDX, UDIX, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also ForwardEuler BackwardEuler RK2 RK3 RK4 IRK2 FORCES_NLP
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
diff --git a/Yuwen project/FORCES_client/IRK4.p b/Yuwen project/FORCES_client/IRK4.p
new file mode 100755
index 0000000..6f482b6
Binary files /dev/null and b/Yuwen project/FORCES_client/IRK4.p differ
diff --git a/Yuwen project/FORCES_client/MPC_lib_2012b.mdl b/Yuwen project/FORCES_client/MPC_lib_2012b.mdl
new file mode 100755
index 0000000..e75ad2f
--- /dev/null
+++ b/Yuwen project/FORCES_client/MPC_lib_2012b.mdl
@@ -0,0 +1,11985 @@
+Library {
+ Name "MPC_lib_2012b"
+ Version 8.3
+ MdlSubVersion 0
+ SavedCharacterEncoding "windows-1252"
+ LibraryType "BlockLibrary"
+ SaveDefaultBlockParams on
+ ScopeRefreshTime 0.035000
+ OverrideScopeRefreshTime on
+ DisableAllScopes off
+ FPTRunName "Run 1"
+ MaxMDLFileLineLength 120
+ Object {
+ $PropName "BdWindowsInfo"
+ $ObjectID 1
+ $ClassName "Simulink.BDWindowsInfo"
+ Object {
+ $PropName "WindowsInfo"
+ $ObjectID 2
+ $ClassName "Simulink.WindowInfo"
+ IsActive [1]
+ Location [910.0, 253.0, 688.0, 597.0]
+ Object {
+ $PropName "ModelBrowserInfo"
+ $ObjectID 3
+ $ClassName "Simulink.ModelBrowserInfo"
+ Visible [1]
+ DockPosition "Left"
+ Width [50]
+ Height [50]
+ Filter [9]
+ }
+ Object {
+ $PropName "ExplorerBarInfo"
+ $ObjectID 4
+ $ClassName "Simulink.ExplorerBarInfo"
+ Visible [1]
+ }
+ Object {
+ $PropName "EditorsInfo"
+ $ObjectID 5
+ $ClassName "Simulink.EditorInfo"
+ IsActive [1]
+ ViewObjType "SimulinkTopLevel"
+ LoadSaveID "0"
+ Extents [445.0, 430.0]
+ ZoomFactor [1.25]
+ Offset [64.600000000000136, 66.74285714285719]
+ }
+ }
+ }
+ Created "Thu Feb 13 11:48:05 2014"
+ Creator "Juan"
+ UpdateHistory "UpdateHistoryNever"
+ ModifiedByFormat "%"
+ LastModifiedBy "juanj"
+ ModifiedDateFormat "%"
+ LastModifiedDate "Thu Oct 20 14:21:07 2016"
+ RTWModifiedTimeStamp 398874055
+ ModelVersionFormat "1.%"
+ ConfigurationManager "none"
+ SampleTimeColors off
+ SampleTimeAnnotations off
+ LibraryLinkDisplay "disabled"
+ WideLines off
+ ShowLineDimensions off
+ ShowPortDataTypes off
+ ShowDesignRanges off
+ ShowLoopsOnError on
+ IgnoreBidirectionalLines off
+ ShowStorageClass off
+ ShowTestPointIcons on
+ ShowSignalResolutionIcons on
+ ShowViewerIcons on
+ SortedOrder off
+ ExecutionContextIcon off
+ ShowLinearizationAnnotations on
+ BlockNameDataTip off
+ BlockParametersDataTip off
+ BlockDescriptionStringDataTip off
+ ToolBar on
+ StatusBar on
+ BrowserShowLibraryLinks off
+ BrowserLookUnderMasks off
+ SimulationMode "normal"
+ PauseTimes "5"
+ NumberOfSteps 1
+ SnapshotBufferSize 10
+ SnapshotInterval 10
+ NumberOfLastSnapshots 0
+ LinearizationMsg "none"
+ Profile off
+ ParamWorkspaceSource "MATLABWorkspace"
+ RecordCoverage off
+ CovSaveName "covdata"
+ CovMetricSettings "dw"
+ CovNameIncrementing off
+ CovHtmlReporting on
+ CovForceBlockReductionOff on
+ CovEnableCumulative on
+ covSaveCumulativeToWorkspaceVar on
+ CovSaveSingleToWorkspaceVar on
+ CovCumulativeReport off
+ CovReportOnPause on
+ CovModelRefEnable "Off"
+ CovExternalEMLEnable off
+ CovSFcnEnable off
+ CovBoundaryAbsTol 0.000010
+ CovBoundaryRelTol 0.010000
+ ExtModeBatchMode off
+ ExtModeEnableFloating on
+ ExtModeTrigType "manual"
+ ExtModeTrigMode "normal"
+ ExtModeTrigPort "1"
+ ExtModeTrigElement "any"
+ ExtModeTrigDuration 1000
+ ExtModeTrigDurationFloating "auto"
+ ExtModeTrigHoldOff 0
+ ExtModeTrigDelay 0
+ ExtModeTrigDirection "rising"
+ ExtModeTrigLevel 0
+ ExtModeArchiveMode "off"
+ ExtModeAutoIncOneShot off
+ ExtModeIncDirWhenArm off
+ ExtModeAddSuffixToVar off
+ ExtModeWriteAllDataToWs off
+ ExtModeArmWhenConnect on
+ ExtModeSkipDownloadWhenConnect off
+ ExtModeLogAll on
+ ExtModeAutoUpdateStatusClock on
+ ShowModelReferenceBlockVersion off
+ ShowModelReferenceBlockIO off
+ Array {
+ Type "Handle"
+ Dimension 1
+ Simulink.ConfigSet {
+ $ObjectID 6
+ Version "1.14.2"
+ Array {
+ Type "Handle"
+ Dimension 8
+ Simulink.SolverCC {
+ $ObjectID 7
+ Version "1.14.2"
+ StartTime "0.0"
+ StopTime "10.0"
+ AbsTol "auto"
+ FixedStep "auto"
+ InitialStep "auto"
+ MaxNumMinSteps "-1"
+ MaxOrder 5
+ ZcThreshold "auto"
+ ConsecutiveZCsStepRelTol "10*128*eps"
+ MaxConsecutiveZCs "1000"
+ ExtrapolationOrder 4
+ NumberNewtonIterations 1
+ MaxStep "auto"
+ MinStep "auto"
+ MaxConsecutiveMinStep "1"
+ RelTol "1e-3"
+ SolverMode "Auto"
+ EnableConcurrentExecution off
+ ConcurrentTasks off
+ Solver "ode45"
+ SolverName "ode45"
+ SolverJacobianMethodControl "auto"
+ ShapePreserveControl "DisableAll"
+ ZeroCrossControl "UseLocalSettings"
+ ZeroCrossAlgorithm "Nonadaptive"
+ AlgebraicLoopSolver "TrustRegion"
+ SolverResetMethod "Fast"
+ PositivePriorityOrder off
+ AutoInsertRateTranBlk off
+ SampleTimeConstraint "Unconstrained"
+ InsertRTBMode "Whenever possible"
+ }
+ Simulink.DataIOCC {
+ $ObjectID 8
+ Version "1.14.2"
+ Decimation "1"
+ ExternalInput "[t, u]"
+ FinalStateName "xFinal"
+ InitialState "xInitial"
+ LimitDataPoints on
+ MaxDataPoints "1000"
+ LoadExternalInput off
+ LoadInitialState off
+ SaveFinalState off
+ SaveCompleteFinalSimState off
+ SaveFormat "Array"
+ SignalLoggingSaveFormat "Dataset"
+ SaveOutput on
+ SaveState off
+ SignalLogging on
+ DSMLogging on
+ InspectSignalLogs off
+ VisualizeSimOutput on
+ SaveTime on
+ ReturnWorkspaceOutputs off
+ StateSaveName "xout"
+ TimeSaveName "tout"
+ OutputSaveName "yout"
+ SignalLoggingName "logsout"
+ DSMLoggingName "dsmout"
+ OutputOption "RefineOutputTimes"
+ OutputTimes "[]"
+ ReturnWorkspaceOutputsName "out"
+ Refine "1"
+ }
+ Simulink.OptimizationCC {
+ $ObjectID 9
+ Version "1.14.2"
+ Array {
+ Type "Cell"
+ Dimension 8
+ Cell "BooleansAsBitfields"
+ Cell "PassReuseOutputArgsAs"
+ Cell "PassReuseOutputArgsThreshold"
+ Cell "ZeroExternalMemoryAtStartup"
+ Cell "ZeroInternalMemoryAtStartup"
+ Cell "OptimizeModelRefInitCode"
+ Cell "NoFixptDivByZeroProtection"
+ Cell "UseSpecifiedMinMax"
+ PropName "DisabledProps"
+ }
+ BlockReduction on
+ BooleanDataType on
+ ConditionallyExecuteInputs on
+ InlineParams off
+ UseIntDivNetSlope off
+ UseFloatMulNetSlope off
+ DefaultUnderspecifiedDataType "double"
+ UseSpecifiedMinMax off
+ InlineInvariantSignals off
+ OptimizeBlockIOStorage on
+ BufferReuse on
+ EnhancedBackFolding off
+ CachingGlobalReferences off
+ GlobalBufferReuse on
+ StrengthReduction off
+ ExpressionFolding on
+ BooleansAsBitfields off
+ BitfieldContainerType "uint_T"
+ EnableMemcpy on
+ MemcpyThreshold 64
+ PassReuseOutputArgsAs "Structure reference"
+ ExpressionDepthLimit 128
+ FoldNonRolledExpr on
+ LocalBlockOutputs on
+ RollThreshold 5
+ SystemCodeInlineAuto off
+ StateBitsets off
+ DataBitsets off
+ ActiveStateOutputEnumStorageType "Native Integer"
+ UseTempVars off
+ ZeroExternalMemoryAtStartup on
+ ZeroInternalMemoryAtStartup on
+ InitFltsAndDblsToZero off
+ NoFixptDivByZeroProtection off
+ EfficientFloat2IntCast off
+ EfficientMapNaN2IntZero on
+ OptimizeModelRefInitCode off
+ LifeSpan "inf"
+ MaxStackSize "Inherit from target"
+ BufferReusableBoundary on
+ SimCompilerOptimization "Off"
+ AccelVerboseBuild off
+ ParallelExecutionInRapidAccelerator on
+ }
+ Simulink.DebuggingCC {
+ $ObjectID 10
+ Version "1.14.2"
+ RTPrefix "error"
+ ConsistencyChecking "none"
+ ArrayBoundsChecking "none"
+ SignalInfNanChecking "none"
+ SignalRangeChecking "none"
+ ReadBeforeWriteMsg "UseLocalSettings"
+ WriteAfterWriteMsg "UseLocalSettings"
+ WriteAfterReadMsg "UseLocalSettings"
+ AlgebraicLoopMsg "warning"
+ ArtificialAlgebraicLoopMsg "warning"
+ SaveWithDisabledLinksMsg "warning"
+ SaveWithParameterizedLinksMsg "warning"
+ CheckSSInitialOutputMsg on
+ UnderspecifiedInitializationDetection "Classic"
+ MergeDetectMultiDrivingBlocksExec "none"
+ CheckExecutionContextPreStartOutputMsg off
+ CheckExecutionContextRuntimeOutputMsg off
+ SignalResolutionControl "UseLocalSettings"
+ BlockPriorityViolationMsg "warning"
+ MinStepSizeMsg "warning"
+ TimeAdjustmentMsg "none"
+ MaxConsecutiveZCsMsg "error"
+ MaskedZcDiagnostic "warning"
+ IgnoredZcDiagnostic "warning"
+ SolverPrmCheckMsg "warning"
+ InheritedTsInSrcMsg "warning"
+ DiscreteInheritContinuousMsg "warning"
+ MultiTaskDSMMsg "error"
+ MultiTaskCondExecSysMsg "error"
+ MultiTaskRateTransMsg "error"
+ SingleTaskRateTransMsg "none"
+ TasksWithSamePriorityMsg "warning"
+ SigSpecEnsureSampleTimeMsg "warning"
+ CheckMatrixSingularityMsg "none"
+ IntegerOverflowMsg "warning"
+ Int32ToFloatConvMsg "warning"
+ ParameterDowncastMsg "error"
+ ParameterOverflowMsg "error"
+ ParameterUnderflowMsg "none"
+ ParameterPrecisionLossMsg "warning"
+ ParameterTunabilityLossMsg "warning"
+ FixptConstUnderflowMsg "none"
+ FixptConstOverflowMsg "none"
+ FixptConstPrecisionLossMsg "none"
+ UnderSpecifiedDataTypeMsg "none"
+ UnnecessaryDatatypeConvMsg "none"
+ VectorMatrixConversionMsg "none"
+ InvalidFcnCallConnMsg "error"
+ FcnCallInpInsideContextMsg "EnableAllAsError"
+ SignalLabelMismatchMsg "none"
+ UnconnectedInputMsg "warning"
+ UnconnectedOutputMsg "warning"
+ UnconnectedLineMsg "warning"
+ SFcnCompatibilityMsg "none"
+ FrameProcessingCompatibilityMsg "warning"
+ UniqueDataStoreMsg "none"
+ BusObjectLabelMismatch "warning"
+ RootOutportRequireBusObject "warning"
+ AssertControl "UseLocalSettings"
+ EnableOverflowDetection off
+ ModelReferenceIOMsg "none"
+ ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
+ ModelReferenceVersionMismatchMessage "none"
+ ModelReferenceIOMismatchMessage "none"
+ ModelReferenceCSMismatchMessage "none"
+ UnknownTsInhSupMsg "warning"
+ ModelReferenceDataLoggingMessage "warning"
+ ModelReferenceSymbolNameMessage "warning"
+ ModelReferenceExtraNoncontSigs "error"
+ StateNameClashWarn "warning"
+ SimStateInterfaceChecksumMismatchMsg "warning"
+ SimStateOlderReleaseMsg "error"
+ InitInArrayFormatMsg "warning"
+ StrictBusMsg "ErrorLevel1"
+ BusNameAdapt "WarnAndRepair"
+ NonBusSignalsTreatedAsBus "none"
+ LoggingUnavailableSignals "error"
+ BlockIODiagnostic "none"
+ SFUnusedDataAndEventsDiag "warning"
+ SFUnexpectedBacktrackingDiag "warning"
+ SFInvalidInputDataAccessInChartInitDiag "warning"
+ SFNoUnconditionalDefaultTransitionDiag "warning"
+ SFTransitionOutsideNaturalParentDiag "warning"
+ SFUnconditionalTransitionShadowingDiag "warning"
+ SFUndirectedBroadcastEventsDiag "warning"
+ SFTransitionActionBeforeConditionDiag "warning"
+ }
+ Simulink.HardwareCC {
+ $ObjectID 11
+ Version "1.14.2"
+ ProdBitPerChar 8
+ ProdBitPerShort 16
+ ProdBitPerInt 32
+ ProdBitPerLong 32
+ ProdBitPerLongLong 64
+ ProdBitPerFloat 32
+ ProdBitPerDouble 64
+ ProdBitPerPointer 32
+ ProdLargestAtomicInteger "Char"
+ ProdLargestAtomicFloat "None"
+ ProdIntDivRoundTo "Undefined"
+ ProdEndianess "Unspecified"
+ ProdWordSize 32
+ ProdShiftRightIntArith on
+ ProdLongLongMode off
+ ProdHWDeviceType "32-bit Generic"
+ TargetBitPerChar 8
+ TargetBitPerShort 16
+ TargetBitPerInt 32
+ TargetBitPerLong 32
+ TargetBitPerLongLong 64
+ TargetBitPerFloat 32
+ TargetBitPerDouble 64
+ TargetBitPerPointer 32
+ TargetLargestAtomicInteger "Char"
+ TargetLargestAtomicFloat "None"
+ TargetShiftRightIntArith on
+ TargetLongLongMode off
+ TargetIntDivRoundTo "Undefined"
+ TargetEndianess "Unspecified"
+ TargetWordSize 32
+ TargetTypeEmulationWarnSuppressLevel 0
+ TargetPreprocMaxBitsSint 32
+ TargetPreprocMaxBitsUint 32
+ TargetHWDeviceType "Specified"
+ TargetUnknown off
+ ProdEqTarget on
+ }
+ Simulink.ModelReferenceCC {
+ $ObjectID 12
+ Version "1.14.2"
+ UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+ CheckModelReferenceTargetMessage "error"
+ EnableParallelModelReferenceBuilds off
+ ParallelModelReferenceErrorOnInvalidPool on
+ ParallelModelReferenceMATLABWorkerInit "None"
+ ModelReferenceNumInstancesAllowed "Multi"
+ PropagateVarSize "Infer from blocks in model"
+ ModelReferencePassRootInputsByReference on
+ ModelReferenceMinAlgLoopOccurrences off
+ PropagateSignalLabelsOutOfModel off
+ SupportModelReferenceSimTargetCustomCode off
+ }
+ Simulink.SFSimCC {
+ $ObjectID 13
+ Version "1.14.2"
+ SFSimEnableDebug on
+ SFSimOverflowDetection on
+ SFSimEcho on
+ SimBlas on
+ SimCtrlC on
+ SimExtrinsic on
+ SimIntegrity on
+ SimUseLocalCustomCode off
+ SimParseCustomCode on
+ SimBuildMode "sf_incremental_build"
+ SimGenImportedTypeDefs off
+ }
+ Simulink.RTWCC {
+ $BackupClass "Simulink.RTWCC"
+ $ObjectID 14
+ Version "1.14.2"
+ Array {
+ Type "Cell"
+ Dimension 15
+ Cell "IncludeHyperlinkInReport"
+ Cell "GenerateTraceInfo"
+ Cell "GenerateTraceReport"
+ Cell "GenerateTraceReportSl"
+ Cell "GenerateTraceReportSf"
+ Cell "GenerateTraceReportEml"
+ Cell "PortableWordSizes"
+ Cell "GenerateWebview"
+ Cell "GenerateCodeMetricsReport"
+ Cell "GenerateCodeReplacementReport"
+ Cell "GenerateErtSFunction"
+ Cell "CreateSILPILBlock"
+ Cell "CodeExecutionProfiling"
+ Cell "CodeProfilingSaveOptions"
+ Cell "CodeProfilingInstrumentation"
+ PropName "DisabledProps"
+ }
+ SystemTargetFile "grt.tlc"
+ TLCOptions ""
+ GenCodeOnly off
+ MakeCommand "make_rtw"
+ GenerateMakefile on
+ PackageGeneratedCodeAndArtifacts off
+ PackageName ""
+ TemplateMakefile "grt_default_tmf"
+ PostCodeGenCommand ""
+ Description ""
+ GenerateReport off
+ SaveLog off
+ RTWVerbose on
+ RetainRTWFile off
+ ProfileTLC off
+ TLCDebug off
+ TLCCoverage off
+ TLCAssert off
+ ProcessScriptMode "Default"
+ ConfigurationMode "Optimized"
+ ProcessScript ""
+ ConfigurationScript ""
+ ConfigAtBuild off
+ RTWUseLocalCustomCode off
+ RTWUseSimCustomCode off
+ CustomSourceCode ""
+ CustomHeaderCode ""
+ CustomInclude ""
+ CustomSource ""
+ CustomLibrary ""
+ CustomInitializer ""
+ CustomTerminator ""
+ Toolchain "Automatically locate an installed toolchain"
+ BuildConfiguration "Faster Builds"
+ IncludeHyperlinkInReport off
+ LaunchReport off
+ PortableWordSizes off
+ CreateSILPILBlock "None"
+ CodeExecutionProfiling off
+ CodeExecutionProfileVariable "executionProfile"
+ CodeProfilingSaveOptions "SummaryOnly"
+ CodeProfilingInstrumentation off
+ SILDebugging off
+ TargetLang "C"
+ IncludeBusHierarchyInRTWFileBlockHierarchyMap off
+ IncludeERTFirstTime off
+ GenerateTraceInfo off
+ GenerateTraceReport off
+ GenerateTraceReportSl off
+ GenerateTraceReportSf off
+ GenerateTraceReportEml off
+ GenerateCodeInfo off
+ GenerateWebview off
+ GenerateCodeMetricsReport off
+ GenerateCodeReplacementReport off
+ RTWCompilerOptimization "Off"
+ RTWCustomCompilerOptimizations ""
+ CheckMdlBeforeBuild "Off"
+ CustomRebuildMode "OnUpdate"
+ DataInitializer ""
+ SharedConstantsCachingThreshold 1024
+ Array {
+ Type "Handle"
+ Dimension 2
+ Simulink.CodeAppCC {
+ $ObjectID 15
+ Version "1.14.2"
+ Array {
+ Type "Cell"
+ Dimension 22
+ Cell "IgnoreCustomStorageClasses"
+ Cell "IgnoreTestpoints"
+ Cell "InsertBlockDesc"
+ Cell "InsertPolySpaceComments"
+ Cell "SFDataObjDesc"
+ Cell "MATLABFcnDesc"
+ Cell "SimulinkDataObjDesc"
+ Cell "DefineNamingRule"
+ Cell "SignalNamingRule"
+ Cell "ParamNamingRule"
+ Cell "InternalIdentifier"
+ Cell "InlinedPrmAccess"
+ Cell "CustomSymbolStr"
+ Cell "CustomSymbolStrGlobalVar"
+ Cell "CustomSymbolStrType"
+ Cell "CustomSymbolStrField"
+ Cell "CustomSymbolStrFcn"
+ Cell "CustomSymbolStrFcnArg"
+ Cell "CustomSymbolStrBlkIO"
+ Cell "CustomSymbolStrTmpVar"
+ Cell "CustomSymbolStrMacro"
+ Cell "ReqsInCode"
+ PropName "DisabledProps"
+ }
+ ForceParamTrailComments off
+ GenerateComments on
+ CommentStyle "Auto"
+ IgnoreCustomStorageClasses on
+ IgnoreTestpoints off
+ IncHierarchyInIds off
+ MaxIdLength 31
+ PreserveName off
+ PreserveNameWithParent off
+ ShowEliminatedStatement off
+ OperatorAnnotations off
+ IncAutoGenComments off
+ SimulinkDataObjDesc off
+ SFDataObjDesc off
+ MATLABFcnDesc off
+ IncDataTypeInIds off
+ MangleLength 1
+ CustomSymbolStrGlobalVar "$R$N$M"
+ CustomSymbolStrType "$N$R$M_T"
+ CustomSymbolStrField "$N$M"
+ CustomSymbolStrFcn "$R$N$M$F"
+ CustomSymbolStrFcnArg "rt$I$N$M"
+ CustomSymbolStrBlkIO "rtb_$N$M"
+ CustomSymbolStrTmpVar "$N$M"
+ CustomSymbolStrMacro "$R$N$M"
+ CustomSymbolStrUtil "$N$C"
+ DefineNamingRule "None"
+ ParamNamingRule "None"
+ SignalNamingRule "None"
+ InsertBlockDesc off
+ InsertPolySpaceComments off
+ SimulinkBlockComments on
+ MATLABSourceComments off
+ EnableCustomComments off
+ InternalIdentifier "Shortened"
+ InlinedPrmAccess "Literals"
+ ReqsInCode off
+ UseSimReservedNames off
+ }
+ Simulink.GRTTargetCC {
+ $BackupClass "Simulink.TargetCC"
+ $ObjectID 16
+ Version "1.14.2"
+ Array {
+ Type "Cell"
+ Dimension 15
+ Cell "GeneratePreprocessorConditionals"
+ Cell "IncludeMdlTerminateFcn"
+ Cell "CombineOutputUpdateFcns"
+ Cell "SuppressErrorStatus"
+ Cell "ERTCustomFileBanners"
+ Cell "GenerateSampleERTMain"
+ Cell "GenerateTestInterfaces"
+ Cell "ModelStepFunctionPrototypeControlCompliant"
+ Cell "CPPClassGenCompliant"
+ Cell "GenerateAllocFcn"
+ Cell "PurelyIntegerCode"
+ Cell "SupportComplex"
+ Cell "SupportAbsoluteTime"
+ Cell "SupportContinuousTime"
+ Cell "SupportNonInlinedSFcns"
+ PropName "DisabledProps"
+ }
+ TargetFcnLib "ansi_tfl_table_tmw.mat"
+ TargetLibSuffix ""
+ TargetPreCompLibLocation ""
+ GenFloatMathFcnCalls "NOT IN USE"
+ TargetLangStandard "C89/C90 (ANSI)"
+ CodeReplacementLibrary "None"
+ UtilityFuncGeneration "Auto"
+ ERTMultiwordTypeDef "System defined"
+ ERTMultiwordLength 256
+ MultiwordLength 2048
+ GenerateFullHeader on
+ GenerateSampleERTMain off
+ GenerateTestInterfaces off
+ ModelReferenceCompliant on
+ ParMdlRefBuildCompliant on
+ CompOptLevelCompliant on
+ ConcurrentExecutionCompliant on
+ IncludeMdlTerminateFcn on
+ GeneratePreprocessorConditionals "Disable all"
+ CombineOutputUpdateFcns on
+ CombineSignalStateStructs off
+ SuppressErrorStatus off
+ ERTFirstTimeCompliant off
+ IncludeFileDelimiter "Auto"
+ ERTCustomFileBanners off
+ SupportAbsoluteTime on
+ LogVarNameModifier "rt_"
+ MatFileLogging on
+ MultiInstanceERTCode off
+ CodeInterfacePackaging "Nonreusable function"
+ SupportNonFinite on
+ SupportComplex on
+ PurelyIntegerCode off
+ SupportContinuousTime on
+ SupportNonInlinedSFcns on
+ SupportVariableSizeSignals off
+ EnableShiftOperators on
+ ParenthesesLevel "Nominal"
+ MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization"
+ ModelStepFunctionPrototypeControlCompliant off
+ CPPClassGenCompliant on
+ AutosarCompliant off
+ GRTInterface off
+ GenerateAllocFcn off
+ UseMalloc off
+ ExtMode off
+ ExtModeStaticAlloc off
+ ExtModeTesting off
+ ExtModeStaticAllocSize 1000000
+ ExtModeTransport 0
+ ExtModeMexFile "ext_comm"
+ ExtModeIntrfLevel "Level1"
+ RTWCAPISignals off
+ RTWCAPIParams off
+ RTWCAPIStates off
+ RTWCAPIRootIO off
+ GenerateASAP2 off
+ MultiInstanceErrorCode "Error"
+ }
+ PropName "Components"
+ }
+ }
+ PropName "Components"
+ }
+ Name "Configuration"
+ CurrentDlgPage "Solver"
+ ConfigPrmDlgPosition [ 430, 225, 1490, 855 ]
+ }
+ PropName "ConfigurationSets"
+ }
+ ExplicitPartitioning off
+ BlockDefaults {
+ ForegroundColor "black"
+ BackgroundColor "white"
+ DropShadow off
+ NamePlacement "normal"
+ FontName "Helvetica"
+ FontSize 10
+ FontWeight "normal"
+ FontAngle "normal"
+ ShowName on
+ BlockRotation 0
+ BlockMirror off
+ }
+ AnnotationDefaults {
+ HorizontalAlignment "center"
+ VerticalAlignment "middle"
+ ForegroundColor "black"
+ BackgroundColor "white"
+ DropShadow off
+ FontName "Helvetica"
+ FontSize 10
+ FontWeight "normal"
+ FontAngle "normal"
+ UseDisplayTextAsClickCallback off
+ }
+ LineDefaults {
+ FontName "Helvetica"
+ FontSize 9
+ FontWeight "normal"
+ FontAngle "normal"
+ }
+ MaskDefaults {
+ SelfModifiable "off"
+ IconFrame "on"
+ IconOpaque "on"
+ RunInitForIconRedraw "off"
+ IconRotate "none"
+ PortRotate "default"
+ IconUnits "autoscale"
+ }
+ MaskParameterDefaults {
+ Evaluate "on"
+ Tunable "on"
+ NeverSave "off"
+ Internal "off"
+ ReadOnly "off"
+ Enabled "on"
+ Visible "on"
+ ToolTip "on"
+ }
+ BlockParameterDefaults {
+ Block {
+ BlockType S-Function
+ FunctionName "system"
+ SFunctionModules "''"
+ PortCounts "[]"
+ SFunctionDeploymentMode off
+ }
+ }
+ System {
+ Name "MPC_lib_2012b"
+ Location [910, 253, 1598, 850]
+ Open on
+ ModelBrowserVisibility on
+ ModelBrowserWidth 200
+ ScreenColor "white"
+ PaperOrientation "landscape"
+ PaperPositionMode "auto"
+ PaperType "A4"
+ PaperUnits "centimeters"
+ TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000]
+ TiledPageScale 1
+ ShowPageBoundaries off
+ ZoomFactor "125"
+ ReportName "simulink-default.rpt"
+ SIDHighWatermark "2"
+ Block {
+ BlockType S-Function
+ Name "MPC"
+ SID "1"
+ Ports [1, 1]
+ Position [135, 114, 315, 276]
+ ZOrder 2
+ Priority "1000"
+ InitFcn "%configure_block(gcb,'generate');"
+ CloseFcn "%configure_block(gcb,'generate');"
+ FunctionName "FORCES_PRO"
+ EnableBusSupport off
+ Object {
+ $PropName "MaskObject"
+ $ObjectID 17
+ $ClassName "Simulink.Mask"
+ Type "Configuration of customized MPC controller"
+ Description "Copy this block to your Simulink diagram before configuring.\n\nOnce the block is configured, type 'con"
+ "figure_block' if you want to generate a new controller.\n\nClick on 'Help' to get further information on the differen"
+ "t confiuration options."
+ Help "web('https://www.embotech.com/FORCES-Pro/User-Manual/Graphical-Interface', '-browser')"
+ SelfModifiable "on"
+ Array {
+ Type "Simulink.MaskParameter"
+ Dimension 982
+ Object {
+ $ObjectID 18
+ Type "checkbox"
+ Name "gsdfgdasfgsdfghsdf"
+ Prompt "ds"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'first_init')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 19
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 3
+ Cell "x(./+) = Ax + Bu"
+ Cell "x(./+) = Ax + Bu + g"
+ Cell "Take model from Simulink block"
+ PropName "TypeOptions"
+ }
+ Name "modelType"
+ Prompt "Type:"
+ Value "x(./+) = Ax + Bu"
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'model_type')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 20
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 2
+ Cell "Continuous-time model"
+ Cell "Discrete-time model"
+ PropName "TypeOptions"
+ }
+ Name "modelTime"
+ Prompt "Time:"
+ Value "Continuous-time model"
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'model_time')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 21
+ Type "edit"
+ Name "Ts"
+ Prompt "Sampling time (seconds):"
+ Value "0.05"
+ Evaluate "off"
+ Tunable "off"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 22
+ Type "edit"
+ Name "sepbar1"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 23
+ Type "edit"
+ Name "A"
+ Prompt "A - state transistion matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'getA_matrix')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 24
+ Type "checkbox"
+ Name "boolAparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'params_check','A')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 25
+ Type "checkbox"
+ Name "boolAparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 26
+ Type "edit"
+ Name "B"
+ Prompt "B - input matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'getB_matrix')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 27
+ Type "checkbox"
+ Name "boolBparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'params_check','B')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 28
+ Type "checkbox"
+ Name "boolBparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 29
+ Type "edit"
+ Name "C"
+ Prompt "C - output matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'getC_matrix')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 30
+ Type "edit"
+ Name "g"
+ Prompt "g - additive term:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'getg_matrix')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 31
+ Type "checkbox"
+ Name "boolgparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','g')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 32
+ Type "checkbox"
+ Name "boolgparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 33
+ Type "edit"
+ Name "modelName"
+ Prompt "Simulink model name:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'getBlockName')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 34
+ Type "edit"
+ Name "no_inputs"
+ Prompt "Number of inputs:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'get_input_dim')"
+ TabName "Model"
+ }
+ Object {
+ $ObjectID 35
+ Type "checkbox"
+ Name "boolOutputTrack"
+ Prompt "Reference tracking?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'output_traj')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 36
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 2
+ Cell "Provide output reference and calculate offset-free state and input references"
+ Cell "Provide state and input references"
+ PropName "TypeOptions"
+ }
+ Name "WhichRef"
+ Prompt ""
+ Value "Provide output reference and calculate offset-free state and input references"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 37
+ Type "checkbox"
+ Name "boolKnownOutputTraj"
+ Prompt "Does the reference change over the prediction horizon?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 38
+ Type "checkbox"
+ Name "boolRatePen"
+ Prompt "Penalize the input slew rate?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'load_cost_mat')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 39
+ Type "checkbox"
+ Name "boolTerCost"
+ Prompt "Use unconstrained LQR gain as terminal cost?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'auto_terminal_cost')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 40
+ Type "edit"
+ Name "Ns"
+ Prompt "Control/prediction horizon (steps):"
+ Value "5"
+ Tunable "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 41
+ Type "edit"
+ Name "sepbar2"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 42
+ Type "checkbox"
+ Name "boolLoadCostMat"
+ Prompt "Load weighing matrices?"
+ Value "on"
+ Tunable "off"
+ Callback "configure_block(gcb,'load_cost_mat')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 43
+ Type "edit"
+ Name "Q"
+ Prompt "Q - output cost matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'getQ_matrix')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 44
+ Type "checkbox"
+ Name "boolQparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'params_check','Q')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 45
+ Type "checkbox"
+ Name "boolQparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 46
+ Type "edit"
+ Name "Qterminal"
+ Prompt "Q_N - terminal state cost matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 47
+ Type "checkbox"
+ Name "boolQNparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'params_check','Q_N')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 48
+ Type "edit"
+ Name "R"
+ Prompt "R - input cost matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'getR_matrix')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 49
+ Type "checkbox"
+ Name "boolRparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'params_check','R')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 50
+ Type "checkbox"
+ Name "boolRparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 51
+ Type "edit"
+ Name "T"
+ Prompt "T - input rate cost matrix:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'getT_matrix')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 52
+ Type "checkbox"
+ Name "boolTparam"
+ Prompt "Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','T')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 53
+ Type "checkbox"
+ Name "boolTparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 54
+ Type "edit"
+ Name "WeightOutput1"
+ Prompt "Relative importance of output/state 1:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 55
+ Type "edit"
+ Name "WeightOutput2"
+ Prompt "Relative importance of output/state 2:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 56
+ Type "edit"
+ Name "WeightOutput3"
+ Prompt "Relative importance of output/state 3:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 57
+ Type "edit"
+ Name "WeightOutput4"
+ Prompt "Relative importance of output/state 4:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 58
+ Type "edit"
+ Name "WeightOutput5"
+ Prompt "Relative importance of output/state 5:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 59
+ Type "edit"
+ Name "WeightOutput6"
+ Prompt "Relative importance of output/state 6:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 60
+ Type "edit"
+ Name "WeightOutput7"
+ Prompt "Relative importance of output/state 7:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 61
+ Type "edit"
+ Name "WeightOutput8"
+ Prompt "Relative importance of output/state 8:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 62
+ Type "edit"
+ Name "WeightOutput9"
+ Prompt "Relative importance of output/state 9:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 63
+ Type "edit"
+ Name "WeightOutput10"
+ Prompt "Relative importance of output/state 10:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 64
+ Type "edit"
+ Name "WeightOutput11"
+ Prompt "Relative importance of output/state 11:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 65
+ Type "edit"
+ Name "WeightOutput12"
+ Prompt "Relative importance of output/state 12:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 66
+ Type "edit"
+ Name "WeightOutput13"
+ Prompt "Relative importance of output/state 13:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 67
+ Type "edit"
+ Name "WeightOutput14"
+ Prompt "Relative importance of output/state 14:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 68
+ Type "edit"
+ Name "WeightOutput15"
+ Prompt "Relative importance of output/state 15:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 69
+ Type "edit"
+ Name "WeightOutput16"
+ Prompt "Relative importance of output/state 16:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 70
+ Type "edit"
+ Name "WeightOutput17"
+ Prompt "Relative importance of output/state 17:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 71
+ Type "edit"
+ Name "WeightOutput18"
+ Prompt "Relative importance of output/state 18:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 72
+ Type "edit"
+ Name "WeightOutput19"
+ Prompt "Relative importance of output/state 19:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 73
+ Type "edit"
+ Name "WeightOutput20"
+ Prompt "Relative importance of output/state 20:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 74
+ Type "edit"
+ Name "WeightOutput21"
+ Prompt "Relative importance of output/state 21:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 75
+ Type "edit"
+ Name "WeightOutput22"
+ Prompt "Relative importance of output/state 22:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 76
+ Type "edit"
+ Name "WeightOutput23"
+ Prompt "Relative importance of output/state 23:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 77
+ Type "edit"
+ Name "WeightOutput24"
+ Prompt "Relative importance of output/state 24:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 78
+ Type "edit"
+ Name "WeightOutput25"
+ Prompt "Relative importance of output/state 25:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 79
+ Type "edit"
+ Name "WeightOutput26"
+ Prompt "Relative importance of output/state 26:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 80
+ Type "edit"
+ Name "WeightOutput27"
+ Prompt "Relative importance of output/state 27:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 81
+ Type "edit"
+ Name "WeightOutput28"
+ Prompt "Relative importance of output/state 28:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 82
+ Type "edit"
+ Name "WeightOutput29"
+ Prompt "Relative importance of output/state 29:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 83
+ Type "edit"
+ Name "WeightOutput30"
+ Prompt "Relative importance of output/state 30:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 84
+ Type "edit"
+ Name "WeightOutput31"
+ Prompt "Relative importance of output/state 31:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 85
+ Type "edit"
+ Name "WeightOutput32"
+ Prompt "Relative importance of output/state 32:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 86
+ Type "edit"
+ Name "WeightOutput33"
+ Prompt "Relative importance of output/state 33:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 87
+ Type "edit"
+ Name "WeightOutput34"
+ Prompt "Relative importance of output/state 34:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 88
+ Type "edit"
+ Name "WeightOutput35"
+ Prompt "Relative importance of output/state 35:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 89
+ Type "edit"
+ Name "WeightOutput36"
+ Prompt "Relative importance of output/state 36:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 90
+ Type "edit"
+ Name "WeightOutput37"
+ Prompt "Relative importance of output/state 37:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 91
+ Type "edit"
+ Name "WeightOutput38"
+ Prompt "Relative importance of output/state 38:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 92
+ Type "edit"
+ Name "WeightOutput39"
+ Prompt "Relative importance of output/state 39:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 93
+ Type "edit"
+ Name "WeightOutput40"
+ Prompt "Relative importance of output/state 40:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 94
+ Type "edit"
+ Name "WeightInput1"
+ Prompt "Relative importance of input 1 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 95
+ Type "edit"
+ Name "WeightInput2"
+ Prompt "Relative importance of input 2 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 96
+ Type "edit"
+ Name "WeightInput3"
+ Prompt "Relative importance of input 3 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 97
+ Type "edit"
+ Name "WeightInput4"
+ Prompt "Relative importance of input 4 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 98
+ Type "edit"
+ Name "WeightInput5"
+ Prompt "Relative importance of input 5 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 99
+ Type "edit"
+ Name "WeightInput6"
+ Prompt "Relative importance of input 6 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 100
+ Type "edit"
+ Name "WeightInput7"
+ Prompt "Relative importance of input 7 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 101
+ Type "edit"
+ Name "WeightInput8"
+ Prompt "Relative importance of input 8 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 102
+ Type "edit"
+ Name "WeightInput9"
+ Prompt "Relative importance of input 9 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 103
+ Type "edit"
+ Name "WeightInput10"
+ Prompt "Relative importance of input 10 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 104
+ Type "edit"
+ Name "WeightInput11"
+ Prompt "Relative importance of input 11 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 105
+ Type "edit"
+ Name "WeightInput12"
+ Prompt "Relative importance of input 12 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 106
+ Type "edit"
+ Name "WeightInput13"
+ Prompt "Relative importance of input 13 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 107
+ Type "edit"
+ Name "WeightInput14"
+ Prompt "Relative importance of input 14 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 108
+ Type "edit"
+ Name "WeightInput15"
+ Prompt "Relative importance of input 15 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 109
+ Type "edit"
+ Name "WeightInput16"
+ Prompt "Relative importance of input 16 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 110
+ Type "edit"
+ Name "WeightInput17"
+ Prompt "Relative importance of input 17 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 111
+ Type "edit"
+ Name "WeightInput18"
+ Prompt "Relative importance of input 18 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 112
+ Type "edit"
+ Name "WeightInput19"
+ Prompt "Relative importance of input 19 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 113
+ Type "edit"
+ Name "WeightInput20"
+ Prompt "Relative importance of input 20 magnitude:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 114
+ Type "edit"
+ Name "WeightInputRate1"
+ Prompt "Relative importance of input 1 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 115
+ Type "edit"
+ Name "WeightInputRate2"
+ Prompt "Relative importance of input 2 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 116
+ Type "edit"
+ Name "WeightInputRate3"
+ Prompt "Relative importance of input 3 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 117
+ Type "edit"
+ Name "WeightInputRate4"
+ Prompt "Relative importance of input 4 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 118
+ Type "edit"
+ Name "WeightInputRate5"
+ Prompt "Relative importance of input 5 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 119
+ Type "edit"
+ Name "WeightInputRate6"
+ Prompt "Relative importance of input 6 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 120
+ Type "edit"
+ Name "WeightInputRate7"
+ Prompt "Relative importance of input 7 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 121
+ Type "edit"
+ Name "WeightInputRate8"
+ Prompt "Relative importance of input 8 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 122
+ Type "edit"
+ Name "WeightInputRate9"
+ Prompt "Relative importance of input 9 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 123
+ Type "edit"
+ Name "WeightInputRate10"
+ Prompt "Relative importance of input 10 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 124
+ Type "edit"
+ Name "WeightInputRate11"
+ Prompt "Relative importance of input 11 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 125
+ Type "edit"
+ Name "WeightInputRate12"
+ Prompt "Relative importance of input 12 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 126
+ Type "edit"
+ Name "WeightInputRate13"
+ Prompt "Relative importance of input 13 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 127
+ Type "edit"
+ Name "WeightInputRate14"
+ Prompt "Relative importance of input 14 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 128
+ Type "edit"
+ Name "WeightInputRate15"
+ Prompt "Relative importance of input 15 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 129
+ Type "edit"
+ Name "WeightInputRate16"
+ Prompt "Relative importance of input 16 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 130
+ Type "edit"
+ Name "WeightInputRate17"
+ Prompt "Relative importance of input 17 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 131
+ Type "edit"
+ Name "WeightInputRate18"
+ Prompt "Relative importance of input 18 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 132
+ Type "edit"
+ Name "WeightInputRate19"
+ Prompt "Relative importance of input 19 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 133
+ Type "edit"
+ Name "WeightInputRate20"
+ Prompt "Relative importance of input 20 slew rate:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights')"
+ TabName "Control objectives"
+ }
+ Object {
+ $ObjectID 134
+ Type "edit"
+ Name "OutConst1SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 135
+ Type "checkbox"
+ Name "boolOutConst1"
+ Prompt "Constraints on output 1?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',1)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 136
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst1Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 137
+ Type "edit"
+ Name "OutConst1Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 138
+ Type "checkbox"
+ Name "boolOutConst1Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst1Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 139
+ Type "checkbox"
+ Name "boolOutConst1LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 140
+ Type "edit"
+ Name "OutConst1Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 141
+ Type "checkbox"
+ Name "boolOutConst1Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst1Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 142
+ Type "checkbox"
+ Name "boolOutConst1UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 143
+ Type "checkbox"
+ Name "OutConst1Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 144
+ Type "edit"
+ Name "OutConst2SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 145
+ Type "checkbox"
+ Name "boolOutConst2"
+ Prompt "Constraints on output 2?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',2)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 146
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst2Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 147
+ Type "edit"
+ Name "OutConst2Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 148
+ Type "checkbox"
+ Name "boolOutConst2Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst2Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 149
+ Type "checkbox"
+ Name "boolOutConst2LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 150
+ Type "edit"
+ Name "OutConst2Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 151
+ Type "checkbox"
+ Name "boolOutConst2Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst2Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 152
+ Type "checkbox"
+ Name "boolOutConst2UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 153
+ Type "checkbox"
+ Name "OutConst2Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 154
+ Type "edit"
+ Name "OutConst3SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 155
+ Type "checkbox"
+ Name "boolOutConst3"
+ Prompt "Constraints on output 3?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',3)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 156
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst3Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 157
+ Type "edit"
+ Name "OutConst3Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 158
+ Type "checkbox"
+ Name "boolOutConst3Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst3Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 159
+ Type "checkbox"
+ Name "boolOutConst3LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 160
+ Type "edit"
+ Name "OutConst3Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 161
+ Type "checkbox"
+ Name "boolOutConst3Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst3Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 162
+ Type "checkbox"
+ Name "boolOutConst3UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 163
+ Type "checkbox"
+ Name "OutConst3Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 164
+ Type "edit"
+ Name "OutConst4SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 165
+ Type "checkbox"
+ Name "boolOutConst4"
+ Prompt "Constraints on output 4?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',4)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 166
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst4Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 167
+ Type "edit"
+ Name "OutConst4Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 168
+ Type "checkbox"
+ Name "boolOutConst4Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst4Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 169
+ Type "checkbox"
+ Name "boolOutConst4LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 170
+ Type "edit"
+ Name "OutConst4Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 171
+ Type "checkbox"
+ Name "boolOutConst4Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst4Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 172
+ Type "checkbox"
+ Name "boolOutConst4UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 173
+ Type "checkbox"
+ Name "OutConst4Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 174
+ Type "edit"
+ Name "OutConst5SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 175
+ Type "checkbox"
+ Name "boolOutConst5"
+ Prompt "Constraints on output 5?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',5)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 176
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst5Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 177
+ Type "edit"
+ Name "OutConst5Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 178
+ Type "checkbox"
+ Name "boolOutConst5Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst5Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 179
+ Type "checkbox"
+ Name "boolOutConst5LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 180
+ Type "edit"
+ Name "OutConst5Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 181
+ Type "checkbox"
+ Name "boolOutConst5Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst5Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 182
+ Type "checkbox"
+ Name "boolOutConst5UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 183
+ Type "checkbox"
+ Name "OutConst5Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 184
+ Type "edit"
+ Name "OutConst6SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 185
+ Type "checkbox"
+ Name "boolOutConst6"
+ Prompt "Constraints on output 6?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',6)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 186
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst6Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 187
+ Type "edit"
+ Name "OutConst6Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 188
+ Type "checkbox"
+ Name "boolOutConst6Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst6Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 189
+ Type "checkbox"
+ Name "boolOutConst6LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 190
+ Type "edit"
+ Name "OutConst6Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 191
+ Type "checkbox"
+ Name "boolOutConst6Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst6Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 192
+ Type "checkbox"
+ Name "boolOutConst6UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 193
+ Type "checkbox"
+ Name "OutConst6Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 194
+ Type "edit"
+ Name "OutConst7SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 195
+ Type "checkbox"
+ Name "boolOutConst7"
+ Prompt "Constraints on output 7?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',7)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 196
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst7Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 197
+ Type "edit"
+ Name "OutConst7Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 198
+ Type "checkbox"
+ Name "boolOutConst7Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst7Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 199
+ Type "checkbox"
+ Name "boolOutConst7LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 200
+ Type "edit"
+ Name "OutConst7Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 201
+ Type "checkbox"
+ Name "boolOutConst7Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst7Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 202
+ Type "checkbox"
+ Name "boolOutConst7UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 203
+ Type "checkbox"
+ Name "OutConst7Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 204
+ Type "edit"
+ Name "OutConst8SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 205
+ Type "checkbox"
+ Name "boolOutConst8"
+ Prompt "Constraints on output 8?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',8)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 206
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst8Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 207
+ Type "edit"
+ Name "OutConst8Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 208
+ Type "checkbox"
+ Name "boolOutConst8Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst8Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 209
+ Type "checkbox"
+ Name "boolOutConst8LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 210
+ Type "edit"
+ Name "OutConst8Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 211
+ Type "checkbox"
+ Name "boolOutConst8Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst8Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 212
+ Type "checkbox"
+ Name "boolOutConst8UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 213
+ Type "checkbox"
+ Name "OutConst8Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 214
+ Type "edit"
+ Name "OutConst9SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 215
+ Type "checkbox"
+ Name "boolOutConst9"
+ Prompt "Constraints on output 9?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',9)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 216
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst9Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 217
+ Type "edit"
+ Name "OutConst9Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 218
+ Type "checkbox"
+ Name "boolOutConst9Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst9Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 219
+ Type "checkbox"
+ Name "boolOutConst9LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 220
+ Type "edit"
+ Name "OutConst9Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 221
+ Type "checkbox"
+ Name "boolOutConst9Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst9Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 222
+ Type "checkbox"
+ Name "boolOutConst9UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 223
+ Type "checkbox"
+ Name "OutConst9Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 224
+ Type "edit"
+ Name "OutConst10SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 225
+ Type "checkbox"
+ Name "boolOutConst10"
+ Prompt "Constraints on output 10?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',10)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 226
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst10Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 227
+ Type "edit"
+ Name "OutConst10Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 228
+ Type "checkbox"
+ Name "boolOutConst10Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst10Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 229
+ Type "checkbox"
+ Name "boolOutConst10LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 230
+ Type "edit"
+ Name "OutConst10Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 231
+ Type "checkbox"
+ Name "boolOutConst10Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst10Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 232
+ Type "checkbox"
+ Name "boolOutConst10UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 233
+ Type "checkbox"
+ Name "OutConst10Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 234
+ Type "edit"
+ Name "OutConst11SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 235
+ Type "checkbox"
+ Name "boolOutConst11"
+ Prompt "Constraints on output 11?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',11)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 236
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst11Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 237
+ Type "edit"
+ Name "OutConst11Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 238
+ Type "checkbox"
+ Name "boolOutConst11Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst11Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 239
+ Type "checkbox"
+ Name "boolOutConst11LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 240
+ Type "edit"
+ Name "OutConst11Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 241
+ Type "checkbox"
+ Name "boolOutConst11Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst11Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 242
+ Type "checkbox"
+ Name "boolOutConst11UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 243
+ Type "checkbox"
+ Name "OutConst11Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 244
+ Type "edit"
+ Name "OutConst12SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 245
+ Type "checkbox"
+ Name "boolOutConst12"
+ Prompt "Constraints on output 12?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',12)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 246
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst12Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 247
+ Type "edit"
+ Name "OutConst12Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 248
+ Type "checkbox"
+ Name "boolOutConst12Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst12Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 249
+ Type "checkbox"
+ Name "boolOutConst12LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 250
+ Type "edit"
+ Name "OutConst12Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 251
+ Type "checkbox"
+ Name "boolOutConst12Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst12Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 252
+ Type "checkbox"
+ Name "boolOutConst12UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 253
+ Type "checkbox"
+ Name "OutConst12Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 254
+ Type "edit"
+ Name "OutConst13SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 255
+ Type "checkbox"
+ Name "boolOutConst13"
+ Prompt "Constraints on output 13?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',13)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 256
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst13Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 257
+ Type "edit"
+ Name "OutConst13Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 258
+ Type "checkbox"
+ Name "boolOutConst13Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst13Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 259
+ Type "checkbox"
+ Name "boolOutConst13LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 260
+ Type "edit"
+ Name "OutConst13Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 261
+ Type "checkbox"
+ Name "boolOutConst13Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst13Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 262
+ Type "checkbox"
+ Name "boolOutConst13UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 263
+ Type "checkbox"
+ Name "OutConst13Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 264
+ Type "edit"
+ Name "OutConst14SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 265
+ Type "checkbox"
+ Name "boolOutConst14"
+ Prompt "Constraints on output 14?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',14)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 266
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst14Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 267
+ Type "edit"
+ Name "OutConst14Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 268
+ Type "checkbox"
+ Name "boolOutConst14Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst14Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 269
+ Type "checkbox"
+ Name "boolOutConst14LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 270
+ Type "edit"
+ Name "OutConst14Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 271
+ Type "checkbox"
+ Name "boolOutConst14Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst14Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 272
+ Type "checkbox"
+ Name "boolOutConst14UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 273
+ Type "checkbox"
+ Name "OutConst14Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 274
+ Type "edit"
+ Name "OutConst15SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 275
+ Type "checkbox"
+ Name "boolOutConst15"
+ Prompt "Constraints on output 15?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',15)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 276
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst15Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 277
+ Type "edit"
+ Name "OutConst15Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 278
+ Type "checkbox"
+ Name "boolOutConst15Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst15Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 279
+ Type "checkbox"
+ Name "boolOutConst15LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 280
+ Type "edit"
+ Name "OutConst15Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 281
+ Type "checkbox"
+ Name "boolOutConst15Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst15Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 282
+ Type "checkbox"
+ Name "boolOutConst15UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 283
+ Type "checkbox"
+ Name "OutConst15Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 284
+ Type "edit"
+ Name "OutConst16SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 285
+ Type "checkbox"
+ Name "boolOutConst16"
+ Prompt "Constraints on output 16?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',16)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 286
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst16Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 287
+ Type "edit"
+ Name "OutConst16Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 288
+ Type "checkbox"
+ Name "boolOutConst16Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst16Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 289
+ Type "checkbox"
+ Name "boolOutConst16LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 290
+ Type "edit"
+ Name "OutConst16Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 291
+ Type "checkbox"
+ Name "boolOutConst16Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst16Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 292
+ Type "checkbox"
+ Name "boolOutConst16UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 293
+ Type "checkbox"
+ Name "OutConst16Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 294
+ Type "edit"
+ Name "OutConst17SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 295
+ Type "checkbox"
+ Name "boolOutConst17"
+ Prompt "Constraints on output 17?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',17)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 296
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst17Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 297
+ Type "edit"
+ Name "OutConst17Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 298
+ Type "checkbox"
+ Name "boolOutConst17Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst17Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 299
+ Type "checkbox"
+ Name "boolOutConst17LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 300
+ Type "edit"
+ Name "OutConst17Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 301
+ Type "checkbox"
+ Name "boolOutConst17Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst17Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 302
+ Type "checkbox"
+ Name "boolOutConst17UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 303
+ Type "checkbox"
+ Name "OutConst17Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 304
+ Type "edit"
+ Name "OutConst18SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 305
+ Type "checkbox"
+ Name "boolOutConst18"
+ Prompt "Constraints on output 18?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',18)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 306
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst18Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 307
+ Type "edit"
+ Name "OutConst18Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 308
+ Type "checkbox"
+ Name "boolOutConst18Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst18Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 309
+ Type "checkbox"
+ Name "boolOutConst18LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 310
+ Type "edit"
+ Name "OutConst18Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 311
+ Type "checkbox"
+ Name "boolOutConst18Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst18Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 312
+ Type "checkbox"
+ Name "boolOutConst18UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 313
+ Type "checkbox"
+ Name "OutConst18Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 314
+ Type "edit"
+ Name "OutConst19SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 315
+ Type "checkbox"
+ Name "boolOutConst19"
+ Prompt "Constraints on output 19?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',19)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 316
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst19Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 317
+ Type "edit"
+ Name "OutConst19Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 318
+ Type "checkbox"
+ Name "boolOutConst19Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst19Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 319
+ Type "checkbox"
+ Name "boolOutConst19LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 320
+ Type "edit"
+ Name "OutConst19Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 321
+ Type "checkbox"
+ Name "boolOutConst19Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst19Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 322
+ Type "checkbox"
+ Name "boolOutConst19UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 323
+ Type "checkbox"
+ Name "OutConst19Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 324
+ Type "edit"
+ Name "OutConst20SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 325
+ Type "checkbox"
+ Name "boolOutConst20"
+ Prompt "Constraints on output 20?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',20)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 326
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst20Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 327
+ Type "edit"
+ Name "OutConst20Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 328
+ Type "checkbox"
+ Name "boolOutConst20Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst20Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 329
+ Type "checkbox"
+ Name "boolOutConst20LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 330
+ Type "edit"
+ Name "OutConst20Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 331
+ Type "checkbox"
+ Name "boolOutConst20Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst20Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 332
+ Type "checkbox"
+ Name "boolOutConst20UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 333
+ Type "checkbox"
+ Name "OutConst20Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 334
+ Type "edit"
+ Name "OutConst21SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 335
+ Type "checkbox"
+ Name "boolOutConst21"
+ Prompt "Constraints on output 21?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',21)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 336
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst21Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 337
+ Type "edit"
+ Name "OutConst21Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 338
+ Type "checkbox"
+ Name "boolOutConst21Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst21Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 339
+ Type "checkbox"
+ Name "boolOutConst21LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 340
+ Type "edit"
+ Name "OutConst21Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 341
+ Type "checkbox"
+ Name "boolOutConst21Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst21Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 342
+ Type "checkbox"
+ Name "boolOutConst21UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 343
+ Type "checkbox"
+ Name "OutConst21Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 344
+ Type "edit"
+ Name "OutConst22SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 345
+ Type "checkbox"
+ Name "boolOutConst22"
+ Prompt "Constraints on output 22?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',22)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 346
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst22Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 347
+ Type "edit"
+ Name "OutConst22Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 348
+ Type "checkbox"
+ Name "boolOutConst22Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst22Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 349
+ Type "checkbox"
+ Name "boolOutConst22LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 350
+ Type "edit"
+ Name "OutConst22Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 351
+ Type "checkbox"
+ Name "boolOutConst22Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst22Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 352
+ Type "checkbox"
+ Name "boolOutConst22UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 353
+ Type "checkbox"
+ Name "OutConst22Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 354
+ Type "edit"
+ Name "OutConst23SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 355
+ Type "checkbox"
+ Name "boolOutConst23"
+ Prompt "Constraints on output 23?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',23)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 356
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst23Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 357
+ Type "edit"
+ Name "OutConst23Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 358
+ Type "checkbox"
+ Name "boolOutConst23Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst23Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 359
+ Type "checkbox"
+ Name "boolOutConst23LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 360
+ Type "edit"
+ Name "OutConst23Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 361
+ Type "checkbox"
+ Name "boolOutConst23Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst23Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 362
+ Type "checkbox"
+ Name "boolOutConst23UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 363
+ Type "checkbox"
+ Name "OutConst23Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 364
+ Type "edit"
+ Name "OutConst24SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 365
+ Type "checkbox"
+ Name "boolOutConst24"
+ Prompt "Constraints on output 24?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',24)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 366
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst24Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 367
+ Type "edit"
+ Name "OutConst24Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 368
+ Type "checkbox"
+ Name "boolOutConst24Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst24Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 369
+ Type "checkbox"
+ Name "boolOutConst24LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 370
+ Type "edit"
+ Name "OutConst24Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 371
+ Type "checkbox"
+ Name "boolOutConst24Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst24Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 372
+ Type "checkbox"
+ Name "boolOutConst24UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 373
+ Type "checkbox"
+ Name "OutConst24Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 374
+ Type "edit"
+ Name "OutConst25SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 375
+ Type "checkbox"
+ Name "boolOutConst25"
+ Prompt "Constraints on output 25?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',25)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 376
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst25Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 377
+ Type "edit"
+ Name "OutConst25Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 378
+ Type "checkbox"
+ Name "boolOutConst25Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst25Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 379
+ Type "checkbox"
+ Name "boolOutConst25LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 380
+ Type "edit"
+ Name "OutConst25Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 381
+ Type "checkbox"
+ Name "boolOutConst25Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst25Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 382
+ Type "checkbox"
+ Name "boolOutConst25UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 383
+ Type "checkbox"
+ Name "OutConst25Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 384
+ Type "edit"
+ Name "OutConst26SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 385
+ Type "checkbox"
+ Name "boolOutConst26"
+ Prompt "Constraints on output 26?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',26)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 386
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst26Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 387
+ Type "edit"
+ Name "OutConst26Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 388
+ Type "checkbox"
+ Name "boolOutConst26Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst26Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 389
+ Type "checkbox"
+ Name "boolOutConst26LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 390
+ Type "edit"
+ Name "OutConst26Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 391
+ Type "checkbox"
+ Name "boolOutConst26Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst26Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 392
+ Type "checkbox"
+ Name "boolOutConst26UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 393
+ Type "checkbox"
+ Name "OutConst26Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 394
+ Type "edit"
+ Name "OutConst27SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 395
+ Type "checkbox"
+ Name "boolOutConst27"
+ Prompt "Constraints on output 27?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',27)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 396
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst27Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 397
+ Type "edit"
+ Name "OutConst27Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 398
+ Type "checkbox"
+ Name "boolOutConst27Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst27Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 399
+ Type "checkbox"
+ Name "boolOutConst27LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 400
+ Type "edit"
+ Name "OutConst27Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 401
+ Type "checkbox"
+ Name "boolOutConst27Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst27Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 402
+ Type "checkbox"
+ Name "boolOutConst27UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 403
+ Type "checkbox"
+ Name "OutConst27Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 404
+ Type "edit"
+ Name "OutConst28SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 405
+ Type "checkbox"
+ Name "boolOutConst28"
+ Prompt "Constraints on output 28?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',28)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 406
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst28Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 407
+ Type "edit"
+ Name "OutConst28Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 408
+ Type "checkbox"
+ Name "boolOutConst28Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst28Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 409
+ Type "checkbox"
+ Name "boolOutConst28LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 410
+ Type "edit"
+ Name "OutConst28Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 411
+ Type "checkbox"
+ Name "boolOutConst28Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst28Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 412
+ Type "checkbox"
+ Name "boolOutConst28UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 413
+ Type "checkbox"
+ Name "OutConst28Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 414
+ Type "edit"
+ Name "OutConst29SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 415
+ Type "checkbox"
+ Name "boolOutConst29"
+ Prompt "Constraints on output 29?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',29)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 416
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst29Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 417
+ Type "edit"
+ Name "OutConst29Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 418
+ Type "checkbox"
+ Name "boolOutConst29Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst29Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 419
+ Type "checkbox"
+ Name "boolOutConst29LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 420
+ Type "edit"
+ Name "OutConst29Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 421
+ Type "checkbox"
+ Name "boolOutConst29Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst29Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 422
+ Type "checkbox"
+ Name "boolOutConst29UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 423
+ Type "checkbox"
+ Name "OutConst29Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 424
+ Type "edit"
+ Name "OutConst30SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 425
+ Type "checkbox"
+ Name "boolOutConst30"
+ Prompt "Constraints on output 30?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',30)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 426
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst30Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 427
+ Type "edit"
+ Name "OutConst30Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 428
+ Type "checkbox"
+ Name "boolOutConst30Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst30Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 429
+ Type "checkbox"
+ Name "boolOutConst30LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 430
+ Type "edit"
+ Name "OutConst30Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 431
+ Type "checkbox"
+ Name "boolOutConst30Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst30Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 432
+ Type "checkbox"
+ Name "boolOutConst30UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 433
+ Type "checkbox"
+ Name "OutConst30Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 434
+ Type "edit"
+ Name "OutConst31SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 435
+ Type "checkbox"
+ Name "boolOutConst31"
+ Prompt "Constraints on output 31?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',31)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 436
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst31Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 437
+ Type "edit"
+ Name "OutConst31Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 438
+ Type "checkbox"
+ Name "boolOutConst31Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst31Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 439
+ Type "checkbox"
+ Name "boolOutConst31LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 440
+ Type "edit"
+ Name "OutConst31Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 441
+ Type "checkbox"
+ Name "boolOutConst31Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst31Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 442
+ Type "checkbox"
+ Name "boolOutConst31UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 443
+ Type "checkbox"
+ Name "OutConst31Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 444
+ Type "edit"
+ Name "OutConst32SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 445
+ Type "checkbox"
+ Name "boolOutConst32"
+ Prompt "Constraints on output 32?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',32)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 446
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst32Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 447
+ Type "edit"
+ Name "OutConst32Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 448
+ Type "checkbox"
+ Name "boolOutConst32Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst32Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 449
+ Type "checkbox"
+ Name "boolOutConst32LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 450
+ Type "edit"
+ Name "OutConst32Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 451
+ Type "checkbox"
+ Name "boolOutConst32Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst32Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 452
+ Type "checkbox"
+ Name "boolOutConst32UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 453
+ Type "checkbox"
+ Name "OutConst32Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 454
+ Type "edit"
+ Name "OutConst33SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 455
+ Type "checkbox"
+ Name "boolOutConst33"
+ Prompt "Constraints on output 33?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',33)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 456
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst33Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 457
+ Type "edit"
+ Name "OutConst33Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 458
+ Type "checkbox"
+ Name "boolOutConst33Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst33Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 459
+ Type "checkbox"
+ Name "boolOutConst33LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 460
+ Type "edit"
+ Name "OutConst33Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 461
+ Type "checkbox"
+ Name "boolOutConst33Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst33Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 462
+ Type "checkbox"
+ Name "boolOutConst33UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 463
+ Type "checkbox"
+ Name "OutConst33Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 464
+ Type "edit"
+ Name "OutConst34SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 465
+ Type "checkbox"
+ Name "boolOutConst34"
+ Prompt "Constraints on output 34?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',34)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 466
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst34Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 467
+ Type "edit"
+ Name "OutConst34Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 468
+ Type "checkbox"
+ Name "boolOutConst34Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst34Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 469
+ Type "checkbox"
+ Name "boolOutConst34LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 470
+ Type "edit"
+ Name "OutConst34Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 471
+ Type "checkbox"
+ Name "boolOutConst34Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst34Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 472
+ Type "checkbox"
+ Name "boolOutConst34UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 473
+ Type "checkbox"
+ Name "OutConst34Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 474
+ Type "edit"
+ Name "OutConst35SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 475
+ Type "checkbox"
+ Name "boolOutConst35"
+ Prompt "Constraints on output 35?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',35)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 476
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst35Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 477
+ Type "edit"
+ Name "OutConst35Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 478
+ Type "checkbox"
+ Name "boolOutConst35Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst35Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 479
+ Type "checkbox"
+ Name "boolOutConst35LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 480
+ Type "edit"
+ Name "OutConst35Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 481
+ Type "checkbox"
+ Name "boolOutConst35Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst35Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 482
+ Type "checkbox"
+ Name "boolOutConst35UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 483
+ Type "checkbox"
+ Name "OutConst35Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 484
+ Type "edit"
+ Name "OutConst36SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 485
+ Type "checkbox"
+ Name "boolOutConst36"
+ Prompt "Constraints on output 36?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',36)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 486
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst36Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 487
+ Type "edit"
+ Name "OutConst36Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 488
+ Type "checkbox"
+ Name "boolOutConst36Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst36Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 489
+ Type "checkbox"
+ Name "boolOutConst36LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 490
+ Type "edit"
+ Name "OutConst36Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 491
+ Type "checkbox"
+ Name "boolOutConst36Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst36Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 492
+ Type "checkbox"
+ Name "boolOutConst36UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 493
+ Type "checkbox"
+ Name "OutConst36Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 494
+ Type "edit"
+ Name "OutConst37SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 495
+ Type "checkbox"
+ Name "boolOutConst37"
+ Prompt "Constraints on output 37?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',37)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 496
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst37Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 497
+ Type "edit"
+ Name "OutConst37Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 498
+ Type "checkbox"
+ Name "boolOutConst37Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst37Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 499
+ Type "checkbox"
+ Name "boolOutConst37LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 500
+ Type "edit"
+ Name "OutConst37Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 501
+ Type "checkbox"
+ Name "boolOutConst37Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst37Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 502
+ Type "checkbox"
+ Name "boolOutConst37UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 503
+ Type "checkbox"
+ Name "OutConst37Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 504
+ Type "edit"
+ Name "OutConst38SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 505
+ Type "checkbox"
+ Name "boolOutConst38"
+ Prompt "Constraints on output 38?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',38)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 506
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst38Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 507
+ Type "edit"
+ Name "OutConst38Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 508
+ Type "checkbox"
+ Name "boolOutConst38Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst38Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 509
+ Type "checkbox"
+ Name "boolOutConst38LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 510
+ Type "edit"
+ Name "OutConst38Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 511
+ Type "checkbox"
+ Name "boolOutConst38Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst38Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 512
+ Type "checkbox"
+ Name "boolOutConst38UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 513
+ Type "checkbox"
+ Name "OutConst38Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 514
+ Type "edit"
+ Name "OutConst39SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 515
+ Type "checkbox"
+ Name "boolOutConst39"
+ Prompt "Constraints on output 39?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',39)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 516
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst39Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 517
+ Type "edit"
+ Name "OutConst39Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 518
+ Type "checkbox"
+ Name "boolOutConst39Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst39Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 519
+ Type "checkbox"
+ Name "boolOutConst39LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 520
+ Type "edit"
+ Name "OutConst39Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 521
+ Type "checkbox"
+ Name "boolOutConst39Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst39Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 522
+ Type "checkbox"
+ Name "boolOutConst39UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 523
+ Type "checkbox"
+ Name "OutConst39Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 524
+ Type "edit"
+ Name "OutConst40SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 525
+ Type "checkbox"
+ Name "boolOutConst40"
+ Prompt "Constraints on output 40?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'output_const',40)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 526
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "OutConst40Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 527
+ Type "edit"
+ Name "OutConst40Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 528
+ Type "checkbox"
+ Name "boolOutConst40Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst40Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 529
+ Type "checkbox"
+ Name "boolOutConst40LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 530
+ Type "edit"
+ Name "OutConst40Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 531
+ Type "checkbox"
+ Name "boolOutConst40Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','OutConst40Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 532
+ Type "checkbox"
+ Name "boolOutConst40UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 533
+ Type "checkbox"
+ Name "OutConst40Soft"
+ Prompt "Soft constraint"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 534
+ Type "edit"
+ Name "InConst1SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 535
+ Type "checkbox"
+ Name "boolInConst1"
+ Prompt "Constraints on input 1 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',1)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 536
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst1Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 537
+ Type "edit"
+ Name "InConst1Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 538
+ Type "checkbox"
+ Name "boolInConst1Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst1Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 539
+ Type "checkbox"
+ Name "boolInConst1LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 540
+ Type "edit"
+ Name "InConst1Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 541
+ Type "checkbox"
+ Name "boolInConst1Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst1Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 542
+ Type "checkbox"
+ Name "boolInConst1UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 543
+ Type "edit"
+ Name "InConst2SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 544
+ Type "checkbox"
+ Name "boolInConst2"
+ Prompt "Constraints on input 2 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',2)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 545
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst2Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 546
+ Type "edit"
+ Name "InConst2Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 547
+ Type "checkbox"
+ Name "boolInConst2Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst2Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 548
+ Type "checkbox"
+ Name "boolInConst2LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 549
+ Type "edit"
+ Name "InConst2Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 550
+ Type "checkbox"
+ Name "boolInConst2Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst2Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 551
+ Type "checkbox"
+ Name "boolInConst2UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 552
+ Type "edit"
+ Name "InConst3SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 553
+ Type "checkbox"
+ Name "boolInConst3"
+ Prompt "Constraints on input 3 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',3)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 554
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst3Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 555
+ Type "edit"
+ Name "InConst3Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 556
+ Type "checkbox"
+ Name "boolInConst3Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst3Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 557
+ Type "checkbox"
+ Name "boolInConst3LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 558
+ Type "edit"
+ Name "InConst3Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 559
+ Type "checkbox"
+ Name "boolInConst3Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst3Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 560
+ Type "checkbox"
+ Name "boolInConst3UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 561
+ Type "edit"
+ Name "InConst4SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 562
+ Type "checkbox"
+ Name "boolInConst4"
+ Prompt "Constraints on input 4 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',4)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 563
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst4Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 564
+ Type "edit"
+ Name "InConst4Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 565
+ Type "checkbox"
+ Name "boolInConst4Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst4Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 566
+ Type "checkbox"
+ Name "boolInConst4LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 567
+ Type "edit"
+ Name "InConst4Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 568
+ Type "checkbox"
+ Name "boolInConst4Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst4Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 569
+ Type "checkbox"
+ Name "boolInConst4UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 570
+ Type "edit"
+ Name "InConst5SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 571
+ Type "checkbox"
+ Name "boolInConst5"
+ Prompt "Constraints on input 5 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',5)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 572
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst5Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 573
+ Type "edit"
+ Name "InConst5Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 574
+ Type "checkbox"
+ Name "boolInConst5Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst5Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 575
+ Type "checkbox"
+ Name "boolInConst5LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 576
+ Type "edit"
+ Name "InConst5Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 577
+ Type "checkbox"
+ Name "boolInConst5Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst5Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 578
+ Type "checkbox"
+ Name "boolInConst5UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 579
+ Type "edit"
+ Name "InConst6SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 580
+ Type "checkbox"
+ Name "boolInConst6"
+ Prompt "Constraints on input 6 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',6)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 581
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst6Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 582
+ Type "edit"
+ Name "InConst6Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 583
+ Type "checkbox"
+ Name "boolInConst6Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst6Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 584
+ Type "checkbox"
+ Name "boolInConst6LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 585
+ Type "edit"
+ Name "InConst6Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 586
+ Type "checkbox"
+ Name "boolInConst6Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst6Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 587
+ Type "checkbox"
+ Name "boolInConst6UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 588
+ Type "edit"
+ Name "InConst7SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 589
+ Type "checkbox"
+ Name "boolInConst7"
+ Prompt "Constraints on input 7 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',7)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 590
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst7Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 591
+ Type "edit"
+ Name "InConst7Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 592
+ Type "checkbox"
+ Name "boolInConst7Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst7Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 593
+ Type "checkbox"
+ Name "boolInConst7LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 594
+ Type "edit"
+ Name "InConst7Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 595
+ Type "checkbox"
+ Name "boolInConst7Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst7Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 596
+ Type "checkbox"
+ Name "boolInConst7UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 597
+ Type "edit"
+ Name "InConst8SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 598
+ Type "checkbox"
+ Name "boolInConst8"
+ Prompt "Constraints on input 8 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',8)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 599
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst8Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 600
+ Type "edit"
+ Name "InConst8Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 601
+ Type "checkbox"
+ Name "boolInConst8Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst8Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 602
+ Type "checkbox"
+ Name "boolInConst8LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 603
+ Type "edit"
+ Name "InConst8Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 604
+ Type "checkbox"
+ Name "boolInConst8Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst8Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 605
+ Type "checkbox"
+ Name "boolInConst8UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 606
+ Type "edit"
+ Name "InConst9SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 607
+ Type "checkbox"
+ Name "boolInConst9"
+ Prompt "Constraints on input 9 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',9)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 608
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst9Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 609
+ Type "edit"
+ Name "InConst9Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 610
+ Type "checkbox"
+ Name "boolInConst9Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst9Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 611
+ Type "checkbox"
+ Name "boolInConst9LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 612
+ Type "edit"
+ Name "InConst9Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 613
+ Type "checkbox"
+ Name "boolInConst9Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst9Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 614
+ Type "checkbox"
+ Name "boolInConst9UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 615
+ Type "edit"
+ Name "InConst10SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 616
+ Type "checkbox"
+ Name "boolInConst10"
+ Prompt "Constraints on input 10 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',10)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 617
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst10Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 618
+ Type "edit"
+ Name "InConst10Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 619
+ Type "checkbox"
+ Name "boolInConst10Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst10Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 620
+ Type "checkbox"
+ Name "boolInConst10LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 621
+ Type "edit"
+ Name "InConst10Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 622
+ Type "checkbox"
+ Name "boolInConst10Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst10Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 623
+ Type "checkbox"
+ Name "boolInConst10UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 624
+ Type "edit"
+ Name "InConst11SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 625
+ Type "checkbox"
+ Name "boolInConst11"
+ Prompt "Constraints on input 11 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',11)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 626
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst11Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 627
+ Type "edit"
+ Name "InConst11Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 628
+ Type "checkbox"
+ Name "boolInConst11Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst11Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 629
+ Type "checkbox"
+ Name "boolInConst11LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 630
+ Type "edit"
+ Name "InConst11Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 631
+ Type "checkbox"
+ Name "boolInConst11Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst11Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 632
+ Type "checkbox"
+ Name "boolInConst11UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 633
+ Type "edit"
+ Name "InConst12SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 634
+ Type "checkbox"
+ Name "boolInConst12"
+ Prompt "Constraints on input 12 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',12)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 635
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst12Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 636
+ Type "edit"
+ Name "InConst12Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 637
+ Type "checkbox"
+ Name "boolInConst12Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst12Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 638
+ Type "checkbox"
+ Name "boolInConst12LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 639
+ Type "edit"
+ Name "InConst12Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 640
+ Type "checkbox"
+ Name "boolInConst12Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst12Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 641
+ Type "checkbox"
+ Name "boolInConst12UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 642
+ Type "edit"
+ Name "InConst13SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 643
+ Type "checkbox"
+ Name "boolInConst13"
+ Prompt "Constraints on input 13 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',13)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 644
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst13Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 645
+ Type "edit"
+ Name "InConst13Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 646
+ Type "checkbox"
+ Name "boolInConst13Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst13Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 647
+ Type "checkbox"
+ Name "boolInConst13LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 648
+ Type "edit"
+ Name "InConst13Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 649
+ Type "checkbox"
+ Name "boolInConst13Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst13Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 650
+ Type "checkbox"
+ Name "boolInConst13UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 651
+ Type "edit"
+ Name "InConst14SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 652
+ Type "checkbox"
+ Name "boolInConst14"
+ Prompt "Constraints on input 14 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',14)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 653
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst14Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 654
+ Type "edit"
+ Name "InConst14Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 655
+ Type "checkbox"
+ Name "boolInConst14Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst14Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 656
+ Type "checkbox"
+ Name "boolInConst14LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 657
+ Type "edit"
+ Name "InConst14Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 658
+ Type "checkbox"
+ Name "boolInConst14Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst14Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 659
+ Type "checkbox"
+ Name "boolInConst14UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 660
+ Type "edit"
+ Name "InConst15SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 661
+ Type "checkbox"
+ Name "boolInConst15"
+ Prompt "Constraints on input 15 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',15)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 662
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst15Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 663
+ Type "edit"
+ Name "InConst15Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 664
+ Type "checkbox"
+ Name "boolInConst15Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst15Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 665
+ Type "checkbox"
+ Name "boolInConst15LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 666
+ Type "edit"
+ Name "InConst15Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 667
+ Type "checkbox"
+ Name "boolInConst15Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst15Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 668
+ Type "checkbox"
+ Name "boolInConst15UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 669
+ Type "edit"
+ Name "InConst16SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 670
+ Type "checkbox"
+ Name "boolInConst16"
+ Prompt "Constraints on input 16 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',16)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 671
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst16Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 672
+ Type "edit"
+ Name "InConst16Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 673
+ Type "checkbox"
+ Name "boolInConst16Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst16Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 674
+ Type "checkbox"
+ Name "boolInConst16LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 675
+ Type "edit"
+ Name "InConst16Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 676
+ Type "checkbox"
+ Name "boolInConst16Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst16Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 677
+ Type "checkbox"
+ Name "boolInConst16UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 678
+ Type "edit"
+ Name "InConst17SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 679
+ Type "checkbox"
+ Name "boolInConst17"
+ Prompt "Constraints on input 17 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',17)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 680
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst17Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 681
+ Type "edit"
+ Name "InConst17Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 682
+ Type "checkbox"
+ Name "boolInConst17Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst17Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 683
+ Type "checkbox"
+ Name "boolInConst17LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 684
+ Type "edit"
+ Name "InConst17Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 685
+ Type "checkbox"
+ Name "boolInConst17Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst17Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 686
+ Type "checkbox"
+ Name "boolInConst17UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 687
+ Type "edit"
+ Name "InConst18SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 688
+ Type "checkbox"
+ Name "boolInConst18"
+ Prompt "Constraints on input 18 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',18)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 689
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst18Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 690
+ Type "edit"
+ Name "InConst18Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 691
+ Type "checkbox"
+ Name "boolInConst18Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst18Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 692
+ Type "checkbox"
+ Name "boolInConst18LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 693
+ Type "edit"
+ Name "InConst18Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 694
+ Type "checkbox"
+ Name "boolInConst18Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst18Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 695
+ Type "checkbox"
+ Name "boolInConst18UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 696
+ Type "edit"
+ Name "InConst19SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 697
+ Type "checkbox"
+ Name "boolInConst19"
+ Prompt "Constraints on input 19 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',19)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 698
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst19Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 699
+ Type "edit"
+ Name "InConst19Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 700
+ Type "checkbox"
+ Name "boolInConst19Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst19Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 701
+ Type "checkbox"
+ Name "boolInConst19LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 702
+ Type "edit"
+ Name "InConst19Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 703
+ Type "checkbox"
+ Name "boolInConst19Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst19Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 704
+ Type "checkbox"
+ Name "boolInConst19UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 705
+ Type "edit"
+ Name "InConst20SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 706
+ Type "checkbox"
+ Name "boolInConst20"
+ Prompt "Constraints on input 20 magnitude?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_const',20)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 707
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InConst20Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 708
+ Type "edit"
+ Name "InConst20Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 709
+ Type "checkbox"
+ Name "boolInConst20Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst20Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 710
+ Type "checkbox"
+ Name "boolInConst20LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 711
+ Type "edit"
+ Name "InConst20Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 712
+ Type "checkbox"
+ Name "boolInConst20Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InConst20Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 713
+ Type "checkbox"
+ Name "boolInConst20UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 714
+ Type "edit"
+ Name "InRateConst1SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 715
+ Type "checkbox"
+ Name "boolInRateConst1"
+ Prompt "Constraints on input 1 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',1)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 716
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst1Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 717
+ Type "edit"
+ Name "InRateConst1Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 718
+ Type "checkbox"
+ Name "boolInRateConst1Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst1Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 719
+ Type "checkbox"
+ Name "boolInRateConst1LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 720
+ Type "edit"
+ Name "InRateConst1Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 721
+ Type "checkbox"
+ Name "boolInRateConst1Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst1Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 722
+ Type "checkbox"
+ Name "boolInRateConst1UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 723
+ Type "edit"
+ Name "InRateConst2SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 724
+ Type "checkbox"
+ Name "boolInRateConst2"
+ Prompt "Constraints on input 2 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',2)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 725
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst2Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 726
+ Type "edit"
+ Name "InRateConst2Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 727
+ Type "checkbox"
+ Name "boolInRateConst2Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst2Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 728
+ Type "checkbox"
+ Name "boolInRateConst2LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 729
+ Type "edit"
+ Name "InRateConst2Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 730
+ Type "checkbox"
+ Name "boolInRateConst2Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst2Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 731
+ Type "checkbox"
+ Name "boolInRateConst2UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 732
+ Type "edit"
+ Name "InRateConst3SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 733
+ Type "checkbox"
+ Name "boolInRateConst3"
+ Prompt "Constraints on input 3 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',3)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 734
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst3Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 735
+ Type "edit"
+ Name "InRateConst3Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 736
+ Type "checkbox"
+ Name "boolInRateConst3Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst3Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 737
+ Type "checkbox"
+ Name "boolInRateConst3LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 738
+ Type "edit"
+ Name "InRateConst3Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 739
+ Type "checkbox"
+ Name "boolInRateConst3Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst3Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 740
+ Type "checkbox"
+ Name "boolInRateConst3UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 741
+ Type "edit"
+ Name "InRateConst4SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 742
+ Type "checkbox"
+ Name "boolInRateConst4"
+ Prompt "Constraints on input 4 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',4)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 743
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst4Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 744
+ Type "edit"
+ Name "InRateConst4Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 745
+ Type "checkbox"
+ Name "boolInRateConst4Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst4Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 746
+ Type "checkbox"
+ Name "boolInRateConst4LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 747
+ Type "edit"
+ Name "InRateConst4Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 748
+ Type "checkbox"
+ Name "boolInRateConst4Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst4Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 749
+ Type "checkbox"
+ Name "boolInRateConst4UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 750
+ Type "edit"
+ Name "InRateConst5SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 751
+ Type "checkbox"
+ Name "boolInRateConst5"
+ Prompt "Constraints on input 5 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',5)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 752
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst5Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 753
+ Type "edit"
+ Name "InRateConst5Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 754
+ Type "checkbox"
+ Name "boolInRateConst5Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst5Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 755
+ Type "checkbox"
+ Name "boolInRateConst5LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 756
+ Type "edit"
+ Name "InRateConst5Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 757
+ Type "checkbox"
+ Name "boolInRateConst5Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst5Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 758
+ Type "checkbox"
+ Name "boolInRateConst5UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 759
+ Type "edit"
+ Name "InRateConst6SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 760
+ Type "checkbox"
+ Name "boolInRateConst6"
+ Prompt "Constraints on input 6 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',6)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 761
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst6Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 762
+ Type "edit"
+ Name "InRateConst6Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 763
+ Type "checkbox"
+ Name "boolInRateConst6Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst6Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 764
+ Type "checkbox"
+ Name "boolInRateConst6LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 765
+ Type "edit"
+ Name "InRateConst6Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 766
+ Type "checkbox"
+ Name "boolInRateConst6Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst6Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 767
+ Type "checkbox"
+ Name "boolInRateConst6UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 768
+ Type "edit"
+ Name "InRateConst7SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 769
+ Type "checkbox"
+ Name "boolInRateConst7"
+ Prompt "Constraints on input 7 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',7)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 770
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst7Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 771
+ Type "edit"
+ Name "InRateConst7Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 772
+ Type "checkbox"
+ Name "boolInRateConst7Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst7Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 773
+ Type "checkbox"
+ Name "boolInRateConst7LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 774
+ Type "edit"
+ Name "InRateConst7Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 775
+ Type "checkbox"
+ Name "boolInRateConst7Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst7Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 776
+ Type "checkbox"
+ Name "boolInRateConst7UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 777
+ Type "edit"
+ Name "InRateConst8SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 778
+ Type "checkbox"
+ Name "boolInRateConst8"
+ Prompt "Constraints on input 8 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',8)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 779
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst8Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 780
+ Type "edit"
+ Name "InRateConst8Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 781
+ Type "checkbox"
+ Name "boolInRateConst8Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst8Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 782
+ Type "checkbox"
+ Name "boolInRateConst8LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 783
+ Type "edit"
+ Name "InRateConst8Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 784
+ Type "checkbox"
+ Name "boolInRateConst8Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst8Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 785
+ Type "checkbox"
+ Name "boolInRateConst8UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 786
+ Type "edit"
+ Name "InRateConst9SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 787
+ Type "checkbox"
+ Name "boolInRateConst9"
+ Prompt "Constraints on input 9 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',9)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 788
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst9Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 789
+ Type "edit"
+ Name "InRateConst9Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 790
+ Type "checkbox"
+ Name "boolInRateConst9Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst9Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 791
+ Type "checkbox"
+ Name "boolInRateConst9LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 792
+ Type "edit"
+ Name "InRateConst9Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 793
+ Type "checkbox"
+ Name "boolInRateConst9Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst9Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 794
+ Type "checkbox"
+ Name "boolInRateConst9UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 795
+ Type "edit"
+ Name "InRateConst10SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 796
+ Type "checkbox"
+ Name "boolInRateConst10"
+ Prompt "Constraints on input 10 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',10)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 797
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst10Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 798
+ Type "edit"
+ Name "InRateConst10Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 799
+ Type "checkbox"
+ Name "boolInRateConst10Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst10Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 800
+ Type "checkbox"
+ Name "boolInRateConst10LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 801
+ Type "edit"
+ Name "InRateConst10Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 802
+ Type "checkbox"
+ Name "boolInRateConst10Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst10Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 803
+ Type "checkbox"
+ Name "boolInRateConst10UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 804
+ Type "edit"
+ Name "InRateConst11SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 805
+ Type "checkbox"
+ Name "boolInRateConst11"
+ Prompt "Constraints on input 11 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',11)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 806
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst11Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 807
+ Type "edit"
+ Name "InRateConst11Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 808
+ Type "checkbox"
+ Name "boolInRateConst11Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst11Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 809
+ Type "checkbox"
+ Name "boolInRateConst11LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 810
+ Type "edit"
+ Name "InRateConst11Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 811
+ Type "checkbox"
+ Name "boolInRateConst11Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst11Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 812
+ Type "checkbox"
+ Name "boolInRateConst11UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 813
+ Type "edit"
+ Name "InRateConst12SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 814
+ Type "checkbox"
+ Name "boolInRateConst12"
+ Prompt "Constraints on input 12 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',12)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 815
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst12Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 816
+ Type "edit"
+ Name "InRateConst12Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 817
+ Type "checkbox"
+ Name "boolInRateConst12Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst12Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 818
+ Type "checkbox"
+ Name "boolInRateConst12LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 819
+ Type "edit"
+ Name "InRateConst12Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 820
+ Type "checkbox"
+ Name "boolInRateConst12Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst12Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 821
+ Type "checkbox"
+ Name "boolInRateConst12UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 822
+ Type "edit"
+ Name "InRateConst13SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 823
+ Type "checkbox"
+ Name "boolInRateConst13"
+ Prompt "Constraints on input 13 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',13)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 824
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst13Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 825
+ Type "edit"
+ Name "InRateConst13Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 826
+ Type "checkbox"
+ Name "boolInRateConst13Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst13Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 827
+ Type "checkbox"
+ Name "boolInRateConst13LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 828
+ Type "edit"
+ Name "InRateConst13Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 829
+ Type "checkbox"
+ Name "boolInRateConst13Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst13Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 830
+ Type "checkbox"
+ Name "boolInRateConst13UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 831
+ Type "edit"
+ Name "InRateConst14SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 832
+ Type "checkbox"
+ Name "boolInRateConst14"
+ Prompt "Constraints on input 14 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',14)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 833
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst14Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 834
+ Type "edit"
+ Name "InRateConst14Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 835
+ Type "checkbox"
+ Name "boolInRateConst14Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst14Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 836
+ Type "checkbox"
+ Name "boolInRateConst14LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 837
+ Type "edit"
+ Name "InRateConst14Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 838
+ Type "checkbox"
+ Name "boolInRateConst14Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst14Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 839
+ Type "checkbox"
+ Name "boolInRateConst14UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 840
+ Type "edit"
+ Name "InRateConst15SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 841
+ Type "checkbox"
+ Name "boolInRateConst15"
+ Prompt "Constraints on input 15 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',15)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 842
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst15Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 843
+ Type "edit"
+ Name "InRateConst15Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 844
+ Type "checkbox"
+ Name "boolInRateConst15Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst15Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 845
+ Type "checkbox"
+ Name "boolInRateConst15LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 846
+ Type "edit"
+ Name "InRateConst15Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 847
+ Type "checkbox"
+ Name "boolInRateConst15Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst15Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 848
+ Type "checkbox"
+ Name "boolInRateConst15UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 849
+ Type "edit"
+ Name "InRateConst16SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 850
+ Type "checkbox"
+ Name "boolInRateConst16"
+ Prompt "Constraints on input 16 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',16)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 851
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst16Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 852
+ Type "edit"
+ Name "InRateConst16Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 853
+ Type "checkbox"
+ Name "boolInRateConst16Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst16Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 854
+ Type "checkbox"
+ Name "boolInRateConst16LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 855
+ Type "edit"
+ Name "InRateConst16Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 856
+ Type "checkbox"
+ Name "boolInRateConst16Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst16Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 857
+ Type "checkbox"
+ Name "boolInRateConst16UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 858
+ Type "edit"
+ Name "InRateConst17SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 859
+ Type "checkbox"
+ Name "boolInRateConst17"
+ Prompt "Constraints on input 17 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',17)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 860
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst17Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 861
+ Type "edit"
+ Name "InRateConst17Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 862
+ Type "checkbox"
+ Name "boolInRateConst17Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst17Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 863
+ Type "checkbox"
+ Name "boolInRateConst17LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 864
+ Type "edit"
+ Name "InRateConst17Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 865
+ Type "checkbox"
+ Name "boolInRateConst17Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst17Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 866
+ Type "checkbox"
+ Name "boolInRateConst17UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 867
+ Type "edit"
+ Name "InRateConst18SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 868
+ Type "checkbox"
+ Name "boolInRateConst18"
+ Prompt "Constraints on input 18 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',18)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 869
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst18Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 870
+ Type "edit"
+ Name "InRateConst18Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 871
+ Type "checkbox"
+ Name "boolInRateConst18Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst18Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 872
+ Type "checkbox"
+ Name "boolInRateConst18LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 873
+ Type "edit"
+ Name "InRateConst18Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 874
+ Type "checkbox"
+ Name "boolInRateConst18Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst18Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 875
+ Type "checkbox"
+ Name "boolInRateConst18UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 876
+ Type "edit"
+ Name "InRateConst19SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 877
+ Type "checkbox"
+ Name "boolInRateConst19"
+ Prompt "Constraints on input 19 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',19)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 878
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst19Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 879
+ Type "edit"
+ Name "InRateConst19Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 880
+ Type "checkbox"
+ Name "boolInRateConst19Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst19Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 881
+ Type "checkbox"
+ Name "boolInRateConst19LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 882
+ Type "edit"
+ Name "InRateConst19Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 883
+ Type "checkbox"
+ Name "boolInRateConst19Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst19Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 884
+ Type "checkbox"
+ Name "boolInRateConst19UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 885
+ Type "edit"
+ Name "InRateConst20SepBar"
+ Prompt ""
+ Value " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 886
+ Type "checkbox"
+ Name "boolInRateConst20"
+ Prompt "Constraints on input 20 slew rate?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'input_rate_const',20)"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 887
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 1
+ Cell "Bound constraints"
+ PropName "TypeOptions"
+ }
+ Name "InRateConst20Type"
+ Prompt "Constraint type:"
+ Value "Bound constraints"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 888
+ Type "edit"
+ Name "InRateConst20Lower"
+ Prompt "Lower bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 889
+ Type "checkbox"
+ Name "boolInRateConst20Lowerparam"
+ Prompt "Lower bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst20Lower')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 890
+ Type "checkbox"
+ Name "boolInRateConst20LowerparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 891
+ Type "edit"
+ Name "InRateConst20Upper"
+ Prompt "Upper bound:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 892
+ Type "checkbox"
+ Name "boolInRateConst20Upperparam"
+ Prompt "Upper bound - Parameter?"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'params_check','InRateConst20Upper')"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 893
+ Type "checkbox"
+ Name "boolInRateConst20UpperparamTimeVarying"
+ Prompt "Constant over horizon?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "System constraints"
+ }
+ Object {
+ $ObjectID 894
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 2
+ Cell "State Feedback"
+ Cell "Output Feedback"
+ PropName "TypeOptions"
+ }
+ Name "WhichFeedback"
+ Prompt "Feedback type:"
+ Value "State Feedback"
+ Evaluate "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'load_cov_mat')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 895
+ Type "checkbox"
+ Name "estimatorOutput"
+ Prompt "Get estimator output"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 896
+ Type "checkbox"
+ Name "boolLoadCovMat"
+ Prompt "Load noise covariance matrices?"
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'load_cov_mat')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 897
+ Type "edit"
+ Name "Qn"
+ Prompt "Qn - Process Noise Covariance:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'getQn_matrix')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 898
+ Type "edit"
+ Name "Rn"
+ Prompt "Rn - Measurement Noise Covariance:"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'getRn_matrix')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 899
+ Type "edit"
+ Name "WeightProcess1"
+ Prompt "Relative importance of process noise channel 1:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 900
+ Type "edit"
+ Name "WeightProcess2"
+ Prompt "Relative importance of process noise channel 2:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 901
+ Type "edit"
+ Name "WeightProcess3"
+ Prompt "Relative importance of process noise channel 3:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 902
+ Type "edit"
+ Name "WeightProcess4"
+ Prompt "Relative importance of process noise channel 4:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 903
+ Type "edit"
+ Name "WeightProcess5"
+ Prompt "Relative importance of process noise channel 5:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 904
+ Type "edit"
+ Name "WeightProcess6"
+ Prompt "Relative importance of process noise channel 6:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 905
+ Type "edit"
+ Name "WeightProcess7"
+ Prompt "Relative importance of process noise channel 7:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 906
+ Type "edit"
+ Name "WeightProcess8"
+ Prompt "Relative importance of process noise channel 8:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 907
+ Type "edit"
+ Name "WeightProcess9"
+ Prompt "Relative importance of process noise channel 9:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 908
+ Type "edit"
+ Name "WeightProcess10"
+ Prompt "Relative importance of process noise channel 10:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 909
+ Type "edit"
+ Name "WeightProcess11"
+ Prompt "Relative importance of process noise channel 11:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 910
+ Type "edit"
+ Name "WeightProcess12"
+ Prompt "Relative importance of process noise channel 12:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 911
+ Type "edit"
+ Name "WeightProcess13"
+ Prompt "Relative importance of process noise channel 13:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 912
+ Type "edit"
+ Name "WeightProcess14"
+ Prompt "Relative importance of process noise channel 14:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 913
+ Type "edit"
+ Name "WeightProcess15"
+ Prompt "Relative importance of process noise channel 15:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 914
+ Type "edit"
+ Name "WeightProcess16"
+ Prompt "Relative importance of process noise channel 16:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 915
+ Type "edit"
+ Name "WeightProcess17"
+ Prompt "Relative importance of process noise channel 17:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 916
+ Type "edit"
+ Name "WeightProcess18"
+ Prompt "Relative importance of process noise channel 18:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 917
+ Type "edit"
+ Name "WeightProcess19"
+ Prompt "Relative importance of process noise channel 19:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 918
+ Type "edit"
+ Name "WeightProcess20"
+ Prompt "Relative importance of process noise channel 20:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 919
+ Type "edit"
+ Name "WeightProcess21"
+ Prompt "Relative importance of process noise channel 21:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 920
+ Type "edit"
+ Name "WeightProcess22"
+ Prompt "Relative importance of process noise channel 22:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 921
+ Type "edit"
+ Name "WeightProcess23"
+ Prompt "Relative importance of process noise channel 23:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 922
+ Type "edit"
+ Name "WeightProcess24"
+ Prompt "Relative importance of process noise channel 24:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 923
+ Type "edit"
+ Name "WeightProcess25"
+ Prompt "Relative importance of process noise channel 25:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 924
+ Type "edit"
+ Name "WeightProcess26"
+ Prompt "Relative importance of process noise channel 26:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 925
+ Type "edit"
+ Name "WeightProcess27"
+ Prompt "Relative importance of process noise channel 27:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 926
+ Type "edit"
+ Name "WeightProcess28"
+ Prompt "Relative importance of process noise channel 28:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 927
+ Type "edit"
+ Name "WeightProcess29"
+ Prompt "Relative importance of process noise channel 29:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 928
+ Type "edit"
+ Name "WeightProcess30"
+ Prompt "Relative importance of process noise channel 30:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 929
+ Type "edit"
+ Name "WeightProcess31"
+ Prompt "Relative importance of process noise channel 31:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 930
+ Type "edit"
+ Name "WeightProcess32"
+ Prompt "Relative importance of process noise channel 32:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 931
+ Type "edit"
+ Name "WeightProcess33"
+ Prompt "Relative importance of process noise channel 33:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 932
+ Type "edit"
+ Name "WeightProcess34"
+ Prompt "Relative importance of process noise channel 34:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 933
+ Type "edit"
+ Name "WeightProcess35"
+ Prompt "Relative importance of process noise channel 35:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 934
+ Type "edit"
+ Name "WeightProcess36"
+ Prompt "Relative importance of process noise channel 36:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 935
+ Type "edit"
+ Name "WeightProcess37"
+ Prompt "Relative importance of process noise channel 37:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 936
+ Type "edit"
+ Name "WeightProcess38"
+ Prompt "Relative importance of process noise channel 38:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 937
+ Type "edit"
+ Name "WeightProcess39"
+ Prompt "Relative importance of process noise channel 39:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 938
+ Type "edit"
+ Name "WeightProcess40"
+ Prompt "Relative importance of process noise channel 40:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 939
+ Type "edit"
+ Name "WeightNoise1"
+ Prompt "Relative importance of measurement noise channel 1:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 940
+ Type "edit"
+ Name "WeightNoise2"
+ Prompt "Relative importance of measurement noise channel 2:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 941
+ Type "edit"
+ Name "WeightNoise3"
+ Prompt "Relative importance of measurement noise channel 3:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 942
+ Type "edit"
+ Name "WeightNoise4"
+ Prompt "Relative importance of measurement noise channel 4:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 943
+ Type "edit"
+ Name "WeightNoise5"
+ Prompt "Relative importance of measurement noise channel 5:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 944
+ Type "edit"
+ Name "WeightNoise6"
+ Prompt "Relative importance of measurement noise channel 6:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 945
+ Type "edit"
+ Name "WeightNoise7"
+ Prompt "Relative importance of measurement noise channel 7:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 946
+ Type "edit"
+ Name "WeightNoise8"
+ Prompt "Relative importance of measurement noise channel 8:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 947
+ Type "edit"
+ Name "WeightNoise9"
+ Prompt "Relative importance of measurement noise channel 9:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 948
+ Type "edit"
+ Name "WeightNoise10"
+ Prompt "Relative importance of measurement noise channel 10:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 949
+ Type "edit"
+ Name "WeightNoise11"
+ Prompt "Relative importance of measurement noise channel 11:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 950
+ Type "edit"
+ Name "WeightNoise12"
+ Prompt "Relative importance of measurement noise channel 12:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 951
+ Type "edit"
+ Name "WeightNoise13"
+ Prompt "Relative importance of measurement noise channel 13:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 952
+ Type "edit"
+ Name "WeightNoise14"
+ Prompt "Relative importance of measurement noise channel 14:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 953
+ Type "edit"
+ Name "WeightNoise15"
+ Prompt "Relative importance of measurement noise channel 15:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 954
+ Type "edit"
+ Name "WeightNoise16"
+ Prompt "Relative importance of measurement noise channel 16:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 955
+ Type "edit"
+ Name "WeightNoise17"
+ Prompt "Relative importance of measurement noise channel 17:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 956
+ Type "edit"
+ Name "WeightNoise18"
+ Prompt "Relative importance of measurement noise channel 18:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 957
+ Type "edit"
+ Name "WeightNoise19"
+ Prompt "Relative importance of measurement noise channel 19:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 958
+ Type "edit"
+ Name "WeightNoise20"
+ Prompt "Relative importance of measurement noise channel 20:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 959
+ Type "edit"
+ Name "WeightNoise21"
+ Prompt "Relative importance of measurement noise channel 21:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 960
+ Type "edit"
+ Name "WeightNoise22"
+ Prompt "Relative importance of measurement noise channel 22:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 961
+ Type "edit"
+ Name "WeightNoise23"
+ Prompt "Relative importance of measurement noise channel 23:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 962
+ Type "edit"
+ Name "WeightNoise24"
+ Prompt "Relative importance of measurement noise channel 24:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 963
+ Type "edit"
+ Name "WeightNoise25"
+ Prompt "Relative importance of measurement noise channel 25:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 964
+ Type "edit"
+ Name "WeightNoise26"
+ Prompt "Relative importance of measurement noise channel 26:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 965
+ Type "edit"
+ Name "WeightNoise27"
+ Prompt "Relative importance of measurement noise channel 27:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 966
+ Type "edit"
+ Name "WeightNoise28"
+ Prompt "Relative importance of measurement noise channel 28:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 967
+ Type "edit"
+ Name "WeightNoise29"
+ Prompt "Relative importance of measurement noise channel 29:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 968
+ Type "edit"
+ Name "WeightNoise30"
+ Prompt "Relative importance of measurement noise channel 30:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 969
+ Type "edit"
+ Name "WeightNoise31"
+ Prompt "Relative importance of measurement noise channel 31:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 970
+ Type "edit"
+ Name "WeightNoise32"
+ Prompt "Relative importance of measurement noise channel 32:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 971
+ Type "edit"
+ Name "WeightNoise33"
+ Prompt "Relative importance of measurement noise channel 33:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 972
+ Type "edit"
+ Name "WeightNoise34"
+ Prompt "Relative importance of measurement noise channel 34:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 973
+ Type "edit"
+ Name "WeightNoise35"
+ Prompt "Relative importance of measurement noise channel 35:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 974
+ Type "edit"
+ Name "WeightNoise36"
+ Prompt "Relative importance of measurement noise channel 36:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 975
+ Type "edit"
+ Name "WeightNoise37"
+ Prompt "Relative importance of measurement noise channel 37:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 976
+ Type "edit"
+ Name "WeightNoise38"
+ Prompt "Relative importance of measurement noise channel 38:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 977
+ Type "edit"
+ Name "WeightNoise39"
+ Prompt "Relative importance of measurement noise channel 39:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 978
+ Type "edit"
+ Name "WeightNoise40"
+ Prompt "Relative importance of measurement noise channel 40:"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'calc_weights_cov')"
+ TabName "Estimator"
+ }
+ Object {
+ $ObjectID 979
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 4
+ Cell "double precision - double"
+ Cell "single precision - float"
+ Cell "32-bit fixed-point - int"
+ Cell "16-bit fixed-point - short"
+ PropName "TypeOptions"
+ }
+ Name "dataType"
+ Prompt "Data type:"
+ Value "double precision - double"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 980
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 4
+ Cell "Primal-Dual Interior-Point"
+ Cell "ADMM"
+ Cell "Dual Fast Gradient"
+ Cell "Fast Gradient"
+ PropName "TypeOptions"
+ }
+ Name "methodType"
+ Prompt "Optimization method:"
+ Value "Primal-Dual Interior-Point"
+ Tunable "off"
+ Callback "configure_block(gcb,'method_sel')"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 981
+ Type "checkbox"
+ Name "boolAutoMethod"
+ Prompt "Choose method automatically"
+ Value "off"
+ Tunable "off"
+ Callback "configure_block(gcb,'method_sel')"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 982
+ Type "edit"
+ Name "maxIter"
+ Prompt "Maximum number of iterations"
+ Value "30"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 983
+ Type "checkbox"
+ Name "boolAutoIter"
+ Prompt "Choose maximum number of iterations automatically"
+ Value "off"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 984
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 11
+ Cell "Generic"
+ Cell "x86_64"
+ Cell "x86"
+ Cell "ARM Cortex-M3"
+ Cell "ARM Cortex-M4 (NO FPU)"
+ Cell "ARM Cortex-M4 (FPU)"
+ Cell "ARM Cortex-A"
+ Cell "Tricore"
+ Cell "PowerPC"
+ Cell "PowerPC64"
+ Cell "VHDL"
+ PropName "TypeOptions"
+ }
+ Name "platform"
+ Prompt "Platform:"
+ Value "Generic"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 985
+ Type "edit"
+ Name "ADMM_rho"
+ Prompt "ADMM option: rho parameter"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 986
+ Type "checkbox"
+ Name "ADMM_sparse"
+ Prompt "ADMM option: Sparsify matrix M_11"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 987
+ Type "edit"
+ Name "ADMM_max_z"
+ Prompt "ADMM option: Maximum absolute value of primal variables"
+ Value "1"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 988
+ Type "edit"
+ Name "solverDesc"
+ Prompt "Enter an optional controller description"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 989
+ Type "checkbox"
+ Name "solveInfo"
+ Prompt "Get solve information"
+ Value "off"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 990
+ Type "checkbox"
+ Name "fullVecInfo"
+ Prompt "Get full optimal control vector"
+ Value "off"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 991
+ Type "checkbox"
+ Name "getCompactInt"
+ Prompt "Get compact interface"
+ Value "off"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 992
+ Type "edit"
+ Name "codegenServer"
+ Prompt "Specify alternative server for code generation"
+ Value ""
+ Evaluate "off"
+ Tunable "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 993
+ Type "edit"
+ Name "integratorOptions"
+ Prompt ""
+ Value " - - - - - - - - - - - - - INTEGRATOR OPTIONS - - - - - - - - - - - - - - - - "
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 994
+ Type "popup"
+ Array {
+ Type "Cell"
+ Dimension 3
+ Cell "Explicit Runge-Kutta Order 2"
+ Cell "Explicit Runge-Kutta Order 3"
+ Cell "Explicit Runge-Kutta Order 4"
+ PropName "TypeOptions"
+ }
+ Name "integratorType"
+ Prompt "Integrator type:"
+ Value "Explicit Runge-Kutta Order 4"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 995
+ Type "edit"
+ Name "integratornIt"
+ Prompt "Number of integration steps per integration interval (integer):"
+ Value "1"
+ Evaluate "off"
+ Tunable "off"
+ Enabled "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 996
+ Type "edit"
+ Name "integratorhPert"
+ Prompt "Jacobian perturbation step:"
+ Value "1e-8"
+ Evaluate "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 997
+ Type "checkbox"
+ Name "fullStateTraj"
+ Prompt "Get full state trajectory"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 998
+ Type "checkbox"
+ Name "FORCES_PRO"
+ Prompt ""
+ Value "on"
+ Tunable "off"
+ Visible "off"
+ TabName "Settings"
+ }
+ Object {
+ $ObjectID 999
+ Type "checkbox"
+ Name "gfdgdfgsdfgsdfs"
+ Prompt "dgdfgdfgs"
+ Value "off"
+ Tunable "off"
+ Visible "off"
+ Callback "configure_block(gcb,'last_init')"
+ TabName "Settings"
+ }
+ PropName "Parameters"
+ }
+ }
+ }
+ }
+}
diff --git a/Yuwen project/FORCES_client/MultistageProblem.m b/Yuwen project/FORCES_client/MultistageProblem.m
new file mode 100755
index 0000000..575056d
--- /dev/null
+++ b/Yuwen project/FORCES_client/MultistageProblem.m
@@ -0,0 +1,62 @@
+% Default initialization for a multistage problem.
+%
+% STAGES = MULTISTAGEPROBLEM(N) returns an array of structs defining a
+% multistage problem of with N stages:
+%
+% min sum_{i=1}^N z_i'*H*z_i + f_i'*z_i
+% {z_i}
+%
+% subject to:
+% lb_i <= z_i <= ub_i (bound constraints), i=1,...,N
+% Aineq_i*z_i <= b_i (affine inequalities), i=1,...,N
+% z_i'*Q_{i,j}*z_i + g_{i,j}'*z_i <= r_{i,j}^2, i=1,...,N,
+% (quadratic inequalities) j=1,...q
+% D1*z1 = c1
+% C_i*z_i + D_i+1*z_i+1 = c_i+1, (equality constraints) i=1,...,N-1.
+%
+% Both H and Q are supposed to be positive definite.
+%
+% The ith stage of the problem is accessed by STAGES(i), and has the
+% following fields:
+%
+% stages(i)
+% .dims.n - length of stage variable
+% .r - number of affine equalities (only for stages 1..N-1)
+% .l - vector in (1,n) indicating the number of lower bounds
+% .u - vector in (1,n) indicating the number of upper bounds
+% .p - number of linear inequalities g'*z <= h
+% .q - number of quadratic constraints z'*M*z + g'*z <= r
+% .h - number of general inequalities (possibly nonlinear, non-convex)
+%
+% .cost.H - Hessian of cost
+% .f - linear part of cost
+%
+% .eq.C - equality constraint matrix Ci
+% .D - equality constraint matrix Di
+% .c - vector containing the RHS of equality constraints ci
+%
+% .ineq.b.lb - vector of lower bounds of stage variables
+% .lbidx - vector indicating to which stage variables the
+% lower bounds belong to
+% .ub - vector of upper bounds of stage variables
+% .ubidx - vector indicating to which stage variables the
+% upper bounds belong to
+%
+% .ineq.p.A - matrix defining the Jacobian of the polytopic inequalities A*z <= b
+% p.b - vector, RHS of polytopic inequalities
+%
+% .ineq.q.Q - cell array containing the Hessians of quadratic
+% inequalities z'*Q*z + g'*z <= r
+% .l - linear part of quadratic inequalities ( N x q matrix )
+% .r - RHS of quadratic inequalities ( q x 1 vector )
+%
+% .ineq.h.hl - lower bound for inequality hl <= h(z)
+% .hlidx - indicates on which indices of h(z) the lower bounds act
+% .hu - upper bound for inequality h(z) <= hu
+% .huidx - indicates on which indices of h(z) the upper bounds act
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+%
+% See also FORCES_NLP NEWPARAM NEWOUTPUT
diff --git a/Yuwen project/FORCES_client/MultistageProblem.p b/Yuwen project/FORCES_client/MultistageProblem.p
new file mode 100755
index 0000000..ea6fb27
Binary files /dev/null and b/Yuwen project/FORCES_client/MultistageProblem.p differ
diff --git a/Yuwen project/FORCES_client/RK2.m b/Yuwen project/FORCES_client/RK2.m
new file mode 100755
index 0000000..e9ae8b9
--- /dev/null
+++ b/Yuwen project/FORCES_client/RK2.m
@@ -0,0 +1,24 @@
+% Explicit Runge-Kutta integrator of order 2.
+%
+% XNEXT = RK2( X, U, F, H) implements explicit RK2 integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt.
+%
+% XNEXT = RK2( X, U, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% XNEXT = RK2( X, U, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also ForwardEuler BackwardEuler RK3 RK4 IRK2 IRK4 FORCES_NLP
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
diff --git a/Yuwen project/FORCES_client/RK2.p b/Yuwen project/FORCES_client/RK2.p
new file mode 100755
index 0000000..6228c62
Binary files /dev/null and b/Yuwen project/FORCES_client/RK2.p differ
diff --git a/Yuwen project/FORCES_client/RK3.m b/Yuwen project/FORCES_client/RK3.m
new file mode 100755
index 0000000..3b297b1
--- /dev/null
+++ b/Yuwen project/FORCES_client/RK3.m
@@ -0,0 +1,24 @@
+% Explicit Runge-Kutta integrator of order 3.
+%
+% XNEXT = RK3( X, U, F, H) implements explicit RK3 integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt.
+%
+% XNEXT = RK3( X, U, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% XNEXT = RK3( X, U, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also ForwardEuler BackwardEuler RK2 RK4 IRK2 IRK4 FORCES_NLP
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
diff --git a/Yuwen project/FORCES_client/RK3.p b/Yuwen project/FORCES_client/RK3.p
new file mode 100755
index 0000000..6fd814c
Binary files /dev/null and b/Yuwen project/FORCES_client/RK3.p differ
diff --git a/Yuwen project/FORCES_client/RK4.m b/Yuwen project/FORCES_client/RK4.m
new file mode 100755
index 0000000..17657f6
--- /dev/null
+++ b/Yuwen project/FORCES_client/RK4.m
@@ -0,0 +1,24 @@
+% Explicit Runge-Kutta integrator of order 4.
+%
+% XNEXT = RK4( X, U, F, H) implements explicit RK4 integrator
+% equations to discretize (potentially nonlinear) continuous dynamics with
+% step size H. Note that H is the absolute time spent between X and XNEXT.
+% F is a function handle to a function that takes the arguments (X, U)
+% and returns dx/dt.
+%
+% XNEXT = RK4( X, U, F, H, P) as above, but parameters P are passed to the
+% function handle F to support parameters in the dynamics, e.g. changing
+% inertia etc.
+%
+% XNEXT = RK4( X, U, F, H, P, M) performs M-steps for the integration, i.e.
+% it places M-1 intermediate points between X and XNEXT. Use this to
+% integrate systems more accurately without increasing the number of
+% optimization variables in the NLP solver. If no parameters are present,
+% use P = [].
+%
+%
+% See also ForwardEuler BackwardEuler RK2 RK3 IRK2 IRK4 FORCES_NLP
+%
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/RK4.p b/Yuwen project/FORCES_client/RK4.p
new file mode 100755
index 0000000..fa9d782
Binary files /dev/null and b/Yuwen project/FORCES_client/RK4.p differ
diff --git a/Yuwen project/FORCES_client/SimpleRegulationMPC.m b/Yuwen project/FORCES_client/SimpleRegulationMPC.m
new file mode 100755
index 0000000..1644e61
--- /dev/null
+++ b/Yuwen project/FORCES_client/SimpleRegulationMPC.m
@@ -0,0 +1,306 @@
+function [ controller, stages, params, codeoptions, outputs ] = SimpleRegulationMPC(system, objective, bounds, N, solvername, userOptions, debug)
+%% SimpleRegulationMPC - generates an MPC regulator for a given LTI system
+% Uses the FORCES Pro code-generation system to implement an optimal MPC
+% controller that regulates the given LTI system to the origin. The stage
+% cost penalizing control inputs and state-deviation from the origin is
+% assumed to be quadratic.
+%
+% SimpleRegulationMPC generates a mathematical optimization solver for
+% the following standard MPC problem:
+% min x_N'*P*x_N + sum_{i=0}^{N-1}( x_i'*Q*x_i + u_i'*R*u_i )
+% x_i,u_i
+% s.t. x_0 = x
+% x_{i+1} = A*x_i + B*u_i for i = 0...N-1
+% xmin <= x_i <= xmax for i = 1...N
+% umin <= u_i <= umax for i = 0...N-1
+%
+% The matrices Q and R define the stage cost while P is usually referred
+% to as the terminal cost matrix.
+%
+% The solver generated by SimpleRegulationMPC takes the value of x_0 as a
+% parameter and returns the optimal value for u_0, i.e. the control input
+% for the first stage, if the MPC problem is feasible. Always check the
+% exitflag provided by the solver to make sure there were no issues!
+%
+% The first output parameter of SimpleRegulationMPC is a simple function
+% handle wrapper around the solver that takes the current system state x,
+% hands it over to the solver in the appropriate format, and returns the
+% solver outputs. Call help YOUR_SOLVER_NAME (or help LTI_MPC_Solver if
+% no name is specified) for details.
+%
+% You can use the additional output parameters of SimpleRegulationMPC to
+% call
+% >> generateCode(stages, params, codeoptions, outputs)
+% This can be useful if you want to change some default options that are
+% not exposed in the interface of SimpleRegulationMPC or inspect what we
+% produce for you in this function and want to learn how you can use all
+% capabilities of FORCES Pro.
+%
+% Inputs:
+% system - Struct with the following fields:
+% system.A:
+% State-transition matrix of the LTI-system to be controlled
+% system.B:
+% Input matrix of the LTI-system to be controlled
+%
+% objective - Struct with the following fields:
+% objective.Q:
+% Positive semi-definite matrix penalizing state-deviations from the origin.
+% objective.R:
+% Positive definite matrix penalizing control inputs.
+% objective.computeTerminalCost: [OPTIONAL]
+% Boolean indicating whether the terminal cost matrix P should be
+% computed by solving the discrete-time algebraic Riccati equation.
+% objective.P: [OPTIONAL]
+% Positive semi-definite matrix penalizing the terminal state. If
+% not present (or computed), Q will be used instead.
+%
+% bounds - Struct with the following fields:
+% bounds.xmin, bounds.xmax: [OPTIONAL]
+% Vectors representing component-wise lower and upper bounds on the
+% individual states. Components can be (minus) infinity to indicate
+% unbounded states. Can be given as a scalar to specify identical
+% bounds for all states. If not present, unboundedness is assumed.
+% bounds.umin, bounds.umax: [OPTIONAL]
+% Vectors representing component-wise lower and upper bounds on the
+% control inputs. Components can be (minus) infinity to indicate
+% unbounded inputs. Can be given as a scalar to specify identical
+% bounds for all inputs. If not present, unboundedness is assumed.
+%
+% N:
+% Scalar specifying the prediction horizon for the MPC problem.
+%
+% solvername [OPTIONAL]:
+% String specifying a name for the generated solver.
+%
+% userOptions [OPTIONAL]:
+% Structure specifying non-standard options to use when generating
+% the MPC solver with FORCES Pro, see help getOptions for details.
+%
+% Outputs:
+% controller:
+% A function handle that takes a particular value for the system
+% state, calls the solver with it, and returns the solver outputs.
+%
+% stages:
+% A structure array defining the MPC problem in FORCES Pro format.
+%
+% params:
+% A structure defining the inputs (parameters) to the solver, i.e.
+% this initial system state x1, in FORCES Pro format.
+%
+% codeoptions:
+% A structure specifying the options used by FORCES Pro when
+% generating the MPC solver.
+%
+% outputs:
+% A structure specifying which variables values the solver should
+% return, i.e. the input u1 of the first stage.
+%
+% See also: generateCode, getOptions
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-18, Zurich, Switzerland. All rights reserved.
+
+if nargin < 5 || isempty(solvername) || ~ischar(solvername)
+ solvername = 'LTI_MPC_Solver';
+end
+
+if nargin < 6 || isempty(userOptions)
+ userOptions = struct();
+end
+
+if nargin < 7
+ debug = false;
+end
+
+%% extract some problem data
+
+% get the system matrices
+A = system.A;
+B = system.B;
+[nx, nu] = size(B);
+
+% get the input and state bounds
+if ~isempty(bounds) && isfield(bounds, 'xmin')
+ xmin = bounds.xmin;
+else
+ xmin = -inf;
+end
+if ~isempty(bounds) && isfield(bounds, 'xmax')
+ xmax = bounds.xmax;
+else
+ xmax = inf;
+end
+if ~isempty(bounds) && isfield(bounds, 'umin')
+ umin = bounds.umin;
+else
+ umin = -inf;
+end
+if ~isempty(bounds) && isfield(bounds, 'umax')
+ umax = bounds.umax;
+else
+ umax = inf;
+end
+
+
+% make sure the matrices have corresponding dimensions
+assert(all(size(A) == nx), 'The dimensions of A (%i x %i) and B (%i x %i) do not match!', size(A), size(B));
+
+% make sure the bounds have appropriate dimensions
+assert(isscalar(xmin) || (isvector(xmin) && length(xmin) == nx), 'The given lower bounds (size %i by %i) do not match the statespace dimension (nx = %i)!', size(xmin), nx);
+assert(isscalar(xmax) || (isvector(xmax) && length(xmax) == nx), 'The given upper bounds (size %i by %i) do not match the statespace dimension (nx = %i)!', size(xmax), nx);
+assert(isscalar(umin) || (isvector(umin) && length(umin) == nu), 'The given lower bounds (size %i by %i) do not match the input dimension (nu = %i)!', size(umin), nu);
+assert(isscalar(umax) || (isvector(umax) && length(umax) == nu), 'The given upper bounds (size %i by %i) do not match the input dimension (nu = %i)!', size(umax), nu);
+
+% make sure the cost-structure has appropriate dimensions
+assert(isscalar(objective) && isstruct(objective) && isfield(objective, 'Q') && isfield(objective, 'R'), ...
+ 'The objective has to be specified in a structure with fields Q and R (and potentially P)!');
+
+% prepare variables to hold the cost matrices
+Q = objective.Q;
+R = objective.R;
+
+% make sure the cost-matrices have the right dimensions
+assert(all(size(Q) == nx) && issymmetric(Q) && all(eig(Q) >= 0), ...
+ 'The stage cost for the state variables has to be given as a symmetric positive-semidefinite matrix!');
+
+assert(all(size(R) == nu) && issymmetric(R) && all(eig(R) > 0), ...
+ 'The stage cost for the input variables has to be given as a symmetric positive-definite matrix!');
+
+% use appropriate terminal cost matrix
+if isfield(objective, 'P') && ~isempty(objective.P)
+ P = objective.P;
+elseif isfield(objective, 'computeTerminalCost') && objective.computeTerminalCost
+ fprintf('Computing optimal terminal cost for the given dynamics and stage-cost.\n');
+ P = dare(A, B, Q, R);
+else
+ warning(['Using the state variable stage cost matrix for the terminal stage.' char(10) 'Provide a terminal cost matrix in objective.P or specify objective.computeTerminalCost = true if you want different behavior.']);
+ P = Q;
+end
+
+assert(all(size(P) == nx) && issymmetric(P) && all(eig(P) >= 0), ...
+ 'The terminal cost has to be a symmetric positive-semidefinite matrix!');
+
+
+
+% make sure bounds are vectors
+if isscalar(xmin)
+ xmin = xmin*ones(nx,1);
+end
+if isscalar(xmax)
+ xmax = xmax*ones(nx,1);
+end
+if isscalar(umin)
+ umin = umin*ones(nu,1);
+end
+if isscalar(umax)
+ umax = umax*ones(nu,1);
+end
+
+% extract infinity bounds and fix the bounding vector and index vector
+% accordingly
+zmin = [umin; xmin];
+zmax = [umax; xmax];
+lowerBoundIdx = ~isinf([umin; xmin]);
+upperBoundIdx = ~isinf([umax; xmax]);
+
+% check for infeasible bounds
+assert(all(xmax - xmin > 0), 'The given state bounds are infeasible, please make sure that xmax > xmin!');
+[~,degenerateIdx] = find(xmax == xmin, 1);
+if ~isempty(degenerateIdx)
+ warning('The state bounds are degenerate (xmin == xmax for state %i), this can lead to problems when solving the MPC problem!', degenerateIdx);
+end
+
+assert(all(umax - umin > 0), 'The given input bounds are infeasible, please make sure that umax > umin!');
+[~,degenerateIdx] = find(umax == umin, 1);
+if ~isempty(degenerateIdx)
+ warning('The input bounds are degenerate (umin == umax for input %i), this can lead to problems when solving the MPC problem!', degenerateIdx);
+end
+
+% make sure N is given properly
+assert(N >= 1 && isscalar(N) && rem(N,1) == 0, 'The prediction horizon N must be an integer scalar greater than or equal to 1!');
+
+%% Create FORCES multistage form structure
+% assume variable ordering zi = [ui; xi+1] for i=1...N-1
+
+stages = MultistageProblem(N);
+for i = 1:N
+
+ % dimension
+ stages(i).dims.n = nx+nu; % number of stage variables
+ stages(i).dims.r = nx; % number of equality constraints
+ stages(i).dims.l = sum(lowerBoundIdx); % number of lower bounds
+ stages(i).dims.u = sum(upperBoundIdx); % number of upper bounds
+
+ % cost
+ if i1 )
+ stages(i).eq.c = zeros(nx,1);
+ end
+ stages(i).eq.D = [B, -eye(nx)];
+
+end
+params(1) = newParam('minusA_times_x0',1,'eq.c'); % RHS of first eq. constr. is a parameter: z1=-A*x0
+
+
+
+%% define outputs of the solver
+outputs(1) = newOutput('u0',1,1:nu);
+
+%% solver settings
+codeoptions = getOptions(solvername);
+codeoptions.maxit = 50;
+
+% update from user-provided structure
+userFields = fieldnames(userOptions);
+for i = 1:length(userFields)
+ codeoptions.(userFields{i}) = userOptions.(userFields{i});
+end
+
+if ~debug
+ %% generate code
+ generateCode(stages,params,codeoptions,outputs);
+
+ %% construct function handle to call controller
+
+ controller = @(x0)(feval(solvername, struct('minusA_times_x0', -A*x0)));
+
+ fprintf(['\n\n FORCES Pro implemented a fast optimization algorithm to solve your MPC problem for you.\n'...
+ ' A function handle to the controller is returned by this function (%s).\n'...
+ ' To compute the optimal control input, simply call the controller with the current system state x0:\n'...
+ ' >> controller = %s(...);\n'...
+ ' >> [output, exitflag, info] = controller(x0);\n'...
+ '\n' ...
+ ' You can access the optimal control input for the first stage in output.u0.\n' ...
+ ' Always check the exitflag before using output.u0! It will be 1 if the optimal control input could be calculated.\n' ...
+ '\n' ...
+ ' To get information about the underlying solver, type the following:\n' ...
+ ' >> help %s\n' ...
+ '\n Have fun solving your MPC problems (fast)!\n'
+ ], mfilename, mfilename, solvername);
+else
+ controller = [];
+ warning('In debug mode, only returning the structures for FORCES Pro to the user!');
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/CHANGELOG.md b/Yuwen project/FORCES_client/Y2F/CHANGELOG.md
new file mode 100755
index 0000000..caf3a19
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/CHANGELOG.md
@@ -0,0 +1,42 @@
+# Changelog
+
+## 0.1.10
+- Fix a compilation bug under Windows when using the new Azure servers
+
+## 0.1.9
+
+- Added `y2f_version` function that returns currently installed version of Y2F
+
+## 0.1.8
+
+- Fixed compilation for Visual Studio 2015 users
+
+## 0.1.7
+
+- Fixed bug in MEX file compilation on Windows machines
+
+## 0.1.6
+
+- Fixed bug affecting parsing of problems with parameters influencing cost
+
+
+## 0.1.5
+
+- Changed method Y2F uses to store Simulink blocks: All blocks are now stored in a single library that can be accessed from the Simulink Library Browser. If the user re-generates a solver, the Simulink block gets updated automatically.
+
+
+
+## 0.1.4
+
+*skipped*
+
+
+## 0.1.3
+
+- Added basic ADMM example
+- Fixed bug that occurred in Matlab versions < 2014a when generating valid names for solvers
+
+
+## 0.1.2
+
+- Fixed a glitch that caused the build to fail when no solver libs are shipped
diff --git a/Yuwen project/FORCES_client/Y2F/CONTRIBUTING.md b/Yuwen project/FORCES_client/Y2F/CONTRIBUTING.md
new file mode 100755
index 0000000..0b466b9
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/CONTRIBUTING.md
@@ -0,0 +1,82 @@
+Thank you for your interest in contributing to Y2F, a project maintained by embotech ("We" or "Us").
+
+The purpose of this contributor agreement ("Agreement") is to clarify and document the rights granted by contributors to Us. By contributing to the project in any traceable way (pull requests, issues, emails etc.), you agree to these terms.
+
+## 1. DEFINITIONS
+
+"**You**" means the Individual Copyright owner who submits a Contribution to Us. If You are an employee and submit the Contribution as part of your employment, You have had Your employer approve this Agreement or sign the Entity version of this document (see the CONTRIBUTING-entity.md file).
+
+"**Contribution**" means any original work of authorship (software and/or documentation) including any modifications or additions to an existing work, Submitted by You to Us, in which You own the Copyright. If You do not own the Copyright in the entire work of authorship, please contact Us at info@embotech.com.
+
+"**Copyright**" means all rights protecting works of authorship owned or controlled by You, including copyright, moral and neighboring rights, as appropriate, for the full term of their existence including any extensions by You.
+
+"**Material**" means the software or documentation made available by Us to third parties. When this Agreement covers more than one software project, the Material means the software or documentation to which the Contribution was Submitted. After You Submit the Contribution, it may be included in the Material.
+
+"**Submit**" means any form of physical, electronic, or written communication sent to Us, including but not limited to electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Us, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."
+
+"**Submission Date**" means the date You Submit a Contribution to Us.
+
+"**Documentation**" means any non-software portion of a Contribution.
+
+## 2. LICENSE GRANT
+### 2.1 Copyright License to Us
+Subject to the terms and conditions of this Agreement, You hereby grant to Us a worldwide, royalty-free, NON-exclusive, perpetual and irrevocable license, with the right to transfer an unlimited number of non-exclusive licenses or to grant sublicenses to third parties, under the Copyright covering the Contribution to use the Contribution by all means, including, but not limited to:
+
+
to publish the Contribution,
+
to modify the Contribution, to prepare derivative works based upon or containing the Contribution and to combine the Contribution with other software code,
+
to reproduce the Contribution in original or modified form,
+
to distribute, to make the Contribution available to the public, display and publicly perform the Contribution in original or modified form.
+
+
+### 2.2 Moral Rights
+Moral rights remain unaffected to the extent they are recognized and not waivable by applicable law. Notwithstanding, You may add your name in the header of the source code files of Your Contribution and We will respect this attribution when using Your Contribution.
+
+## 3. PATENTS
+### 3.1 Patent License
+
+Subject to the terms and conditions of this Agreement You hereby grant to us a worldwide, royalty-free, non-exclusive,
+perpetual and irrevocable (except as stated in Section 3.2) patent license,
+with the right to transfer an unlimited number of non-exclusive licenses or to grant sublicenses to third parties,
+to make, have made, use, sell, offer for sale, import and otherwise transfer the Contribution and the Contribution in
+combination with the Material (and portions of such combination). This license applies to all patents owned or controlled by
+You, whether already acquired or hereafter acquired, that would be infringed by making, having made, using, selling, offering
+for sale, importing or otherwise transferring of Your Contribution(s) alone or by combination of Your Contribution(s)
+with the Material.
+
+### 3.2 Revocation of Patent License
+You reserve the right to revoke the patent license stated in section 3.1 if we make any infringement claim that is
+targeted at your Contribution and not asserted for a Defensive Purpose. An assertion of claims of the Patents shall be
+considered for a "Defensive Purpose" if the claims are asserted against an entity that has filed, maintained, threatened, or
+voluntarily participated in a patent infringement lawsuit against Us or any of Our licensees.
+
+## 4. DISCLAIMER
+THE CONTRIBUTION IS PROVIDED "AS IS". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US AND BY US TO YOU. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW.
+
+## 5. Consequential Damage Waiver
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU OR US BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING OUT OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT OR OTHERWISE) UPON WHICH THE CLAIM IS BASED.
+
+## 6. Approximation of Disclaimer and Damage Waiver
+IF THE DISCLAIMER AND DAMAGE WAIVER MENTIONED IN SECTION 4 AND SECTION 5 CANNOT BE GIVEN LEGAL EFFECT UNDER APPLICABLE LOCAL LAW,
+REVIEWING COURTS SHALL APPLY LOCAL LAW THAT MOST CLOSELY APPROXIMATES AN ABSOLUTE WAIVER OF ALL CIVIL LIABILITY IN CONNECTION WITH
+THE CONTRIBUTION.
+
+## 7. Term
+**7.1** This Agreement shall come into effect upon Your acceptance of the terms and conditions.
+
+**7.2** In the event of a termination of this Agreement Sections 4, 5, 6, 7 and 8 shall survive such termination and shall remain in
+full force thereafter. For the avoidance of doubt, Contributions that are already licensed under a free and open source license at
+the date of the termination shall remain in full force after the termination of this Agreement.
+
+## 8. Miscellaneous
+**8.1** This Agreement and all disputes, claims, actions, suits or other proceedings arising out of this agreement or relating in any way to it shall be governed by the laws of Switzerland excluding its private international law provisions.
+
+**8.2** This Agreement sets out the entire agreement between You and Us for Your Contributions to Us and overrides all other agreements or
+understandings.
+
+**8.3** If any provision of this Agreement is found void and unenforceable, such provision will be replaced to the extent possible
+with a provision that comes closest to the meaning of the original provision and that is enforceable. The terms and conditions set
+forth in this Agreement shall apply notwithstanding any failure of essential purpose of this Agreement or any limited remedy to the
+maximum extent possible under law.
+
+**8.4** You agree to notify Us of any facts or circumstances of which you become aware that would make this Agreement inaccurate
+in any respect.
diff --git a/Yuwen project/FORCES_client/Y2F/LICENSE b/Yuwen project/FORCES_client/Y2F/LICENSE
new file mode 100755
index 0000000..5dddfd1
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 embotech
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Yuwen project/FORCES_client/Y2F/README.md b/Yuwen project/FORCES_client/Y2F/README.md
new file mode 100755
index 0000000..0d85ac8
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/README.md
@@ -0,0 +1,68 @@
+# Y2F - YALMIP to FORCES Pro Interface
+
+This project provides a simple MATLAB interface that connects [YALMIP](http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Main.WhatIsYALMIP)
+with [FORCES Pro](https://www.embotech.com/FORCES-Pro). It combines YALMIP's intuitiveness with the high efficiency of FORCES Pro for rapid development.
+
+## Installation
+
+Simply download the code to the desired location and add the `Y2F` folder to your [MATLAB search path](http://ch.mathworks.com/help/matlab/ref/addpath.html).
+
+The Y2F interface requires a working YALMIP installation. See [https://yalmip.github.io/tutorial/installation/](https://yalmip.github.io/tutorial/installation/) for instructions on how to install YALMIP.
+
+The code has been tested with YALMIP release 20150919. Older versions might work but have not been tested.
+
+## Example Usage
+
+Consider the following linear MPC problem with lower and upper bounds on state and inputs, and a terminal cost term:
+
+![\begin{aligned}\text{minimize} \quad & x_N^T P x_N + \sum_{i=0}^{N-1} x_i^T Q x_i + u_i^T R u_i \\ \text{s.t.} \quad & x_0 = x(t) \\& x_{i+1} = Ax_i + Bu_i \\& \underline{x} \leq x_i \leq \bar{x} \\& \underline{u} \leq u_i \leq \bar{u}\end{aligned}](example_problem.png)
+
+This problem is parametric in the initial state x(t), and the first input u0 is typically applied to the system after a solution has been obtained. The following code generates a solver that returns u0, which can then be applied to the system:
+
+```
+% Define variables
+X = sdpvar(nx,N+1,'full'); % state trajectory: x0,x1,...,xN (columns of X)
+U = sdpvar(nu,N,'full'); % input trajectory: u0,...,u_{N-1} (columns of U)
+
+% Initialize objective and constraints of the problem
+cost = 0; const = [];
+
+% Assemble MPC formulation
+for i = 1:N
+ % cost
+ if( i < N )
+ cost = cost + 0.5*X(:,i+1)'*Q*X(:,i+1) + 0.5*U(:,i)'*R*U(:,i);
+ else
+ cost = cost + 0.5*X(:,N+1)'*P*X(:,N+1) + 0.5*U(:,N)'*R*U(:,N);
+ end
+
+ % model
+ const = [const, X(:,i+1) == A*X(:,i) + B*U(:,i)];
+
+ % bounds
+ const = [const, umin <= U(:,i) <= umax];
+ const = [const, xmin <= X(:,i+1) <= xmax];
+end
+
+controller = optimizerFORCES(const, cost, codeoptions, X(:,1), U(:,1));
+```
+
+The generated solver can then be called using curly braces:
+
+```
+u0 = controller{x0};
+```
+
+## Limitations
+
+- The Y2F interface only supports convex quadratically constrained programs (QCQPs). FORCES' NLP solver is currently not supported.
+- If you have rate constraints or cost, you need to manually define delta variables (e.g. U+ = U + dU, and then constrain dU). Otherwise, Y2F cannot figure out the multistage structure from your problem, and you might obtain a slow solver.
+
+
+## License
+
+The code is licensed under the MIT License. For more information see LICENSE file.
+
+## Contributing
+
+See [CONTRIBUTING.md](CONTRIBUTING.md) file.
diff --git a/Yuwen project/FORCES_client/Y2F/VERSION b/Yuwen project/FORCES_client/Y2F/VERSION
new file mode 100755
index 0000000..9767cc9
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/VERSION
@@ -0,0 +1 @@
+0.1.10
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/compileSimulinkInterfaceCode.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/compileSimulinkInterfaceCode.m
new file mode 100755
index 0000000..a6bf8ec
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/compileSimulinkInterfaceCode.m
@@ -0,0 +1,102 @@
+function compileSimulinkInterfaceCode( self )
+%COMPILESIMULINKINTERFACECODE Compiles the MEX code generated by
+%GENERATESIMULINKINTERFACECODE. Important: This function has to be called
+%AFTER COMPILESOLVERINTERFACECODE.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+solverName = self.default_codeoptions.name;
+cName = [solverName '/interface/' solverName];
+simulinkName = [solverName '/interface/' solverName '_simulinkBlock'];
+outputName = ['"' solverName '_simulinkBlock"'];
+
+% copy the O-files of all solvers into /interface
+% we'll delete them later, but this makes compilation easier
+for i=1:self.numSolvers
+ if( ~ispc )
+ copyfile(sprintf('%s/obj/%s.o',solverName,self.codeoptions{i}.name), sprintf('%s/interface',solverName), 'f');
+ end
+end
+
+% final MEX build
+if exist( [cName '.c'], 'file' ) && exist( [simulinkName '.c'], 'file' )
+ if( ~exist([solverName '/interface/' solverName '.obj'],'file') )
+ mex('-c','-g','-silent','-outdir',[solverName '/interface'],[cName '.c']) % compile C interface
+ end
+ mex('-c','-g','-silent','-outdir',[solverName '/interface'],[simulinkName '.c']) % compile Simulink interface
+ if( ispc ) % PC - we need additional libraries
+
+ % Create a list of internal solver libraries
+ if( exist([solverName,filesep,'lib'],'dir') )
+ libs = cell(1,self.numSolvers);
+ for i=1:self.numSolvers
+ lib = dir([solverName,filesep,'lib/',self.codeoptions{i}.name,'*.lib']);
+ if length(lib)>1
+ % fix for new server which produces shared and static
+ % libraries, so we have more than 1 library found above
+ lib = dir([solverName,filesep,'lib/',self.codeoptions{i}.name,'_static.lib']);
+ end
+ libs{i} = ['-l' lib.name(1:end-4)];
+ end
+ end
+
+ % figure our whether we need additional libraries indeed (Intel)
+ clientPath = fileparts(which('generateCode'));
+ intelLibsDir = [clientPath,filesep,'libs_intel'];
+ if( exist( intelLibsDir, 'dir' ) )
+ intelLibsDirFlag = ['-L', intelLibsDir];
+ addpath(intelLibsDir); savepath;
+ else
+ intelLibsDirFlag = '';
+ end
+
+ % Figure out whether we need legacy libraries for Visual Studio
+ try
+ thisCompiler = mex.getCompilerConfigurations('C','Selected');
+ mexcomp.name = thisCompiler(1).Name;
+ mexcomp.ver = thisCompiler(1).Version;
+ mexcomp.vendor = thisCompiler(1).Manufacturer;
+ catch
+ mexcomp = [];
+ end
+ if( ~isempty(mexcomp) ...
+ && ~isempty(strfind(mexcomp.vendor,'Microsoft')) ...
+ && str2double(mexcomp.ver) >= 14.0 )
+ legacyLibs = '-llegacy_stdio_definitions';
+ else
+ legacyLibs = '';
+ end
+
+ % Call mex compiler
+ if( exist([solverName,filesep,'lib'],'dir') )
+ mex([solverName '/interface/' solverName '.obj'], ...
+ [solverName '/interface/' solverName '_simulinkBlock.obj'], ...
+ '-output', outputName, ...
+ ['-L' solverName '/lib'], libs{:}, intelLibsDirFlag, ...
+ '-ldecimal', '-lirc', '-lmmt', '-lsvml_dispmt', ...
+ legacyLibs, '-lIPHLPAPI.lib', '-largeArrayDims','-silent');
+ else
+ % it seems that we have been compiling with VS only,
+ % so we do not add the Intel libs and use only object files
+ mex([solverName, '/interface/' solverName '.obj'], ...
+ [solverName, '/interface/' solverName '_simulinkBlock.obj'], ...
+ [solverName '/obj/*.obj'], '-lIPHLPAPI.lib', legacyLibs, ...
+ '-output', [outputName(2:end-1),'.',mexext],'-silent');
+ end
+ % delete([solverName '/interface/*.obj']);
+ elseif( ismac )
+ mex([solverName '/interface/*.o'], '-output', outputName, '-silent')
+ delete([solverName '/interface/*.o']);
+ else % we're on a linux system
+ mex([solverName '/interface/*.o'], '-output', outputName,'-lrt', '-silent')
+ delete([solverName '/interface/*.o']);
+ end
+else
+ fprintf('Could not find source file. This file is meant to be used for building from source code.');
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/compileSolverInterfaceCode.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/compileSolverInterfaceCode.m
new file mode 100755
index 0000000..58a61b3
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/compileSolverInterfaceCode.m
@@ -0,0 +1,139 @@
+function compileSolverInterfaceCode( self )
+%COMPILESOLVERINTERFACECODE Compiles the MEX code generated by
+%GENERATECINTERFACECODE and GENERATEMEXINTERFACECODE.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+solverName = self.default_codeoptions.name;
+cName = [solverName '/interface/' solverName];
+mexName = [solverName '/interface/' solverName '_mex'];
+outputName = ['"' solverName '"'];
+
+% move the (necessary) files of all solvers to the new directory and delete
+% the folders of the "internal" solvers
+for i=1:self.numSolvers
+ % include
+ dir2move = sprintf('%s/include',self.codeoptions{i}.name);
+ if( exist(dir2move,'dir') )
+ copyfile(dir2move, sprintf('%s/include',solverName), 'f');
+ end
+ % lib
+ dir2move = sprintf('%s/lib',self.codeoptions{i}.name);
+ if( exist(dir2move,'dir') )
+ copyfile(dir2move, sprintf('%s/lib',solverName), 'f');
+ end
+ % obj
+ dir2move = sprintf('%s/obj',self.codeoptions{i}.name);
+ if( exist(dir2move,'dir') )
+ copyfile(dir2move, sprintf('%s/obj',solverName), 'f');
+ end
+ % src
+ dir2move = sprintf('%s/src',self.codeoptions{i}.name);
+ if exist(dir2move,'dir')
+ copyfile(dir2move, sprintf('%s/src',solverName), 'f');
+ end
+ % obj_target
+ dir2move = sprintf('%s/obj_target',self.codeoptions{i}.name);
+ if exist(dir2move,'dir')
+ copyfile(dir2move, sprintf('%s/obj_target',solverName), 'f');
+ end
+ % lib_target
+ dir2move = sprintf('%s/lib_target',self.codeoptions{i}.name);
+ if exist(dir2move,'dir')
+ copyfile(dir2move, sprintf('%s/lib_target',solverName), 'f');
+ end
+
+ % Delete files
+ rmdir(self.codeoptions{i}.name, 's');
+ delete([self.codeoptions{i}.name '*']);
+end
+
+% copy the O-files of all solvers into /interface
+% we'll delete them later, but this makes compilation easier
+for i=1:self.numSolvers
+ if( ~ispc )
+ copyfile(sprintf('%s/obj/%s.o',solverName,self.codeoptions{i}.name), sprintf('%s/interface',solverName), 'f');
+ end
+end
+
+% final MEX build
+if exist( [cName '.c'], 'file' ) && exist( [mexName '.c'], 'file' )
+ mex('-c','-g','-silent','-outdir',[solverName '/interface'],[cName '.c']) % compiles C interface
+ mex('-c','-g','-silent','-outdir',[solverName '/interface'],[mexName '.c']) % compiles MEX interface
+
+ if( ispc ) % PC - we need additional libraries
+
+ % Create a list of internal solver libraries
+ if( exist([solverName,filesep,'lib'],'dir') )
+ libs = cell(1,self.numSolvers);
+ for i=1:self.numSolvers
+ lib = dir([solverName,filesep,'lib/',self.codeoptions{i}.name,'*.lib']);
+ if length(lib)>1
+ % fix for new server which produces shared and static
+ % libraries, so we have more than 1 library found above
+ lib = dir([solverName,filesep,'lib/',self.codeoptions{i}.name,'_static.lib']);
+ end
+ libs{i} = ['-l' lib.name(1:end-4)];
+ end
+ end
+
+ % figure our whether we need additional libraries for Intel
+ clientPath = fileparts(which('generateCode'));
+ intelLibsDir = [clientPath,filesep,'libs_intel'];
+ if( exist( intelLibsDir, 'dir' ) )
+ intelLibsDirFlag = ['-L', intelLibsDir];
+ addpath(intelLibsDir); savepath;
+ else
+ intelLibsDirFlag = '';
+ end
+
+ % Figure out whether we need legacy libraries for Visual Studio
+ try
+ thisCompiler = mex.getCompilerConfigurations('C','Selected');
+ mexcomp.name = thisCompiler(1).Name;
+ mexcomp.ver = thisCompiler(1).Version;
+ mexcomp.vendor = thisCompiler(1).Manufacturer;
+ catch
+ mexcomp = [];
+ end
+ if( ~isempty(mexcomp) ...
+ && ~isempty(strfind(mexcomp.vendor,'Microsoft')) ...
+ && str2double(mexcomp.ver) >= 14.0 )
+ legacyLibs = '-llegacy_stdio_definitions';
+ else
+ legacyLibs = '';
+ end
+
+ % Call mex compiler
+ if( exist([solverName,filesep,'lib'],'dir') )
+ mex([solverName '/interface/' solverName '.obj'], ...
+ [solverName '/interface/' solverName '_mex.obj'], ...
+ '-output', outputName, ...
+ ['-L' solverName '/lib'], libs{:}, intelLibsDirFlag, ...
+ '-ldecimal', '-lirc', '-lmmt', '-lsvml_dispmt', ...
+ legacyLibs, '-lIPHLPAPI.lib', '-largeArrayDims', '-silent');
+ else
+ % it seems that we have been compiling with VS only,
+ % so we do not add the Intel libs and use only object files
+ mex([solverName, '/interface/' solverName '.obj'], ...
+ [solverName, '/interface/' solverName '_mex.obj'], ...
+ [solverName '/obj/*.obj'], '-lIPHLPAPI.lib', legacyLibs, ...
+ '-output', [outputName(2:end-1),'.',mexext], '-silent');
+ end
+ % delete([solverName '/interface/*.obj']);
+ elseif( ismac )
+ mex([solverName '/interface/*.o'], '-output', outputName, '-silent')
+ delete([solverName '/interface/*.o']);
+ else % we're on a linux system
+ mex([solverName '/interface/*.o'], '-output', outputName,'-lrt', '-silent')
+ delete([solverName '/interface/*.o']);
+ end
+else
+ fprintf('Could not find source file. This file is meant to be used for building from source code.');
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateCInterfaceCode.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateCInterfaceCode.m
new file mode 100755
index 0000000..6dccdcd
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateCInterfaceCode.m
@@ -0,0 +1,526 @@
+function success = generateCInterfaceCode( self )
+%GENERATECINTERFACECODE generates C code that will prepare the user-defined
+%parameters for the FORCES solver. It also assembles the correct outputs.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+success = 0;
+
+% Get solver name from option
+solverName = self.default_codeoptions.name;
+
+% Check if FORCES solver has been generated
+if ~isdir(self.codeoptions{1}.name) && ~isdir(solverName)
+ error('Solver ''%s'' has not been generated!', solverName)
+end
+
+% Make directories
+if ~isdir(solverName)
+ mkdir(solverName)
+end
+if ~isdir([solverName '/interface'])
+ mkdir([solverName '/interface'])
+end
+if ~isdir([solverName '/include'])
+ mkdir([solverName '/include'])
+end
+if ~isdir([solverName '/solvers'])
+ mkdir([solverName '/solvers'])
+end
+
+% % Move "internal" solver(s) to new directory ("hide" them from the user)
+% for i=1:self.numSolvers
+% copyfile(self.codeoptions{i}.name, [solverName '/solvers/' self.codeoptions{i}.name]);
+% end
+
+% Remove "internal" solver(s)
+% for i=1:self.numSolvers
+% FORCEScleanup(self.codeoptions{i}.name, 'all');
+% end
+
+
+% Create files
+hFileID = fopen([solverName '/include/' solverName '.h'],'w');
+cFileID = fopen([solverName '/interface/' solverName '.c'],'w');
+
+% Create h file
+fprintf(hFileID, '/*\nHeader file containing definitions for C interface of %s,\n', solverName);
+fprintf(hFileID, ' a fast costumized optimization solver.\n*/\n\n');
+
+fprintf(hFileID, '#include \n\n');
+
+fprintf(hFileID, '#ifndef __%s_H__\n',solverName);
+fprintf(hFileID, '#define __%s_H__\n\n',solverName);
+
+% Visual Studio 2015 Compatibility
+fprintf(hFileID, '/* For Visual Studio 2015 Compatibility */\n');
+fprintf(hFileID, '#if _MSC_VER == 1900\n');
+fprintf(hFileID, 'FILE * __cdecl __iob_func(void);\n');
+fprintf(hFileID, '#endif\n');
+
+fprintf(hFileID, '/* DATA TYPE ------------------------------------------------------------*/\n');
+fprintf(hFileID, 'typedef double %s_FLOAT;\n\n',solverName);
+
+%fprintf(hFileID, 'typedef double %sINTERFACE_FLOAT;\n\n',solverName);
+
+fprintf(hFileID, '/* SOLVER SETTINGS ------------------------------------------------------*/\n');
+fprintf(hFileID, '/* print level */\n');
+fprintf(hFileID, '#ifndef %s_SET_PRINTLEVEL\n', solverName);
+fprintf(hFileID, '#define %s_SET_PRINTLEVEL (%u)\n', solverName, self.default_codeoptions.printlevel);
+fprintf(hFileID, '#endif\n\n');
+
+fprintf(hFileID, '/* PARAMETERS -----------------------------------------------------------*/\n');
+fprintf(hFileID, '/* fill this with data before calling the solver! */\n');
+fprintf(hFileID, 'typedef struct %s_params\n',solverName);
+fprintf(hFileID, '{\n');
+
+for i=1:self.numParams
+ if self.paramSizes(i,1) == 1 && self.paramSizes(i,2) == 1 % scalar parameter
+ fprintf(hFileID, '\t/* scalar */\n');
+ elseif self.paramSizes(i,1) == 1 % row vector
+ fprintf(hFileID, '\t/* row vector of length %u */\n',self.paramSizes(i,2));
+ elseif self.paramSizes(i,2) == 1 % column vector
+ fprintf(hFileID, '\t/* column vector of length %u */\n',self.paramSizes(i,1));
+ else
+ fprintf(hFileID, '\t/* matrix of size [%u x %u] (column major format) */\n',self.paramSizes(i,1),self.paramSizes(i,2));
+ end
+ fprintf(hFileID, '\t%s_FLOAT %s[%u];\n\n',solverName,self.paramNames{i},prod(self.paramSizes(i,:)));
+end
+
+fprintf(hFileID, '} %s_params;\n\n\n',solverName);
+
+
+fprintf(hFileID, '/* OUTPUTS --------------------------------------------------------------*/\n');
+fprintf(hFileID, '/* the desired variables are put here by the solver */\n');
+fprintf(hFileID, 'typedef struct %s_output\n',solverName);
+fprintf(hFileID, '{\n');
+
+for i=1:numel(self.outputSize)
+ if self.outputSize{i}(1) == 1 && self.outputSize{i}(2) == 1 % scalar parameter
+ fprintf(hFileID, '\t/* scalar */\n');
+ elseif self.outputSize{i}(1) == 1 % row vector
+ fprintf(hFileID, '\t/* row vector of length %u */\n',self.outputSize{i}(2));
+ elseif self.outputSize{i}(2) == 1 % column vector
+ fprintf(hFileID, '\t/* column vector of length %u */\n',self.outputSize{i}(1));
+ else
+ fprintf(hFileID, '\t/* matrix of size [%u x %u] (column major format) */\n',self.outputSize{i}(1),self.outputSize{i}(2));
+ end
+ fprintf(hFileID, '\t%s_FLOAT %s[%u];\n\n',solverName,self.outputNames{i},prod(self.outputSize{i}));
+end
+
+fprintf(hFileID, '} %s_output;\n\n\n',solverName);
+
+% Solver info (contains arrays if multiple solvers are used)
+if self.numSolvers == 1
+ fprintf(hFileID, '/* SOLVER INFO ----------------------------------------------------------*/\n');
+ fprintf(hFileID, '/* diagnostic data from last interior point step */\n');
+ fprintf(hFileID, 'typedef struct %s_info\n',solverName);
+ fprintf(hFileID, '{\n');
+
+ fprintf(hFileID, '\t/* iteration number */\n');
+ fprintf(hFileID, '\tint it;\n\n');
+
+ fprintf(hFileID, '\t/* number of iterations needed to optimality (branch-and-bound) */\n');
+ fprintf(hFileID, '\tint it2opt;\n\n');
+
+ fprintf(hFileID, '\t/* inf-norm of equality constraint residuals */\n');
+ fprintf(hFileID, '\t%s_FLOAT res_eq;\n\n',solverName);
+
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % extra field for ADMM
+ fprintf(hFileID, '\t/* inf-norm of dual residual */\n');
+ fprintf(hFileID, '\t%s_FLOAT res_dual;\n\n',solverName);
+ else % not for ADMM
+ fprintf(hFileID, '\t/* inf-norm of inequality constraint residuals */\n');
+ fprintf(hFileID, '\t%s_FLOAT res_ineq;\n\n',solverName);
+ end
+
+ fprintf(hFileID, '\t/* primal objective */\n');
+ fprintf(hFileID, '\t%s_FLOAT pobj;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* dual objective */\n');
+ fprintf(hFileID, '\t%s_FLOAT dobj;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* duality gap := pobj - dobj */\n');
+ fprintf(hFileID, '\t%s_FLOAT dgap;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* relative duality gap := |dgap / pobj | */\n');
+ fprintf(hFileID, '\t%s_FLOAT rdgap;\n\n',solverName);
+
+ if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(hFileID, '\t/* duality measure */\n');
+ fprintf(hFileID, '\t%s_FLOAT mu;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* duality measure (after affine step) */\n');
+ fprintf(hFileID, '\t%s_FLOAT mu_aff;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* centering parameter */\n');
+ fprintf(hFileID, '\t%s_FLOAT sigma;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* number of backtracking line search steps (affine direction) */\n');
+ fprintf(hFileID, '\tint lsit_aff;\n\n');
+
+ fprintf(hFileID, '\t/* number of backtracking line search steps (combined direction) */\n');
+ fprintf(hFileID, '\tint lsit_cc;\n\n');
+
+ fprintf(hFileID, '\t/* step size (affine direction) */\n');
+ fprintf(hFileID, '\t%s_FLOAT step_aff;\n\n',solverName);
+
+ fprintf(hFileID, '\t/* step size (combined direction) */\n');
+ fprintf(hFileID, '\t%s_FLOAT step_cc;\n\n',solverName);
+ end
+
+ fprintf(hFileID, '\t/* solvertime */\n');
+ fprintf(hFileID, '\t%s_FLOAT solvetime;\n\n',solverName);
+
+ fprintf(hFileID, '} %s_info;\n\n\n',solverName);
+else
+ fprintf(hFileID, '/* SOLVER INFO ----------------------------------------------------------*/\n');
+ fprintf(hFileID, '/* diagnostic data from last interior point step for every solver */\n');
+ fprintf(hFileID, '/* (in total %u solvers are used) */\n',self.numSolvers);
+ fprintf(hFileID, 'typedef struct %s_info\n',solverName);
+ fprintf(hFileID, '{\n');
+
+ fprintf(hFileID, '\t/* iteration number */\n');
+ fprintf(hFileID, '\tint it[%u];\n\n',self.numSolvers);
+
+ fprintf(hFileID, '\t/* number of iterations needed to optimality (branch-and-bound) */\n');
+ fprintf(hFileID, '\tint it2opt[%u];\n\n',self.numSolvers);
+
+ fprintf(hFileID, '\t/* inf-norm of equality constraint residuals */\n');
+ fprintf(hFileID, '\t%s_FLOAT res_eq[%u];\n\n',solverName,self.numSolvers);
+
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % extra field for ADMM
+ fprintf(hFileID, '\t/* inf-norm of inequality constraint residuals */\n');
+ fprintf(hFileID, '\t%s_FLOAT res_dual[%u];\n\n',solverName,self.numSolvers);
+ else % not for ADMM
+ fprintf(hFileID, '\t/* inf-norm of inequality constraint residuals */\n');
+ fprintf(hFileID, '\t%s_FLOAT res_ineq[%u];\n\n',solverName,self.numSolvers);
+ end
+
+ fprintf(hFileID, '\t/* primal objective */\n');
+ fprintf(hFileID, '\t%s_FLOAT pobj[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* dual objective */\n');
+ fprintf(hFileID, '\t%s_FLOAT dobj[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* duality gap := pobj - dobj */\n');
+ fprintf(hFileID, '\t%s_FLOAT dgap[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* relative duality gap := |dgap / pobj | */\n');
+ fprintf(hFileID, '\t%s_FLOAT rdgap[%u];\n\n',solverName,self.numSolvers);
+
+ if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(hFileID, '\t/* duality measure */\n');
+ fprintf(hFileID, '\t%s_FLOAT mu[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* duality measure (after affine step) */\n');
+ fprintf(hFileID, '\t%s_FLOAT mu_aff[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* centering parameter */\n');
+ fprintf(hFileID, '\t%s_FLOAT sigma[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* number of backtracking line search steps (affine direction) */\n');
+ fprintf(hFileID, '\tint lsit_aff[%u];\n\n',self.numSolvers);
+
+ fprintf(hFileID, '\t/* number of backtracking line search steps (combined direction) */\n');
+ fprintf(hFileID, '\tint lsit_cc[%u];\n\n',self.numSolvers);
+
+ fprintf(hFileID, '\t/* step size (affine direction) */\n');
+ fprintf(hFileID, '\t%s_FLOAT step_aff[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '\t/* step size (combined direction) */\n');
+ fprintf(hFileID, '\t%s_FLOAT step_cc[%u];\n\n',solverName,self.numSolvers);
+ end
+
+ fprintf(hFileID, '\t/* solvertime */\n');
+ fprintf(hFileID, '\t%s_FLOAT solvetime[%u];\n\n',solverName,self.numSolvers);
+
+ fprintf(hFileID, '} %s_info;\n\n\n',solverName);
+end
+
+% Solver function
+fprintf(hFileID, '/* SOLVER FUNCTION DEFINITION -------------------------------------------*/\n');
+if self.numSolvers == 1
+ fprintf(hFileID, '/* examine exitflag before using the result! */\n');
+ fprintf(hFileID, 'int %s_solve(%s_params* params, %s_output* output, %s_info* info, FILE* fs);\n\n', solverName, solverName, solverName, solverName);
+else
+ fprintf(hFileID, '/* examine all of the %u exitflags before using the result! */\n', self.numSolvers);
+ fprintf(hFileID, 'int* %s_solve(%s_params* params, %s_output* output, %s_info* info, FILE* fs);\n\n', solverName, solverName, solverName, solverName);
+end
+
+fprintf(hFileID, '#endif\n');
+
+% Close h-file
+fclose(hFileID);
+
+% Write standard comment
+fprintf(cFileID, '/*\n This is an interface for %s that ',solverName);
+fprintf(cFileID, 'can be used to call the solver generated by FORCES Pro\n');
+fprintf(cFileID, '*/ \n\n');
+
+fprintf(cFileID, '#include "../include/%s.h"\n',solverName);
+for k=1:self.numSolvers
+ fprintf(cFileID, '#include "../include/%s.h"\n',self.codeoptions{k}.name);
+end
+fprintf(cFileID, '#include \n\n');
+
+% Visual Studio 2015 Compatibility
+fprintf(cFileID, '/* For Visual Studio 2015 Compatibility */\n');
+fprintf(cFileID, '#if _MSC_VER == 1900\n');
+fprintf(cFileID, 'FILE _iob[3];\n');
+fprintf(cFileID, 'FILE * __cdecl __iob_func(void)\n');
+fprintf(cFileID, '{\n');
+fprintf(cFileID, ' _iob[0] = *stdin;\n');
+fprintf(cFileID, ' _iob[1] = *stdout;\n');
+fprintf(cFileID, ' _iob[2] = *stderr;\n');
+fprintf(cFileID, ' return _iob;\n');
+fprintf(cFileID, '}\n');
+fprintf(cFileID, '#endif\n\n');
+
+% Arguments for solver(s)
+fprintf(cFileID, '/* Some memory */\n');
+for k=1:self.numSolvers
+ if ~self.solverIsBinary(k) % no binary variables
+ fprintf(cFileID, '%s_params params_%u;\n',self.codeoptions{k}.name,k);
+ fprintf(cFileID, '%s_output output_%u;\n',self.codeoptions{k}.name,k);
+ fprintf(cFileID, '%s_info info_%u;\n\n',self.codeoptions{k}.name,k);
+ else
+ fprintf(cFileID, '%s_binaryparams params_%u;\n',self.codeoptions{k}.name,k);
+ fprintf(cFileID, '%s_binaryoutput output_%u;\n',self.codeoptions{k}.name,k);
+ fprintf(cFileID, '%s_info info_%u;\n\n',self.codeoptions{k}.name,k);
+ end
+end
+if self.numSolvers == 1
+ fprintf(cFileID, 'int exitflag;\n');
+else
+ fprintf(cFileID, 'int exitflag[%u];\n',self.numSolvers);
+end
+
+% Start of interface function
+if self.numSolvers == 1
+ fprintf(cFileID, 'int %s_solve(%s_params* params, %s_output* output, %s_info* info, FILE* fs) {\n', solverName, solverName, solverName, solverName);
+else
+ fprintf(cFileID, 'int* %s_solve(%s_params* params, %s_output* output, %s_info* info, FILE* fs) {\n', solverName, solverName, solverName, solverName);
+end
+
+fprintf(cFileID, '\t/* define variables */\n');
+fprintf(cFileID, '\tint i;\n');
+
+% We need managment code for every solver
+for k=1:self.numSolvers
+ fprintf(cFileID, '\t/* SOLVER %u --------------------------------------------------------*/\n',k);
+
+ fprintf(cFileID, '\t/*Assigning parameter values of solver #%u*/\n',k);
+ solverName = self.codeoptions{k}.name;
+
+ % Set FORCES parameter values
+ fprintf(cFileID, '\t/*Assigning parameter values of solver #%u*/\n',k);
+ if self.solverHasParams(k) % otherwise there is fake one
+ problem = self.standardParamValues{k};
+ fields = fieldnames(problem);
+ % Go through all parameters (fields contains p_1, p_2, ...)
+ for i=1:numel(fields)
+ paramMap = self.forcesParamMap{k}.(fields{i});
+ % Go through all elements of this parameter
+ for j=1:numel(problem.(fields{i}))
+ ps = find(paramMap(1,:) == j); % all relevant param map entries
+ if isempty(ps)
+ % Load standard value
+ fprintf(cFileID, '\tparams_%u.%s[%u] = %.15g;\n',k,fields{i},j-1,problem.(fields{i})(j));
+ else
+ if abs(problem.(fields{i})(j)) > 1e-15 % only print standard value if it's not 0
+ fprintf(cFileID, '\tparams_%u.%s[%u] = %.15g',k,fields{i},j-1,problem.(fields{i})(j)); % print std value
+
+ % Add additive parameters
+ for p=ps
+ factor = paramMap(2,p);
+ valueMatrix = paramMap(3,p);
+ valueIndex = paramMap(4,p);
+ fprintf(cFileID, ' + %.15g * params->%s[%u]',factor,self.paramNames{valueMatrix},valueIndex-1);
+ end
+ fprintf(cFileID, ';\n');
+ else
+ % print first additive param
+ factor = paramMap(2,ps(1));
+ valueMatrix = paramMap(3,ps(1));
+ valueIndex = paramMap(4,ps(1));
+ fprintf(cFileID, '\tparams_%u.%s[%u] = %.15g * params->%s[%u]',k,fields{i},j-1,factor,self.paramNames{valueMatrix},valueIndex-1);
+ % Add other additive parameters
+ for p=ps(2:end)
+ factor = paramMap(2,p);
+ valueMatrix = paramMap(3,p);
+ valueIndex = paramMap(4,p);
+ fprintf(cFileID, ' + %.15g * params->%s[%u]',factor,self.paramNames{valueMatrix},valueIndex-1);
+ end
+ fprintf(cFileID, ';\n');
+ end
+ end
+ end
+ fprintf(cFileID, '\n');
+ end
+ else % we need the value of the fake parameter
+ for i=1:numel(self.standardParamValues{k})
+ fprintf(cFileID, '\tparams_%u.p[%u] = %.15g;\n',k,i-1,self.standardParamValues{k}(i));
+ end
+ end
+
+ fprintf(cFileID, '\t/* call solver #%u */\n',k);
+ if self.numSolvers == 1
+ fprintf(cFileID, '\texitflag = %s_solve(¶ms_%u, &output_%u, &info_%u, fs );\n\n',solverName,k,k,k);
+ else
+ fprintf(cFileID, '\texitflag[%u] = %s_solve(¶ms_%u, &output_%u, &info_%u, fs );\n\n',k-1,solverName,k,k,k);
+ end
+
+ % Diagnostics
+ if self.numSolvers == 1
+ fprintf(cFileID, '\t/* iterations */\n');
+ fprintf(cFileID, '\tinfo->it = info_%u.it;\n\n',k);
+
+ fprintf(cFileID, '\t/* iterations to optimality (branch and bound) */\n');
+ fprintf(cFileID, '\tinfo->it2opt = info_%u.it2opt;\n\n',k);
+
+ fprintf(cFileID, '\t/* res_eq */\n');
+ fprintf(cFileID, '\tinfo->res_eq = info_%u.res_eq;\n\n',k);
+
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % extra field for ADMM
+ fprintf(cFileID, '\t/* res_dual */\n');
+ fprintf(cFileID, '\tinfo->res_dual = info_%u.res_dual;\n\n',k);
+ else % not for ADMM
+ fprintf(cFileID, '\t/* res_ineq */\n');
+ fprintf(cFileID, '\tinfo->res_ineq = info_%u.res_ineq;\n\n',k);
+ end
+
+ fprintf(cFileID, '\t/* pobj */\n');
+ fprintf(cFileID, '\tinfo->pobj = info_%u.pobj;\n\n',k);
+
+ fprintf(cFileID, '\t/* dobj */\n');
+ fprintf(cFileID, '\tinfo->dobj = info_%u.dobj;\n\n',k);
+
+ fprintf(cFileID, '\t/* dgap */\n');
+ fprintf(cFileID, '\tinfo->dgap = info_%u.dgap;\n\n',k);
+
+ fprintf(cFileID, '\t/* rdgap */\n');
+ fprintf(cFileID, '\tinfo->rdgap = info_%u.rdgap;\n\n',k);
+
+ if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(cFileID, '\t/* mu */\n');
+ fprintf(cFileID, '\tinfo->mu = info_%u.mu;\n\n',k);
+
+ fprintf(cFileID, '\t/* mu_aff */\n');
+ fprintf(cFileID, '\tinfo->mu_aff = info_%u.mu_aff;\n\n',k);
+
+ fprintf(cFileID, '\t/* sigma */\n');
+ fprintf(cFileID, '\tinfo->sigma = info_%u.sigma;\n\n',k);
+
+ fprintf(cFileID, '\t/* lsit_aff */\n\n');
+ fprintf(cFileID, '\tinfo->lsit_aff = info_%u.lsit_aff;\n\n',k);
+
+ fprintf(cFileID, '\t/* lsit_cc */\n');
+ fprintf(cFileID, '\tinfo->lsit_cc = info_%u.lsit_cc;\n\n',k);
+
+ fprintf(cFileID, '\t/* step_aff */\n');
+ fprintf(cFileID, '\tinfo->step_aff = info_%u.step_aff;\n\n',k);
+
+ fprintf(cFileID, '\t/* step_cc */\n');
+ fprintf(cFileID, '\tinfo->step_cc = info_%u.step_cc;\n\n',k);
+ end
+
+ fprintf(cFileID, '\t/* solver time */\n');
+ fprintf(cFileID, '\tinfo->solvetime = info_%u.solvetime;\n\n\n',k);
+ else
+ fprintf(cFileID, '\t/* iterations */\n');
+ fprintf(cFileID, '\tinfo->it[%u] = info_%u.it;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* iterations to optimality (branch and bound) */\n');
+ fprintf(cFileID, '\tinfo->it2opt[%u] = info_%u.it2opt;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* res_eq */\n');
+ fprintf(cFileID, '\tinfo->res_eq[%u] = info_%u.res_eq;\n\n',k-1,k);
+
+
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % extra field for ADMM
+ fprintf(cFileID, '\t/* res_ineq */\n');
+ fprintf(cFileID, '\tinfo->res_dual[%u] = info_%u.res_dual;\n\n',k-1,k);
+ else % not for ADMM
+ fprintf(cFileID, '\t/* res_ineq */\n');
+ fprintf(cFileID, '\tinfo->res_ineq[%u] = info_%u.res_ineq;\n\n',k-1,k);
+ end
+
+ fprintf(cFileID, '\t/* pobj */\n');
+ fprintf(cFileID, '\tinfo->pobj[%u] = info_%u.pobj;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* dobj */\n');
+ fprintf(cFileID, '\tinfo->dobj[%u] = info_%u.dobj;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* dgap */\n');
+ fprintf(cFileID, '\tinfo->dgap[%u] = info_%u.dgap;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* rdgap */\n');
+ fprintf(cFileID, '\tinfo->rdgap[%u] = info_%u.rdgap;\n\n',k-1,k);
+
+ if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(cFileID, '\t/* mu */\n');
+ fprintf(cFileID, '\tinfo->mu[%u] = info_%u.mu;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* mu_aff */\n');
+ fprintf(cFileID, '\tinfo->mu_aff[%u] = info_%u.mu_aff;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* sigma */\n');
+ fprintf(cFileID, '\tinfo->sigma[%u] = info_%u.sigma;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* lsit_aff */\n');
+ fprintf(cFileID, '\tinfo->lsit_aff[%u] = info_%u.lsit_aff;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* lsit_cc */\n');
+ fprintf(cFileID, '\tinfo->lsit_cc[%u] = info_%u.lsit_cc;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* step_aff */\n');
+ fprintf(cFileID, '\tinfo->step_aff[%u] = info_%u.step_aff;\n\n',k-1,k);
+
+ fprintf(cFileID, '\t/* step_cc */\n');
+ fprintf(cFileID, '\tinfo->step_cc[%u] = info_%u.step_cc;\n\n',k-1,k);
+ end
+
+ fprintf(cFileID, '\t/* solver time */\n');
+ fprintf(cFileID, '\tinfo->solvetime[%u] = info_%u.solvetime;\n\n\n',k-1,k);
+ end
+end
+
+% Put outputs together
+fprintf(cFileID, '\t/* OUTPUTS -----------------------------------------------------------*/\n');
+fprintf(cFileID, '\t/*Build outputs*/\n');
+mapOffset = 0; % needed for outputMap
+for i=1:numel(self.outputBase) % every output has a base
+ base = self.outputBase{i};
+ for j=1:size(base,1) % elements (decision var or parameters) needed for this output
+ fprintf(cFileID, '\toutput->%s[%u] = %.15g',self.outputNames{i},j-1,base(j,1));
+ idx = find(base(j,2:end)); % index of necessary elements inside outputMap (plus offset)
+ for k=idx
+ if self.outputMap(1,k+mapOffset) == 1
+ fprintf(cFileID, ' + %.15g * output_%u.o_%u[0]',base(j,k+1),self.outputMap(2,k+mapOffset),self.outputMap(3,k+mapOffset));
+ elseif self.outputMap(1,k+mapOffset) == 2
+ fprintf(cFileID, ' + %.15g * params->%s[%u]',base(j,k+1),self.paramNames{self.outputMap(2,k+mapOffset)},self.outputMap(3,k+mapOffset)-1);
+ else
+ error('Unknown output variable type');
+ end
+ end
+
+ fprintf(cFileID, ';\n\n\n');
+ end
+ mapOffset = mapOffset + size(base,1);
+end
+
+
+fprintf(cFileID, '\treturn exitflag;\n');
+fprintf(cFileID, '}'); % end of mex-function
+
+% Don't forget to close C file
+fclose(cFileID);
+
+success = 1;
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateHelp.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateHelp.m
new file mode 100755
index 0000000..4dddb33
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateHelp.m
@@ -0,0 +1,128 @@
+function success = generateHelp( self )
+%GENERATEHELP generates an m-file containing a description of the solver
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+success = 0;
+
+% Get solver name from option
+solverName = self.default_codeoptions.name;
+
+% Create file
+mFileID = fopen([solverName '.m'],'w');
+
+% Write documentation
+fprintf(mFileID, '%% %s - a fast optimizer generated by FORCES Pro through Y2F\n',solverName); % TODO interior point??
+
+% More than one internal solver --> say that!
+if self.numSolvers > 1
+ fprintf(mFileID, '%%\n');
+ fprintf(mFileID, '%% %s was generated based on a separable problem.',solverName);
+ fprintf(mFileID, '%% Internally, %u separate solver are used.\n',self.numSolvers);
+end
+
+% Parameter description
+fprintf(mFileID, '%%\n');
+fprintf(mFileID, '%% OUTPUT = %s(PARAMS) solves a multistage problem\n',solverName);
+fprintf(mFileID, '%% subject to the parameters supplied in a cell array with the following elements:\n');
+
+for i=1:self.numParams
+ if self.paramSizes(i,1) == 1 && self.paramSizes(i,2) == 1 % scalar parameter
+ fprintf(mFileID, '%% PARAMS{%u} is %s (a scalar)\n',i,self.paramNames{i});
+ elseif self.paramSizes(i,1) == 1 % row vector
+ fprintf(mFileID, '%% PARAMS{%u} is %s (row vector of length %u)\n',i,self.paramNames{i},self.paramSizes(i,2));
+ elseif self.paramSizes(i,2) == 1 % column vector
+ fprintf(mFileID, '%% PARAMS{%u} is %s (column vector of length %u)\n',i,self.paramNames{i},self.paramSizes(i,1));
+ else
+ fprintf(mFileID, '%% PARAMS{%u} is %s (matrix of size [%u x %u])\n',i,self.paramNames{i},self.paramSizes(i,1),self.paramSizes(i,2));
+ end
+end
+
+% Ouput description
+fprintf(mFileID, '%%\n');
+fprintf(mFileID, '%% OUTPUT is a cell array containg the values of the last iteration of the solver where\n');
+
+for i=1:numel(self.outputSize)
+ if self.outputSize{i}(1) == 1 && self.outputSize{i}(2) == 1 % scalar output
+ fprintf(mFileID, '%% OUTPUT{%u} is %s (a scalar)\n',i,self.outputNames{i});
+ elseif self.outputSize{i}(1) == 1 % row vector
+ fprintf(mFileID, '%% OUTPUT{%u} is %s (row vector of length %u)\n',i,self.outputNames{i},self.outputSize{i}(2));
+ elseif self.outputSize{i}(2) == 1 % column vector
+ fprintf(mFileID, '%% OUTPUT{%u} is %s (column vector of length %u)\n',i,self.outputNames{i},self.outputSize{i}(1));
+ else
+ fprintf(mFileID, '%% OUTPUT{%u} is %s (matrix of size [%u x %u])\n',i,self.outputNames{i},self.outputSize{i}(1),self.outputSize{i}(2));
+ end
+end
+
+% Exitflag description
+if self.numSolvers == 1
+ fprintf(mFileID, '%%\n');
+ fprintf(mFileID, '%% [OUTPUT, EXITFLAG] = %s(PARAMS) returns additionally\n',solverName);
+ fprintf(mFileID, '%% the integer EXITFLAG indicating the state of the solution with \n');
+ fprintf(mFileID, '%% 1 - OPTIMAL solution has been found (subject to desired accuracy)\n');
+ fprintf(mFileID, '%% 0 - Timeout - maximum number of iterations reached\n');
+ fprintf(mFileID, '%% -7 - Method could not progress. Problem may be infeasible.\n');
+ fprintf(mFileID, '%% -100 - License error\n');
+ fprintf(mFileID, '%%\n');
+else
+ fprintf(mFileID, '%%\n');
+ fprintf(mFileID, '%% [OUTPUT, EXITFLAGS] = %s(PARAMS) returns additionally\n',solverName);
+ fprintf(mFileID, '%% the integer row vector EXITFLAGS indicating the state of the solution\n');
+ fprintf(mFileID, '%% for the different solvers with \n');
+ fprintf(mFileID, '%% EXITFLAGS(i) = 1 - OPTIMAL solution has been found (subject to desired accuracy)\n');
+ fprintf(mFileID, '%% EXITFLAGS(i) = 0 - Timeout - maximum number of iterations reached\n');
+ fprintf(mFileID, '%% EXITFLAGS(i) = -7 - Method could not progress. Problem may be infeasible.\n');
+ fprintf(mFileID, '%% EXITFLAGS(i) = -100 - License error\n');
+ fprintf(mFileID, '%% for the i-th solver\n');
+ fprintf(mFileID, '%%\n');
+end
+
+% Info fields description
+if self.numSolvers == 1
+ fprintf(mFileID, '%% [OUTPUT, EXITFLAG, INFO] = %s(PARAMS) returns \n',solverName);
+ fprintf(mFileID, '%% additional information about the last iterate:\n');
+ fprintf(mFileID, '%% INFO.it - number of iterations that lead to this result\n');
+ fprintf(mFileID, '%% INFO.res_eq - max. equality constraint residual\n');
+ fprintf(mFileID, '%% INFO.res_ineq - max. inequality constraint residual\n');
+ fprintf(mFileID, '%% INFO.pobj - primal objective\n');
+ fprintf(mFileID, '%% INFO.dobj - dual objective\n');
+ fprintf(mFileID, '%% INFO.dgap - duality gap := pobj - dobj\n');
+ fprintf(mFileID, '%% INFO.rdgap - relative duality gap := |dgap / pobj|\n');
+ fprintf(mFileID, '%% INFO.mu - duality measure\n');
+ fprintf(mFileID, '%% INFO.sigma - centering parameter\n');
+ fprintf(mFileID, '%% INFO.lsit_aff - iterations of affine line search\n');
+ fprintf(mFileID, '%% INFO.lsit_cc - iterations of line search (combined direction)\n');
+ fprintf(mFileID, '%% INFO.step_aff - step size (affine direction)\n');
+ fprintf(mFileID, '%% INFO.step_cc - step size (centering direction)\n');
+ fprintf(mFileID, '%% INFO.solvetime - Time needed for solve (wall clock time)\n');
+ fprintf(mFileID, '%%\n');
+else
+ fprintf(mFileID, '%% [OUTPUT, EXITFLAGS, INFO] = %s(PARAMS) returns \n',solverName);
+ fprintf(mFileID, '%% additional information about the last iterate of the i-th solver:\n');
+ fprintf(mFileID, '%% INFO(i).it - number of iterations that lead to this result\n');
+ fprintf(mFileID, '%% INFO(i).res_eq - max. equality constraint residual\n');
+ fprintf(mFileID, '%% INFO(i).res_ineq - max. inequality constraint residual\n');
+ fprintf(mFileID, '%% INFO(i).pobj - primal objective\n');
+ fprintf(mFileID, '%% INFO(i).dobj - dual objective\n');
+ fprintf(mFileID, '%% INFO(i).dgap - duality gap := pobj - dobj\n');
+ fprintf(mFileID, '%% INFO(i).rdgap - relative duality gap := |dgap / pobj|\n');
+ fprintf(mFileID, '%% INFO(i).mu - duality measure\n');
+ fprintf(mFileID, '%% INFO(i).sigma - centering parameter\n');
+ fprintf(mFileID, '%% INFO(i).lsit_aff - iterations of affine line search\n');
+ fprintf(mFileID, '%% INFO(i).lsit_cc - iterations of line search (combined direction)\n');
+ fprintf(mFileID, '%% INFO(i).step_aff - step size (affine direction)\n');
+ fprintf(mFileID, '%% INFO(i).step_cc - step size (centering direction)\n');
+ fprintf(mFileID, '%% INFO(i).solvetime - Time needed for solve (wall clock time)\n');
+ fprintf(mFileID, '%%\n');
+end
+
+
+fprintf(mFileID, '%% See also COPYING');
+
+% Close file
+fclose(mFileID);
+
+success = 1;
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateMEXInterfaceCode.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateMEXInterfaceCode.m
new file mode 100755
index 0000000..dfd0663
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateMEXInterfaceCode.m
@@ -0,0 +1,390 @@
+function success = generateMEXInterfaceCode( self )
+%GENERATEMEXINTERFACECODE generates MEX C code that will prepare the
+%parameters for the FORCES solver. It also assembles the correct outputs.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+success = 0;
+
+% Get solver name from option
+solverName = self.default_codeoptions.name;
+
+% Check if FORCES solver has been generated
+if ~isdir(solverName)
+ error('Solver ''%s'' has not been generated!', solverName)
+end
+
+fileID = fopen([solverName '/interface/' solverName '_mex.c'],'w');
+
+% Write standard comment
+fprintf(fileID, '/*\n This is an interface for %s that ',solverName);
+fprintf(fileID, 'is used by optimizerFORCES to call the solver\n');
+fprintf(fileID, '*/ \n\n');
+
+% Includes
+fprintf(fileID, '#include "mex.h"\n');
+fprintf(fileID, '#include "math.h"\n');
+fprintf(fileID, '#include "../include/%s.h"\n',solverName,solverName);
+fprintf(fileID, '#include \n\n');
+
+% Copy functions stolen from FORCES
+fprintf(fileID, '/* copy functions */\n');
+fprintf(fileID, 'void copyCArrayToM(double *src, double *dest, int dim) {\n');
+fprintf(fileID, '\twhile (dim--) {\n');
+fprintf(fileID, '\t\t*dest++ = (double)*src++;\n');
+fprintf(fileID, '\t}\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, 'void copyMArrayToC(double *src, double *dest, int dim) {\n');
+fprintf(fileID, '\twhile (dim--) {\n');
+fprintf(fileID, '\t\t*dest++ = (double) (*src++) ;\n');
+fprintf(fileID, '\t}\n');
+fprintf(fileID, '}\n\n');
+
+% Arguments for solver(s)
+fprintf(fileID, '/* Some memory for mex-function */\n');
+fprintf(fileID, '%s_params params;\n',solverName);
+fprintf(fileID, '%s_output output;\n',solverName);
+fprintf(fileID, '%s_info info;\n\n',solverName);
+
+% Start of MEX function
+fprintf(fileID, '/* THE mex-function */\n');
+fprintf(fileID, 'void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) {\n');
+fprintf(fileID, '\t/* file pointer for printing */\n');
+fprintf(fileID, '\tFILE *fp = NULL;\n\n');
+
+fprintf(fileID, '\t/* define variables */\n');
+fprintf(fileID, '\tmxArray *par;\n\n');
+fprintf(fileID, '\tconst mxArray *param_values = prhs[0];\n');
+fprintf(fileID, '\tmxArray *outvar;\n');
+fprintf(fileID, '\tint i;\n');
+if self.numSolvers == 1
+ fprintf(fileID, '\tint exitflag;\n');
+else
+ fprintf(fileID, '\tint *exitflag;\n');
+end
+fprintf(fileID, '\tconst char *fname;\n\n');
+
+% Solver info fields
+if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(fileID, '\tconst char *infofields[16] = { "it", "it2opt", "res_eq", "res_ineq", "pobj", "dobj", "dgap", "rdgap", "mu", "mu_aff", "sigma", "lsit_aff", "lsit_cc", "step_aff", "step_cc", "solvetime"};\n\n');
+else % ADMM has slightly different fields
+ fprintf(fileID, '\tconst char *infofields[9] = { "it", "it2opt", "res_eq", "res_dual", "pobj", "dobj", "dgap", "rdgap", "solvetime"};\n\n');
+end
+
+% Check number of in- and outputs
+fprintf(fileID, '\t/* Check for proper number of arguments */\n');
+fprintf(fileID, '\tif (nrhs != 1) {\n');
+fprintf(fileID, '\t\tmexErrMsgTxt("This function requires exactly 1 input: parameter value cell array.");\n');
+fprintf(fileID, '\t}\n');
+fprintf(fileID, '\tif (nlhs > 3) {\n');
+fprintf(fileID, '\t\tmexErrMsgTxt("This function returns at most 3 outputs.");\n');
+fprintf(fileID, '\t}\n');
+
+% Check type of input
+fprintf(fileID, '\t/* Check whether params is actually a cell array */\n');
+fprintf(fileID, '\tif( !mxIsCell(param_values) ) {\n');
+fprintf(fileID, '\t\tmexErrMsgTxt("%s requires a cell array as input.");\n',solverName);
+fprintf(fileID, '\t}\n\n');
+
+% Check length of input
+fprintf(fileID, '\t/* Check whether params has the right number of elements */\n');
+fprintf(fileID, '\tif( mxGetNumberOfElements(param_values) != %u ) {\n',self.numParams);
+fprintf(fileID, '\t\tmexErrMsgTxt("Input must have %u elements.");\n',self.numParams);
+fprintf(fileID, '\t}\n\n');
+
+% Check sizes of parameter values and load their values
+fprintf(fileID, '\t/* Load param values into C arrays and check their size */\n');
+for i=1:self.numParams
+ % Get cell element
+ fprintf(fileID, '\tpar = mxGetCell(param_values,%u);\n',i-1);
+
+ % Cell element not found
+ fprintf(fileID, '\tif( par == NULL ) {\n');
+ fprintf(fileID, '\t\tmexErrMsgTxt("Parameter #%u not found");\n',i);
+ fprintf(fileID, '\t}\n');
+
+ % Parameter value is not double
+ fprintf(fileID, '\tif( !mxIsDouble(par) ) {\n');
+ fprintf(fileID, '\t\tmexErrMsgTxt("Parameter #%u must be a double.");\n',i);
+ fprintf(fileID, '\t}\n');
+
+ % Check parameter value size
+ fprintf(fileID, '\tif( mxGetM(par) != %u || mxGetN(par) != %u ) {\n',self.paramSizes(i,1),self.paramSizes(i,2));
+ fprintf(fileID, '\t\tmexErrMsgTxt("Parameter #%u must be of size [%u x %u]");\n',i,self.paramSizes(i,1),self.paramSizes(i,2));
+ fprintf(fileID, '\t}\n');
+
+ % Copy parameter value
+ fprintf(fileID, '\tcopyMArrayToC(mxGetPr(par),params.%s,%u);\n\n',self.paramNames{i},prod(self.paramSizes(i,:)));
+end
+
+% If the user wanted output, we need to store it
+fprintf(fileID, '\t#if %s_SET_PRINTLEVEL > 0\n',solverName);
+fprintf(fileID, '\t\t/* Prepare file for printfs */\n');
+fprintf(fileID, '\t\t/*fp = freopen("stdout_temp","w+",stdout);*/\n');
+fprintf(fileID, '\t\tfp = fopen("stdout_temp","w+");\n');
+fprintf(fileID, '\t\tif( fp == NULL ) {\n');
+fprintf(fileID, '\t\t\tmexErrMsgTxt("freopen of stdout did not work.");\n');
+fprintf(fileID, '\t\t}\n');
+fprintf(fileID, '\t\trewind(fp);\n');
+fprintf(fileID, '\t#endif\n\n');
+
+fprintf(fileID, '\t/* call solver */\n');
+fprintf(fileID, '\texitflag = %s_solve(¶ms, &output, &info, fp );\n\n',solverName);
+
+% Print output in console
+fprintf(fileID, '\t#if %s_SET_PRINTLEVEL > 0\n',solverName);
+fprintf(fileID, '\t\t/* Read contents of printfs printed to file */\n');
+fprintf(fileID, '\t\trewind(fp);\n');
+fprintf(fileID, '\t\twhile( (i = fgetc(fp)) != EOF ) {\n');
+fprintf(fileID, '\t\t\tmexPrintf("%%c",i);\n');
+fprintf(fileID, '\t\t}\n');
+fprintf(fileID, '\t\tfclose(fp);\n');
+fprintf(fileID, '\t#endif\n\n');
+
+% Put outputs together
+if self.outputIsCell % multiple outputs possible
+ % Create MATLAB output cell array
+ fprintf(fileID, '\tplhs[0] = mxCreateCellMatrix(1, %u);\n',numel(self.outputBase));
+ for i=1:numel(self.outputBase) % every output has a base
+ outSize = self.outputSize{i};
+ fprintf(fileID, '\toutvar = mxCreateDoubleMatrix(%u, %u, mxREAL);\n',outSize(1),outSize(2));
+ fprintf(fileID, '\tcopyCArrayToM(output.%s, mxGetPr(outvar), %u);\n',self.outputNames{i},prod(outSize));
+ fprintf(fileID, '\tmxSetCell(plhs[0], %u, outvar);\n\n',i-1);
+ end
+else % only one output
+ % Create MATLAB output matrix
+ outSize = self.outputSize{1};
+ fprintf(fileID, '\tplhs[0] = mxCreateDoubleMatrix(%u, %u, mxREAL);\n',outSize(1),outSize(2));
+ fprintf(fileID, '\tcopyCArrayToM(output.%s, mxGetPr(plhs[0]), %u);\n\n',self.outputNames{1},prod(outSize));
+end
+
+% add other output arguments (exitflags and info)
+if self.numSolvers > 1
+ fprintf(fileID, '\t/* copy exitflags */\n');
+ fprintf(fileID, '\tif( nlhs > 1 ) {\n');
+ fprintf(fileID, '\t\tplhs[1] = mxCreateDoubleMatrix(1, %u, mxREAL);\n',self.numSolvers);
+ for i=1:self.numSolvers
+ fprintf(fileID, '\t\t*(mxGetPr(plhs[1])+%u) = (double)exitflag[%u];\n',i-1,i-1);
+ end
+ fprintf(fileID, '\t}\n\n');
+
+ fprintf(fileID, '\t/* copy info structs */\n');
+ fprintf(fileID, '\tif( nlhs > 2 ) {\n');
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % ADMM has different fields
+ fprintf(fileID, '\t\tplhs[2] = mxCreateStructMatrix(%u, 1, 9, infofields);\n\n', self.numSolvers);
+ else
+ fprintf(fileID, '\t\tplhs[2] = mxCreateStructMatrix(%u, 1, 16, infofields);\n\n', self.numSolvers);
+ end
+
+ for i=1:self.numSolvers
+ fprintf(fileID, '\t\t/* info for solver #%u */\n',i);
+
+ fprintf(fileID, '\t\t/* iterations */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.it[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "it", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* iterations to optimality (branch and bound) */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.it2opt[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "it2opt", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* res_eq */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.res_eq[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "res_eq", outvar);\n\n',i-1);
+
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % extra field for ADMM
+ fprintf(fileID, '\t\t/* res_dual */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.res_dual[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "res_dual", outvar);\n\n',i-1);
+ else
+ fprintf(fileID, '\t\t/* res_ineq */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.res_ineq[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "res_ineq", outvar);\n\n',i-1);
+ end
+
+ fprintf(fileID, '\t\t/* pobj */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.pobj[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "pobj", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* dobj */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.dobj[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "dobj", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* dgap */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.dgap[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "dgap", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* rdgap */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.rdgap[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "rdgap", outvar);\n\n',i-1);
+
+ if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(fileID, '\t\t/* mu */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.mu[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "mu", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* mu_aff */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.mu_aff[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "mu_aff", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* sigma */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.sigma[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "sigma", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* lsit_aff */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.lsit_aff[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "lsit_aff", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* lsit_cc */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.lsit_cc[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "lsit_cc", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* step_aff */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.step_aff[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "step_aff", outvar);\n\n',i-1);
+
+ fprintf(fileID, '\t\t/* step_cc */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.step_cc[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "step_cc", outvar);\n\n',i-1);
+ end
+
+ fprintf(fileID, '\t\t/* solver time */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.solvetime[%u];\n',i-1);
+ fprintf(fileID, '\t\tmxSetField(plhs[2], %u, "solvetime", outvar);\n\n',i-1);
+ end
+ fprintf(fileID, '\t}\n');
+else % only one solver --> no cell arrays necessary
+ fprintf(fileID, '\t/* copy exitflag */\n');
+ fprintf(fileID, '\tif( nlhs > 1 ) {\n');
+ fprintf(fileID, '\t\tplhs[1] = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*(mxGetPr(plhs[1])) = (double)exitflag;\n');
+ fprintf(fileID, '\t}\n\n');
+
+ fprintf(fileID, '\t/* copy info struct */\n');
+ fprintf(fileID, '\tif( nlhs > 2 ) {\n');
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % ADMM has different fields
+ fprintf(fileID, '\t\tplhs[2] = mxCreateStructMatrix(1, 1, 9, infofields);\n\n');
+ else
+ fprintf(fileID, '\t\tplhs[2] = mxCreateStructMatrix(1, 1, 16, infofields);\n\n');
+ end
+
+ fprintf(fileID, '\t\t/* iterations */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.it;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "it", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* iterations to optimality (branch and bound) */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.it2opt;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "it2opt", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* res_eq */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.res_eq;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "res_eq", outvar);\n\n');
+
+ if isfield(self.default_codeoptions, 'solvemethod') && strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % extra field for ADMM
+ fprintf(fileID, '\t\t/* res_dual */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.res_dual;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "res_dual", outvar);\n\n');
+ else % not for ADMM
+ fprintf(fileID, '\t\t/* res_ineq */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.res_ineq;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "res_ineq", outvar);\n\n');
+ end
+
+ fprintf(fileID, '\t\t/* pobj */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.pobj;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "pobj", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* dobj */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.dobj;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "dobj", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* dgap */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.dgap;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "dgap", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* rdgap */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.rdgap;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "rdgap", outvar);\n\n');
+
+ if ~isfield(self.default_codeoptions, 'solvemethod') || ~strcmpi(self.default_codeoptions.solvemethod, 'ADMM') % not for ADMM
+ fprintf(fileID, '\t\t/* mu */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.mu;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "mu", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* mu_aff */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.mu_aff;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "mu_aff", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* sigma */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.sigma;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "sigma", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* lsit_aff */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.lsit_aff;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "lsit_aff", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* lsit_cc */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = (double)info.lsit_cc;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "lsit_cc", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* step_aff */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.step_aff;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "step_aff", outvar);\n\n');
+
+ fprintf(fileID, '\t\t/* step_cc */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.step_cc;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "step_cc", outvar);\n\n');
+ end
+
+ fprintf(fileID, '\t\t/* solver time */\n');
+ fprintf(fileID, '\t\toutvar = mxCreateDoubleMatrix(1, 1, mxREAL);\n');
+ fprintf(fileID, '\t\t*mxGetPr(outvar) = info.solvetime;\n');
+ fprintf(fileID, '\t\tmxSetField(plhs[2], 0, "solvetime", outvar);\n');
+
+ fprintf(fileID, '\t}\n');
+end
+
+fprintf(fileID, '}'); % end of mex-function
+
+% Don't forget to close MEX file
+fclose(fileID);
+
+success = 1;
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateSimulinkBlock.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateSimulinkBlock.m
new file mode 100755
index 0000000..1d38c1e
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateSimulinkBlock.m
@@ -0,0 +1,144 @@
+function generateSimulinkBlock( self )
+%GENERATESIMULINKBLOCK Create a model containing a Simulink block for the
+%solver
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+success = 0;
+
+% Get solver name from option
+solverName = self.default_codeoptions.name;
+
+% Check if FORCES solver has been generated
+if ~isdir(solverName)
+ error('Solver ''%s'' has not been generated!', solverName)
+end
+
+library = 'y2f_simulink_lib';
+block = solverName;
+
+% Create Simulink library
+if exist(library) % library found, no need to create one
+ disp('Found existing Y2F Simulink library.')
+ load_system(library);
+
+ % we need to unlock the library to edit it
+ set_param(library,'Lock','off')
+else % no library found
+ disp('Y2F Simulink library not found, creating new one.')
+
+ % Check if slblocks.m exists, if yes ask user if we can overwrite it
+ if ~isempty(dir('slblocks.m'))
+ while 1
+ beep
+ in = input(['[' 8 'slblocks.m already exists in the current folder. Y2F needs to overwrite it to create the Simulink library.\nDo you want to continue [y/n]? ]' 8],'s');
+ if strcmpi(in,'y')
+ break
+ elseif strcmpi(in,'n')
+ error('Y2F could not create Simulink library.');
+ end
+ end
+ end
+
+ % Create library
+ new_system(library, 'Library');
+
+ % Create slblocks.m to "register" Y2F library
+ mFileID = fopen('slblocks.m','w');
+
+ fprintf(mFileID, 'function blkStruct = slblocks\n');
+ fprintf(mFileID, '%% This function specifies that the Y2F library should appear in the\n');
+ fprintf(mFileID, '%% Library Browser and be cached in the browser repository\n');
+ fprintf(mFileID, 'Browser.Library = ''y2f_simulink_lib'';\n');
+ fprintf(mFileID, 'Browser.Name = ''Y2F FORCES Pro Solvers'';\n');
+ fprintf(mFileID, 'blkStruct.Browser = Browser;\n');
+
+ fclose(mFileID);
+
+end
+
+% Add S-function block if it doesn't exist already
+blocks = find_system(library);
+if ~any(cell2mat(strfind(blocks,[library '/' block])))
+ add_block('built-in/S-Function', [library '/' block]);
+
+ % Create mask
+ mask = Simulink.Mask.create([library '/' block]);
+else
+ % We need to load the mask to edit it
+ mask = Simulink.Mask.get([library '/' block]);
+end
+
+% Set right parameters, ports, etc. for block
+set_param([library '/' block], 'FunctionName', [solverName '_simulinkBlock']);
+
+% Create mask to name input/output ports and add image
+
+iconDrawingString = 'image(''forcesprologo.jpg'', ''center'', ''on'')';
+for i=1:self.numParams
+ iconDrawingString = sprintf('%s;port_label(''input'', %u, ''%s'')', iconDrawingString, i, self.paramNames{i});
+end
+for i=1:numel(self.outputSize)
+ iconDrawingString = sprintf('%s;port_label(''output'', %u, ''%s'')', iconDrawingString, i, self.outputNames{i});
+end
+if (isfield(self.default_codeoptions,'showinfo') && self.default_codeoptions.showinfo) % we have diagnostic fields
+ iconDrawingString = sprintf('%s;port_label(''output'', %u, ''exitflag'')',iconDrawingString,numel(self.outputSize)+1);
+ iconDrawingString = sprintf('%s;port_label(''output'', %u, ''iterations'')',iconDrawingString,numel(self.outputSize)+2);
+ iconDrawingString = sprintf('%s;port_label(''output'', %u, ''solve_time'')',iconDrawingString,numel(self.outputSize)+3);
+ iconDrawingString = sprintf('%s;port_label(''output'', %u, ''primal_obj'')',iconDrawingString,numel(self.outputSize)+4);
+end
+set_param([library '/' block], 'MaskDisplay', iconDrawingString)
+
+% Set position of block
+set_param([library '/' block], 'Position', [170, 99, 550, 200])
+
+% Generate description and help
+desc = sprintf(['---- Simulink block encapsulating your customized solver %s ----\n\n' ...
+ '%s : A fast customized optimization solver.'], solverName, solverName);
+set_param([library '/' block], 'MaskDescription', desc);
+
+help = sprintf('%s_simulinkBlock provides an easy Simulink interface for simulating your customized solver.\n\n',solverName);
+help = sprintf('%sOUTPUTS = %s(INPUTS) solves an optimization problem where:\n\n', help, solverName);
+help = sprintf('%sINPUTS:\n', help);
+
+for i=1:self.numParams
+ if self.paramSizes(i,1) == 1 && self.paramSizes(i,2) == 1 % scalar parameter
+ help = sprintf('%s- %s (a scalar)\n',help,self.paramNames{i});
+ elseif self.paramSizes(i,1) == 1 % row vector
+ help = sprintf('%s- %s (row vector of length %u)\n',help,self.paramNames{i},self.paramSizes(i,2));
+ elseif self.paramSizes(i,2) == 1 % column vector
+ help = sprintf('%s- %s (column vector of length %u)\n',help,self.paramNames{i},self.paramSizes(i,1));
+ else
+ help = sprintf('%s- %s (matrix of size [%u x %u])\n',help,self.paramNames{i},self.paramSizes(i,1),self.paramSizes(i,2));
+ end
+end
+
+help = sprintf('%s\nOUTPUTS:\n',help);
+
+for i=1:numel(self.outputSize)
+ if self.outputSize{i}(1) == 1 && self.outputSize{i}(2) == 1 % scalar parameter
+ help = sprintf('%s- %s (a scalar)\n',help,self.outputNames{i});
+ elseif self.outputSize{i}(1) == 1 % row vector
+ help = sprintf('%s- %s (row vector of length %u)\n',help,self.outputNames{i},self.outputSize{i}(2));
+ elseif self.outputSize{i}(2) == 1 % column vector
+ help = sprintf('%s- %s (column vector of length %u)\n',help,self.outputNames{i},self.outputSize{i}(1));
+ else
+ help = sprintf('%s- %s (matrix of size [%u x %u])\n',help,self.outputNames{i},self.outputSize{i}(1),self.outputSize{i}(2));
+ end
+end
+
+help = sprintf('%s\nFor more information, see https://www.embotech.com/FORCES-Pro/How-to-use/Simulink-Interface/Simulink-Block',help);
+
+set_param([library '/' block], 'MaskHelp', help);
+
+% Save system
+%set_param(gcs,'EnableLBRepository','on'); % enable library in browser
+set_param(library,'EnableLBRepository','on'); % enable library in browser
+filename = save_system(library);
+close_system(library, 0);
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateSimulinkInterfaceCode.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateSimulinkInterfaceCode.m
new file mode 100755
index 0000000..8693c8a
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/generateSimulinkInterfaceCode.m
@@ -0,0 +1,342 @@
+function success = generateSimulinkInterfaceCode( self )
+%GENERATESIMULINKINTERFACECODE generates a C file with an S-function for
+%use in a Simulink model.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+success = 0;
+
+% Get solver name from option
+solverName = self.default_codeoptions.name;
+
+% Check if FORCES solver has been generated
+if ~isdir(solverName)
+ error('Solver ''%s'' has not been generated!', solverName)
+end
+
+fileID = fopen([solverName '/interface/' solverName '_simulinkBlock.c'],'w');
+
+fprintf(fileID, '/*\n');
+fprintf(fileID, '%s : A fast customized optimization solver.\n',solverName);
+fprintf(fileID, '*/\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '#define S_FUNCTION_LEVEL 2\n');
+fprintf(fileID, '#define S_FUNCTION_NAME %s_simulinkBlock\n',solverName);
+fprintf(fileID, '\n');
+fprintf(fileID, '#include "simstruc.h"\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '/* SYSTEM INCLUDES FOR TIMING ------------------------------------------ */\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '/* include FORCES functions and defs */\n');
+fprintf(fileID, '#include "../include/%s.h"\n',solverName);
+fprintf(fileID, '\n');
+fprintf(fileID, '#if defined(MATLAB_MEX_FILE)\n');
+fprintf(fileID, '#include "tmwtypes.h"\n');
+fprintf(fileID, '#include "simstruc_types.h"\n');
+fprintf(fileID, '#else\n');
+fprintf(fileID, '#include "rtwtypes.h"\n');
+fprintf(fileID, '#endif\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '/*====================*\n');
+fprintf(fileID, ' * S-function methods *\n');
+fprintf(fileID, ' *====================*/\n');
+fprintf(fileID, '/* Function: mdlInitializeSizes =========================================\n');
+fprintf(fileID, ' * Abstract:\n');
+fprintf(fileID, ' * Setup sizes of the various vectors.\n');
+fprintf(fileID, ' */\n');
+fprintf(fileID, 'static void mdlInitializeSizes(SimStruct *S)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, '\n');
+fprintf(fileID, ' DECL_AND_INIT_DIMSINFO(inputDimsInfo);\n');
+fprintf(fileID, ' DECL_AND_INIT_DIMSINFO(outputDimsInfo);\n');
+fprintf(fileID, ' ssSetNumSFcnParams(S, 0);\n');
+fprintf(fileID, ' if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {\n');
+fprintf(fileID, ' return; /* Parameter mismatch will be reported by Simulink */\n');
+fprintf(fileID, ' }\n');
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* initialize size of continuous and discrete states to zero */\n');
+fprintf(fileID, ' ssSetNumContStates(S, 0);\n');
+fprintf(fileID, ' ssSetNumDiscStates(S, 0);\n');
+fprintf(fileID, '\n');
+
+% Input ports
+fprintf(fileID, ' /* initialize input ports - there are %u in total */\n',self.numParams);
+fprintf(fileID, ' if (!ssSetNumInputPorts(S, %u)) return;\n',self.numParams);
+fprintf(fileID, ' \n');
+
+for i=1:self.numParams
+ fprintf(fileID, ' /* Input Port %u (%s) */\n',i-1,self.paramNames{i});
+ fprintf(fileID, ' ssSetInputPortMatrixDimensions(S, %u, %u, %u);\n', i-1, self.paramSizes(i,1), self.paramSizes(i,2));
+ fprintf(fileID, ' ssSetInputPortDataType(S, %u, SS_DOUBLE);\n',i-1);
+ fprintf(fileID, ' ssSetInputPortComplexSignal(S, %u, COMPLEX_NO); /* no complex signals suppported */\n',i-1);
+ fprintf(fileID, ' ssSetInputPortDirectFeedThrough(S, %u, 1); /* Feedthrough enabled */\n',i-1);
+ fprintf(fileID, ' ssSetInputPortRequiredContiguous(S, %u, 1); /*direct input signal access*/ \n',i-1);
+ fprintf(fileID, '\n');
+end
+fprintf(fileID, '\n');
+
+% Output ports
+fprintf(fileID, ' /* initialize output ports - there are %u in total */\n',numel(self.outputSize));
+if (isfield(self.default_codeoptions,'showinfo') && self.default_codeoptions.showinfo) % Info fields (exitflag, iterations, solve time, pobj) are optional
+ fprintf(fileID, ' if (!ssSetNumOutputPorts(S, %u)) return; \n',numel(self.outputSize) + 4);
+else % no info fields
+ fprintf(fileID, ' if (!ssSetNumOutputPorts(S, %u)) return; \n',numel(self.outputSize));
+end
+fprintf(fileID, ' \n');
+
+for i=1:numel(self.outputSize) % normal output ports
+ fprintf(fileID, ' /* Output Port %u */\n',i-1);
+ fprintf(fileID, ' ssSetOutputPortMatrixDimensions(S, %u, %u, %u);\n',i-1,self.outputSize{i}(1),self.outputSize{i}(2));
+ fprintf(fileID, ' ssSetOutputPortDataType(S, %u, SS_DOUBLE);\n',i-1);
+ fprintf(fileID, ' ssSetOutputPortComplexSignal(S, %u, COMPLEX_NO); /* no complex signals suppported */\n',i-1);
+ fprintf(fileID, '\n');
+end
+
+% Diagnostic info ports
+if (isfield(self.default_codeoptions,'showinfo') && self.default_codeoptions.showinfo)
+ fprintf(fileID, ' /* Diagnostic Output Ports */\n');
+ fprintf(fileID, ' ssSetOutputPortMatrixDimensions(S, %u, 1, 1);\n',numel(self.outputSize)+(0:3));
+ fprintf(fileID, ' ssSetOutputPortDataType(S, %u, SS_DOUBLE);\n',numel(self.outputSize)+(0:3));
+ fprintf(fileID, ' ssSetOutputPortComplexSignal(S, %u, COMPLEX_NO);\n',numel(self.outputSize)+(0:3));
+end
+
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* set sampling time */\n');
+fprintf(fileID, ' ssSetNumSampleTimes(S, 1);\n');
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* set internal memory of block */\n');
+fprintf(fileID, ' ssSetNumRWork(S, 0);\n');
+fprintf(fileID, ' ssSetNumIWork(S, 0);\n');
+fprintf(fileID, ' ssSetNumPWork(S, 0);\n');
+fprintf(fileID, ' ssSetNumModes(S, 0);\n');
+fprintf(fileID, ' ssSetNumNonsampledZCs(S, 0);\n');
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* Take care when specifying exception free code - see sfuntmpl_doc.c */\n');
+fprintf(fileID, ' /* SS_OPTION_USE_TLC_WITH_ACCELERATOR removed */ \n');
+fprintf(fileID, ' /* SS_OPTION_USE_TLC_WITH_ACCELERATOR removed */ \n');
+fprintf(fileID, ' /* ssSetOptions(S, (SS_OPTION_EXCEPTION_FREE_CODE |\n');
+fprintf(fileID, ' SS_OPTION_WORKS_WITH_CODE_REUSE)); */\n');
+fprintf(fileID, ' ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE );\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, 'static void mdlSetInputPortDimensionInfo(SimStruct *S, \n');
+fprintf(fileID, ' int_T port,\n');
+fprintf(fileID, ' const DimsInfo_T *dimsInfo)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' if(!ssSetInputPortDimensionInfo(S, port, dimsInfo)) return;\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, 'static void mdlSetOutputPortDimensionInfo(SimStruct *S, \n');
+fprintf(fileID, ' int_T port, \n');
+fprintf(fileID, ' const DimsInfo_T *dimsInfo)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' if (!ssSetOutputPortDimensionInfo(S, port, dimsInfo)) return;\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, 'static void mdlSetInputPortFrameData(SimStruct *S, \n');
+fprintf(fileID, ' int_T port,\n');
+fprintf(fileID, ' Frame_T frameData)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' ssSetInputPortFrameData(S, port, frameData);\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '/* Function: mdlInitializeSampleTimes =========================================\n');
+fprintf(fileID, ' * Abstract:\n');
+fprintf(fileID, ' * Specifiy the sample time.\n');
+fprintf(fileID, ' */\n');
+fprintf(fileID, 'static void mdlInitializeSampleTimes(SimStruct *S)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' ssSetSampleTime(S, 0, INHERITED_SAMPLE_TIME);\n');
+fprintf(fileID, ' ssSetOffsetTime(S, 0, 0.0);\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, 'static void mdlSetInputPortDataType(SimStruct *S, int port, DTypeId dType)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' ssSetInputPortDataType( S, port, dType);\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, 'static void mdlSetOutputPortDataType(SimStruct *S, int port, DTypeId dType)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' ssSetOutputPortDataType(S, port, dType);\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, 'static void mdlSetDefaultPortDataTypes(SimStruct *S)\n');
+fprintf(fileID, '{\n');
+
+for i=1:self.numParams
+ fprintf(fileID, ' ssSetInputPortDataType( S, %u, SS_DOUBLE);\n',i-1);
+end
+
+% Info fields are optional
+if (isfield(self.default_codeoptions,'showinfo') && self.default_codeoptions.showinfo)
+ for i=1:numel(self.outputSize)+4
+ fprintf(fileID, ' ssSetOutputPortDataType(S, %u, SS_DOUBLE);\n',i-1);
+ end
+else
+ for i=1:numel(self.outputSize)
+ fprintf(fileID, ' ssSetOutputPortDataType(S, %u, SS_DOUBLE);\n',i-1);
+ end
+end
+fprintf(fileID, '}\n');
+fprintf(fileID, '\n');
+fprintf(fileID, '/* Function: mdlOutputs =======================================================\n');
+fprintf(fileID, ' *\n');
+fprintf(fileID, ' */\n');
+fprintf(fileID, 'static void mdlOutputs(SimStruct *S, int_T tid)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, ' int i, j, k;\n');
+fprintf(fileID, ' \n');
+fprintf(fileID, ' /* file pointer for printing */\n');
+fprintf(fileID, ' FILE *fp = NULL;\n');
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* Simulink data */\n');
+
+for i=1:self.numParams
+ fprintf(fileID, ' const real_T *param_%s = (const real_T*) ssGetInputPortSignal(S,%u);\n',self.paramNames{i},i-1);
+end
+fprintf(fileID, ' \n');
+
+for i=1:numel(self.outputSize)
+ fprintf(fileID, ' real_T *output_%s = (real_T*) ssGetOutputPortSignal(S,%u);\n',self.outputNames{i},i-1);
+end
+fprintf(fileID, '\n');
+
+% Info fields are optional
+if (isfield(self.default_codeoptions,'showinfo') && self.default_codeoptions.showinfo)
+ fprintf(fileID, ' /* Diagnostic output ports */\n');
+ fprintf(fileID, ' real_T *solver_exitflag = (real_T*) ssGetOutputPortSignal(S,%u);\n',numel(self.outputSize));
+ fprintf(fileID, ' real_T *iterations = (real_T*) ssGetOutputPortSignal(S,%u);\n',numel(self.outputSize)+1);
+ fprintf(fileID, ' real_T *solve_time = (real_T*) ssGetOutputPortSignal(S,%u);\n',numel(self.outputSize)+2);
+ fprintf(fileID, ' real_T *primal_obj = (real_T*) ssGetOutputPortSignal(S,%u);\n',numel(self.outputSize)+3);
+ fprintf(fileID, '\n');
+end
+
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* Solver data */\n');
+fprintf(fileID, ' %s_params params;\n',solverName);
+fprintf(fileID, ' %s_output output;\n',solverName);
+fprintf(fileID, ' %s_info info; \n',solverName);
+if self.numSolvers == 1
+ fprintf(fileID, ' int exitflag;\n');
+else
+ fprintf(fileID, ' int* exitflag;\n');
+end
+
+fprintf(fileID, '\n');
+fprintf(fileID, ' /* Extra NMPC data */\n');
+fprintf(fileID, '\n');
+
+fprintf(fileID, ' /* Copy inputs */\n');
+for i=1:self.numParams
+ fprintf(fileID, ' for( i=0; i<%u; i++){ params.%s[i] = (double) param_%s[i]; }\n',prod(self.paramSizes(i,:)),self.paramNames{i},self.paramNames{i});
+end
+fprintf(fileID, '\n');
+
+fprintf(fileID, ' #if %s_SET_PRINTLEVEL > 0\n',solverName);
+fprintf(fileID, ' /* Prepare file for printfs */\n');
+fprintf(fileID, ' fp = fopen("stdout_temp","w+");\n');
+fprintf(fileID, ' if( fp == NULL ) {\n');
+fprintf(fileID, ' mexErrMsgTxt("freopen of stdout did not work.");\n');
+fprintf(fileID, ' }\n');
+fprintf(fileID, ' rewind(fp);\n');
+fprintf(fileID, ' #endif\n');
+fprintf(fileID, '\n');
+
+fprintf(fileID, ' /* Call solver */\n');
+fprintf(fileID, ' exitflag = %s_solve(¶ms, &output, &info, fp );\n',solverName);
+fprintf(fileID, '\n');
+
+fprintf(fileID, ' #if %s_SET_PRINTLEVEL > 0\n',solverName);
+fprintf(fileID, ' /* Read contents of printfs printed to file */\n');
+fprintf(fileID, ' rewind(fp);\n');
+fprintf(fileID, ' while( (i = fgetc(fp)) != EOF ) {\n');
+fprintf(fileID, ' ssPrintf("%%c",i);\n');
+fprintf(fileID, ' }\n');
+fprintf(fileID, ' fclose(fp);\n');
+fprintf(fileID, ' #endif\n');
+fprintf(fileID, '\n');
+
+fprintf(fileID, ' /* Copy outputs */\n');
+for i=1:numel(self.outputSize)
+ fprintf(fileID, ' for( i=0; i<%u; i++){ output_%s[i] = (real_T) output.%s[i]; }\n',prod(self.outputSize{i}),self.outputNames{i},self.outputNames{i});
+end
+
+% Info fields are optional
+if (isfield(self.default_codeoptions,'showinfo') && self.default_codeoptions.showinfo)
+ fprintf(fileID, '\n/* Diagnostic info */\n');
+ if self.numSolvers == 1
+ fprintf(fileID, ' iterations[0] = info.it;\n');
+ fprintf(fileID, ' solve_time[0] = info.solvetime;\n');
+ fprintf(fileID, ' primal_obj[0] = info.pobj;\n');
+ fprintf(fileID, ' solver_exitflag[0] = exitflag;\n');
+ else % multiple solvers
+ % sum iterations
+ fprintf(fileID, ' iterations[0] = info.it[0]');
+ for i=2:self.numSolvers
+ fprintf(fileID, ' + info.it[%u]', i-1);
+ end
+ fprintf(fileID, ';\n');
+
+ % sum solve times
+ fprintf(fileID, ' solve_time[0] = info.solvetime[0]');
+ for i=2:self.numSolvers
+ fprintf(fileID, ' + info.solvetime[%u]', i-1);
+ end
+ fprintf(fileID, ';\n');
+
+ % sum objective values
+ fprintf(fileID, ' primal_obj[0] = info.pobj[0]');
+ for i=2:self.numSolvers
+ fprintf(fileID, ' + info.pobj[%u]', i-1);
+ end
+ fprintf(fileID, ';\n');
+
+ % Find worst exitflag (worst-to-best: -100,-10,-2,-1,0,2,1)
+ if isempty(self.qcqpParams.bidx) % not branch-and-bound
+ fprintf(fileID, ' solver_exitflag[0] = exitflag[0];\n');
+ fprintf(fileID, ' for ( i=1; i<%u; i++) {\n', self.numSolvers);
+ fprintf(fileID, ' if (exitflag[i] < solver_exitflag[0])\n');
+ fprintf(fileID, ' solver_exitflag[0] = exitflag[i];\n');
+ fprintf(fileID, ' };\n');
+ else
+ fprintf(fileID, ' solver_exitflag[0] = exitflag[0];\n');
+ fprintf(fileID, ' int i = 0;\n');
+ fprintf(fileID, ' for ( i=1; i<%u; i++) {\n', self.numSolvers);
+ fprintf(fileID, ' if (exitflag[i] == 2 && solver_exitflag[0] == 1) {\n');
+ fprintf(fileID, ' solver_exitflag[0] = 2;\n');
+ fprintf(fileID, ' } else if (exitflag[i] != 2 && exitflag[i] < solver_exitflag[0]) {\n');
+ fprintf(fileID, ' solver_exitflag[0] = exitflag[i];\n');
+ fprintf(fileID, ' };\n');
+ fprintf(fileID, ' };\n');
+ end
+ end
+end
+
+fprintf(fileID, '}\n');
+
+fprintf(fileID, '\n');
+fprintf(fileID, '/* Function: mdlTerminate =====================================================\n');
+fprintf(fileID, ' * Abstract:\n');
+fprintf(fileID, ' * In this function, you should perform any actions that are necessary\n');
+fprintf(fileID, ' * at the termination of a simulation. For example, if memory was\n');
+fprintf(fileID, ' * allocated in mdlStart, this is the place to free it.\n');
+fprintf(fileID, ' */\n');
+fprintf(fileID, 'static void mdlTerminate(SimStruct *S)\n');
+fprintf(fileID, '{\n');
+fprintf(fileID, '}\n');
+fprintf(fileID, '#ifdef MATLAB_MEX_FILE /* Is this file being compiled as a MEX-file? */\n');
+fprintf(fileID, '#include "simulink.c" /* MEX-file interface mechanism */\n');
+fprintf(fileID, '#else\n');
+fprintf(fileID, '#include "cg_sfun.h" /* Code generation registration function */\n');
+fprintf(fileID, '#endif\n');
+
+% Don't forget to close S-function file
+fclose(fileID);
+
+success = 1;
+
+end
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/numel.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/numel.m
new file mode 100755
index 0000000..f7dd083
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/numel.m
@@ -0,0 +1,4 @@
+function n = numel(varargin)
+%NUMEL Overload of numel. Tell object to return one argument.
+n = 1;
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/optimizerFORCES.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/optimizerFORCES.m
new file mode 100755
index 0000000..3d9f98c
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/optimizerFORCES.m
@@ -0,0 +1,1098 @@
+function [sys, success] = optimizerFORCES( constraint,objective,codeoptions,parameters,solverOutputs,parameterNames,outputNames )
+%OPTIMIZERFORCES Generates a FORCES Pro solver from a YALMIP problem formulation
+%
+% solver = OPTIMIZERFORCES(constraint,objective,codeoptions,parameters,solverOutputs)
+% generates a solver using FORCES Pro that solves the specified problem
+% for given parameter values and returns the value of the specified
+% outputs. The solver can be called by indexing the returned OPTIMIZERFORCES
+% object with the parameter values. The parameter values can be passed in
+% a number of different ways:
+%
+% output = solver{param1, param2, ...} OR
+% output = solver{ {param1, param2, ...} } OR
+% output = solver(param1, param2, ...)
+%
+% This API is compatible with the YALMIP function OPTIMIZER. To obtain more
+% information on the solver, you can type 'help ' after the code
+% has been generated, where is the name you give to the solver
+% via codeoptions.name.
+%
+%
+% solver = OPTIMIZERFORCES(constraint,objective,codeoptions,parameters,solverOutputs,parameterNames,outputNames)
+% same as above, but the generated code and all its associated help
+% files, the Simulink block etc. will carry the names provided in the
+% last two arguments for parameters and outputs, respectively. It is
+% strongly recommended to provide these names.
+%
+%
+% Example usage:
+%
+% sdpvar x y p
+% options = getOptions('solver_name')
+% solver = optimizerFORCES([x + y == p], x^2+y^2, options, p, {x,y}, {'p'}, {'x_optimal','y_optimal'})
+% solution = solver{5} % solve problem for p = 5
+%
+%
+% Inputs:
+% constraint: constraints in YALMIP format, see e.g. OPTIMIZER
+% objective: objective in YALMIP format, see e.g. OPTIMIZER
+% codeoptions: options for FORCES Pro solver, see GETOPTIONS
+% parameters: Single SDPVAR object or cell array of SDPVAR
+% objects that should be considered a parameter
+% solverOutputs: Single SDPVAR object or cell array of SDPVAR
+% objects whose value(s) should be returned by the
+% solver, can be a linear combination of decision
+% variables and parameters
+% parameterNames: (optional) Cell array of strings with names for
+% parameters that will, for example, be used in the
+% Simulink block. If names are not specified, they
+% will be auto-generated.
+% outputNames: (optional) Cell array of strings with names for
+% outputs that will, for example, be used in the
+% Simulink block. If names are not specified, they
+% will be auto-generated.
+%
+% Outputs:
+% solver: reference to OPTIMIZERFORCES object. Use this to
+% call solver. Example:
+% solver = optimizerFORCES(...);
+% x = solver{paramValues};
+% success: 1 if solver generation was successful, 0 otherwise
+%
+%
+% Getting details on solver:
+%
+% help % get more details on the generated solver
+%
+% See also SDPVAR OPTIMIZER
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+disp('YALMIP-to-FORCES code generator')
+disp('-------------------------------')
+
+% Check if YALMIP is installed
+if ~exist('optimizer','file')
+ error('YALMIP could not be found. Please make sure it is installed correctly.')
+end
+
+% We need all arguments
+switch nargin
+ case 0
+ error('Constraints not found')
+ case 1
+ error('Objective not found')
+ case 2
+ error('Solver options not found')
+ case 3
+ error('Parameter(s) not found')
+ case 4
+ error('Output(s) not found')
+end
+
+% Make valid solver name
+if ~verLessThan('matlab', '8.3')
+ codeoptions.name = matlab.lang.makeValidName(codeoptions.name);
+else
+ codeoptions.name = genvarname(codeoptions.name);
+end
+
+% We need parameters
+if isempty(parameters)
+ error('FORCES Pro does not support problems without parameters.');
+end
+
+% Read parameter names if they were passed along
+if nargin >= 6
+ if ~iscellstr(parameterNames)
+ error('parameterNames needs to be a cell array of strings.')
+ end
+
+ % Fix names (make them valid and unique)
+ if ~verLessThan('matlab', '8.3')
+ parameterNames = matlab.lang.makeValidName(parameterNames);
+ parameterNames = matlab.lang.makeUniqueStrings(parameterNames);
+ else
+ parameterNames = genvarname(parameterNames);
+ end
+elseif isa(solverOutputs,'sdpvar')
+ % Single parameter supplied, we might get its name!
+ name = inputname(4);
+ if ~isempty(name)
+ parameterNames = {name};
+ else
+ parameterNames = {};
+ warning('Y2F:noParameterNames',['No parameter names specified for solver. We recommend adding names for better code documentation. ' ...
+ 'For more info type ''help optimizerFORCES''.']);
+ end
+else
+ parameterNames = {};
+ warning('Y2F:noParameterNames',['No parameter names specified for solver. We recommend adding names for better code documentation. ' ...
+ 'For more info type ''help optimizerFORCES''.']);
+end
+
+% Read output names if they were passed along
+if nargin >= 7
+ if ~iscellstr(parameterNames)
+ error('outputNames needs to be a cell array of strings.')
+ end
+
+ % Fix names (make them valid and unique)
+ if ~verLessThan('matlab', '8.3')
+ outputNames = matlab.lang.makeValidName(outputNames);
+ outputNames = matlab.lang.makeUniqueStrings(outputNames);
+ else
+ outputNames = genvarname(outputNames);
+ end
+elseif isa(solverOutputs,'sdpvar')
+ % Single output supplied, we might get its name!
+ name = inputname(5);
+ if ~isempty(name)
+ outputNames = {name};
+ else
+ outputNames = {};
+ warning('Y2F:noOutputNames',['No output names specified for solver. We recommend adding names for better code documentation. ' ...
+ 'For more info type ''help optimizerFORCES''.']);
+ end
+else
+ outputNames = {};
+ warning('Y2F:noOutputNames',['No output names specified for solver. We recommend adding names for better code documentation. ' ...
+ 'For more info type ''help optimizerFORCES''.']);
+end
+
+% Create missing parameter names
+while numel(parameterNames) < numel(parameters)
+ parameterNames{end+1} = sprintf('param%u', numel(parameterNames)+1);
+end
+
+% We allow single parameters --> wrap them in a cell array
+if ~iscell(parameters)
+ parameters = {parameters}; % put single param into cell array
+end
+
+% Prepare struct that is going to be converted into the optimizerFORCES
+% class
+sys = struct;
+
+sys.outputIsCell = 1;
+if ~iscell(solverOutputs)
+ solverOutputs = {solverOutputs};
+ sys.outputIsCell = 0;
+end
+
+% Create missing parameter names
+while numel(outputNames) < numel(solverOutputs)
+ outputNames{end+1} = sprintf('output%u', numel(outputNames)+1);
+end
+
+
+%% Call YALMIP and convert QP into FORCES format
+disp('This is Y2F (v0.1.10), the YALMIP interface of FORCES Pro.');
+disp('For more information visit https://github.com/embotech/y2f');
+fprintf('\nUsing YALMIP to convert problem into QP...')
+tic;
+[internalmodel,H,f,Aineq,bineq,Aeq,beq,lb,ub] = getQpAndModelFromYALMIP();
+yalmiptime=toc;
+fprintf(' [OK, %5.1f sec]\n', yalmiptime);
+
+% Check if matrices are numeric
+if ~isnumeric(H) || ~isnumeric(f)
+ error('Y2F can only handle numeric inputs. There are non-numeric terms in the cost.')
+end
+if ~isnumeric(Aineq) || ~isnumeric(bineq)
+ error('Y2F can only handle numeric inputs. There are non-numeric terms in the inequality contraints.')
+end
+if ~isnumeric(Aeq) || ~isnumeric(beq)
+ error('Y2F can only handle numeric inputs. There are non-numeric terms in the equality contraints.')
+end
+if ~isnumeric(lb) || ~isnumeric(ub)
+ error('Y2F can only handle numeric inputs. There are non-numeric terms in the bounds.')
+end
+
+% Check if matrices are real
+if ~isreal(H) || ~isreal(f)
+ error('Y2F can only handle real inputs. There are complex terms in the cost.')
+end
+if ~isreal(Aineq) || ~isreal(bineq)
+ error('Y2F can only handle real inputs. There are complex terms in the inequality contraints.')
+end
+if ~isreal(Aeq) || ~isreal(beq)
+ error('Y2F can only handle real inputs. There are complex terms in the equality contraints.')
+end
+if ~isreal(lb) || ~isreal(ub)
+ error('Y2F can only handle real inputs. There are complex terms in the bounds.')
+end
+
+% Check if matrices are doubles
+if ~isa(H,'double') || ~isa(f,'double')
+ warning('Y2F:nonDoubleCost', 'Y2F can only handle inputs of type ''double''. The cost will be cast to ''double''.')
+ H = double(H);
+ f = double(f);
+end
+if ~isa(Aineq,'double') || ~isa(bineq,'double')
+ warning('Y2F:nonDoubleInequality', 'Y2F can only handle inputs of type ''double''. The inequality constraints will be cast to ''double''.')
+ Aineq = double(Aineq);
+ bineq = double(bineq);
+end
+if ~isa(Aeq,'double') || ~isa(beq,'double')
+ warning('Y2F:nonDoubleEquality', 'Y2F can only handle inputs of type ''double''. The equality constraints will be cast to ''double''.')
+ Aeq = double(Aeq);
+ beq = double(beq);
+end
+if ~isa(lb,'double') || ~isa(ub,'double')
+ warning('Y2F:nonDoubleBounds', 'Y2F can only handle inputs of type ''double''. The bounds will be cast to ''double''.')
+ lb = double(lb);
+ ub = double(ub);
+end
+
+%% Assemble parameters & convert quadratic variables
+% Quadratic inequalities are not recognized by YALMIP
+% Information is stored in internalmodel
+
+fprintf('Extract parameters and quadratic inequalities from YALMIP model...')
+tic;
+[qcqpParams,Q,l,r,solverVars,paramVars,yalmipParamMap] = buildParamsAndQuadIneqs();
+extractStagesTime=toc;
+fprintf(' [OK, %5.1f sec]\n', extractStagesTime);
+
+%%
+
+fprintf('Assembling stages...')
+tic;
+% Construct matrices where parametric elements are == 1
+% This is necessary to build graph and recognise infeasible problems
+H_temp = H;
+H_temp([qcqpParams.H.maps2index]) = 1;
+Aineq_temp = Aineq;
+Aineq_temp([qcqpParams.Aineq.maps2index]) = 1;
+Aeq_temp = Aeq;
+Aeq_temp([qcqpParams.Aeq.maps2index]) = 1;
+Q_temp = Q;
+for i=1:numel(qcqpParams.Q)
+ Q_temp{qcqpParams.Q(i).maps2mat}(qcqpParams.Q(i).maps2index) = 1;
+end
+l_temp = l;
+for i=1:numel(qcqpParams.l)
+ l_temp(qcqpParams.l(i).maps2index,qcqpParams.l(i).maps2mat) = 1;
+end
+
+%% Warn the user if the problem is/might be infeasible
+
+checkQcqpForInfeasibility()
+
+
+%% Generate standard stages
+% Construct (potentially multiple) path graphs from Qp
+
+% Compute decision variable indices that are needed in output (only
+% relevant for separable problems)
+outputIdx = [];
+for i=1:numel(solverOutputs)
+ outputVars = getvariables(solverOutputs{i});
+ outputIdx = [outputIdx find(ismember(solverVars, outputVars))];
+end
+
+graphComponents = pathGraphsFromQcqp(H_temp,Aineq_temp,Aeq_temp,Q_temp,l_temp);
+[graphComponents, stages, params, standardParamValues,forcesParamMap] = stagesFromPathGraphs(graphComponents,H,f,Aineq,bineq,Aeq,beq,l,Q,r,lb,ub,qcqpParams,yalmipParamMap,outputIdx);
+
+if numel(stages) == 1
+ fprintf('Found %u stages.\n', numel(stages{1}));
+else % we have multiple solvers
+ fprintf('The problem is separable. %u solvers are needed:\n', numel(stages));
+ for i=1:numel(stages)
+ fprintf(' - Solver %u has %u stages\n', i, numel(stages{i}));
+ end
+end
+
+
+%% Assemble the rest of the FORCES parameters
+% Fake a parameter for each solver if there are none (we need one for FORCES)
+sys.solverHasParams = zeros(1,numel(stages));
+for i=1:numel(stages)
+ if isempty(params{i})
+ params{i}(1) = newParam('p',1,'cost.f');
+ standardParamValues{i} = stages{i}(1).cost.f;
+ stages{i}(1).cost.f = [];
+ else % count params
+ sys.solverHasParams(i) = 1;
+ end
+end
+
+% Mark solvers that contain binary variables
+sys.solverIsBinary = zeros(1,numel(stages));
+if ~isempty(qcqpParams.bidx)
+ for i=1:numel(stages)
+ if any(ismember(cell2mat(graphComponents{i}.vertices),qcqpParams.bidx))
+ sys.solverIsBinary(i) = 1;
+ end
+ end
+end
+
+% Assemble outputs
+outputFORCES = buildOutput();
+
+assembleStagesTime=toc;
+fprintf(' [OK, %5.1f sec]\n', assembleStagesTime);
+
+%% Generate solver using FORCES
+disp('Generating solver using FORCES...')
+
+% set flag to let FORCES know that request came from Y2F
+codeoptions.interface = 'y2f';
+
+success = 1;
+default_codeoptions = codeoptions;
+codeoptions = cell(1,numel(stages));
+for i=1:numel(stages)
+ % new name for each solver
+ codeoptions{i} = default_codeoptions;
+ codeoptions{i}.name = sprintf('internal_%s_%u',default_codeoptions.name,i);
+ codeoptions{i}.nohash = 1; % added by AD to avoid problem - exeprimental
+ success = generateCode(stages{i},params{i},codeoptions{i},outputFORCES{i}) & success;
+end
+
+if ~success
+ error('Code generation was not successful');
+end
+
+% Store temporary data in object
+sys.stages = stages;
+sys.numSolvers = numel(stages);
+sys.params = params;
+sys.paramNames = parameterNames;
+sys.outputNames = outputNames;
+sys.outputFORCES = outputFORCES;
+sys.qcqpParams = qcqpParams;
+sys.standardParamValues = standardParamValues;
+sys.solverVars = solverVars;
+sys.parameters = parameters;
+sys.forcesParamMap = forcesParamMap;
+sys.codeoptions = codeoptions;
+sys.default_codeoptions = default_codeoptions;
+sys.interfaceFunction = str2func(default_codeoptions.name);
+
+sys = class(sys,'optimizerFORCES');
+
+% Generate MEX code that is called when the solver is used
+disp('Generating C interface...');
+%generateSolverInterfaceCode(sys);
+generateCInterfaceCode(sys);
+generateMEXInterfaceCode(sys);
+generateSimulinkInterfaceCode(sys);
+
+% Compile MEX code
+disp('Compiling MEX code for solver interface...');
+
+compileSolverInterfaceCode(sys);
+
+% Generate help file
+disp('Writing help file...');
+
+generateHelp(sys);
+
+if (~isfield(default_codeoptions,'BuildSimulinkBlock') || default_codeoptions.BuildSimulinkBlock ~= 0)
+ % Compile Simulink code (is optional)
+ disp('Compiling Simulink code for solver interface...');
+
+ compileSimulinkInterfaceCode(sys);
+
+ % Compile Simulink code
+ disp('Generating Simulink Block...');
+
+ generateSimulinkBlock(sys);
+end
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ function [internalmodel,H,f,Aineq,bineq,Aeq,beq,lb,ub] = getQpAndModelFromYALMIP()
+ % Helper function that uses YALMIP to create Qp from user's constraints
+ % and objective. Parameters and quadratic constraints are ignored for
+ % now and handled later on.
+
+ % Call YALMIP's export
+ % model contains Qp (in quadprog format)
+ % internalmodel contains data that we need to recover parameters and
+ % quadratic inequalities
+ options = sdpsettings('solver','+quadprog','verbose',2);
+ [model,~,diagnostics,internalmodel] = export(constraint,objective,options,[],[],1);
+ if ~isempty(diagnostics)
+ disp(diagnostics)
+ error('YALMIP was not able to convert the problem into a QCQp.')
+ end
+
+ % Get matrices from quadprog model
+ H = full(model.Q);
+ f = full(model.c);
+ Aineq = full(model.A);
+ bineq = full(model.b);
+ Aeq = full(model.Aeq);
+ beq = full(model.beq);
+ lb = full(model.lb);
+ ub = full(model.ub);
+
+ % YALMIP doesn't always recognize bounds as such (and makes them
+ % inequalities) --> we have to convert them
+ bounds_idx = []; % remember to delete these
+ for i=1:size(Aineq,1)
+ vars = find(Aineq(i,:)); % variables used in inequality
+ if length(vars) == 1 && internalmodel.variabletype(vars) == 0 % a single linear variable
+ % we can make a bound out of this
+ bounds_idx(end+1) = i;
+ if Aineq(i,vars) > 0 % upper bound
+ ub(vars) = min(ub(vars),bineq(i)/Aineq(i,vars));
+ else % < 0 --> lower bound
+ lb(vars) = max(lb(vars),bineq(i)/Aineq(i,vars));
+ end
+ end
+ end
+ Aineq(bounds_idx,:) = [];
+ bineq(bounds_idx) = [];
+
+ end
+
+ function [qcqpParams,Q,l,r,solverVars,paramVars,yalmipParamMap] = buildParamsAndQuadIneqs()
+ % Helper function that builds QCQp parameter list and recognises
+ % quadratic inequalities
+
+ % Build empty additive QCQp param struct
+ qcqpParams.H = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.f = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.Aineq = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.bineq = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.Aeq = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.beq = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.l = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.Q = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.r = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.lb = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.ub = struct('maps2index',{},'maps2origparam',{},...
+ 'maps2mat',{},'factor',{});
+ qcqpParams.bidx = [];
+
+ % Build empty quadratic constraints
+ Q = {};
+ l = [];
+ r = [];
+
+ % Find all YALMIP variable indices for parameters & build parameter map
+ paramVars = []; % YALMIP variables that are parameters
+ yalmipParamMap = zeros(2,0); % 1st row: index of matrix with values,
+ % 2nd row: index of element inside matrix
+ if ~isempty(parameters)
+ sys.paramSizes = zeros(numel(parameters),2);
+ for i=1:numel(parameters)
+ if ~isa(parameters{i}, 'sdpvar')
+ error('Parameters must be a SDPVAR or a cell array of SDPVARs.');
+ end
+
+ % store size for code generation
+ sys.paramSizes(i,:) = size(parameters{i});
+
+ % find YALMIP variables that make up parameter
+ newParams = getvariables(parameters{i});
+ paramVars = [paramVars newParams];
+
+ % find element inside matrix (given by user) that contains value of
+ % parameter
+ for p=newParams
+ yalmipParamMap(:,end+1) = [i; find(getbasematrix(parameters{i},p),1)];
+ end
+ end
+
+ assert(length(paramVars) == size(yalmipParamMap,2));
+ sys.numParams = numel(parameters);
+ else
+ sys.numParams = 0;
+ end
+
+
+
+ quadIneq = zeros(2,0); % data structure for keeping track of (parametric) quadratic inequalities
+ % first row: id of linear inequality
+ % second row: id of quad inequality
+
+ % Go through all variables and classify them. Remove parameters and
+ % interpret
+ removeIdx = []; % don't forget to delete these
+ for i=length(internalmodel.used_variables):-1:1 % go through all YALMIP variables
+ var = recover(internalmodel.used_variables(i)); % get corresponding SDPVAR object
+
+ % is this variables binary?
+ binary = ismember(i,internalmodel.integer_variables);
+ if binary
+ qcqpParams.bidx(end+1) = i;
+
+ if lb(i) ~= 0 || ub(i) ~= 1
+ error('No integer variables other than binary supported.');
+ end
+ end
+
+ % Is this variable a linear parameter?
+ if is(var, 'linear') && ...
+ any(paramVars == internalmodel.used_variables(i))
+
+ % Parameters cannot be binary
+ if binary
+ error('Parameters cannot be binary.');
+ end
+
+ % index in parameter list (needed to recover value later on)
+ p_idx = find(paramVars == internalmodel.used_variables(i),1);
+
+ % Variable is parameter --> remove it
+ removeIdx = [removeIdx i];
+
+ % Check if parameter appears in H --> put into f
+ rows = find(H(:,i));
+ rows = rows(rows ~= i); % param*param just adds a constant term to cost
+ for row=rows'
+ if ~any(paramVars == internalmodel.used_variables(row)) % param1*param2 just adds a constant term to cost
+ qcqpParams.f(end+1) = newAdditiveQcqpParam(row,p_idx,1,0.5*H(row,i));
+ end
+ end
+ cols = find(H(i,:));
+ cols = cols(cols ~= i); % param*param just adds a constant term to cost
+ for col=cols
+ if ~any(paramVars == internalmodel.used_variables(col)) % param1*param2 just adds a constant term to cost
+ qcqpParams.f(end+1) = newAdditiveQcqpParam(col,p_idx,1,0.5*H(i,col));
+ end
+ end
+
+ % We can ignore it if param appears in f (just a constant term)
+
+ % Check if parameter is used in Aineq --> add to bineq
+ rows = find(Aineq(:,i));
+ for row=rows'
+ qcqpParams.bineq(end+1) = newAdditiveQcqpParam(row,p_idx,1,-Aineq(row,i));
+ end
+
+ % Check if parameter is used in Aeq --> add to beq
+ rows = find(Aeq(:,i));
+ for row=rows'
+ qcqpParams.beq(end+1) = newAdditiveQcqpParam(row,p_idx,1,-Aeq(row,i));
+ end
+
+ % Check bounds
+ if lb(i) ~= -Inf || ub(i) ~= Inf
+ beep
+ warning('Y2F:parameterBounds','Bounds on parameters have no effect.')
+ end
+
+ % Quadratic constraints don't have to be checked
+
+ elseif ~is(var, 'linear')
+
+ % Nonlinear variables cannot be binary
+ if binary
+ error('Nonlinear variables cannot be binary.');
+ end
+
+ % Is variable bilinear/quadratic?
+ if sum(internalmodel.monomtable(i,:)) == 2
+ % Is variable the square of another variable?
+ if any(internalmodel.monomtable(i,:)==2)
+ v_idx = find(internalmodel.monomtable(i,:)==2,1);
+ assert(length(v_idx)==1);
+ v = internalmodel.used_variables(v_idx);
+ if any(paramVars == v)
+ error('Parameters can only be used affinely.')
+ end
+
+ % Remove this pseudo-variable
+ removeIdx = [removeIdx i];
+
+ % If it appears in the linear cost --> move it
+ if f(i) ~= 0
+ H(v_idx,v_idx) = H(v_idx,v_idx) + 2*f(i);
+ end
+
+ % Cannot appear in quadratic cost
+ if nnz(H(i,:)) > 0 || nnz(H(:,i)) > 0
+ error('Non-quadratic term appears in cost.')
+ end
+
+ % Cannot appear in equalities
+ if nnz(Aeq(:,i)) > 0
+ error('Quadratic equalities are not supported.')
+ end
+
+ % Check bounds
+ if lb(i) ~= -Inf || ub(i) ~= Inf
+ beep
+ warning('Y2F:quadraticTermBounds','Bounds on quadratic terms have no effect.')
+ end
+
+ % Check if variable is used in Aineq --> put in quad. ineq.
+ rows = find(Aineq(:,i));
+ for row=rows'
+ [k,quadIneq,Q,l,r] = findOrCreateQuadraticInequality(row,quadIneq,Q,l,r);
+ Q{k}(v_idx,v_idx) = Aineq(row,i);
+ end
+
+ % Is it bilinearly dependent!
+ % (e.g. if C_i is a parameter)
+ else
+ deps_idx = find(internalmodel.monomtable(i,:)==1);
+ assert(length(deps_idx) == 2);
+ deps = internalmodel.used_variables(deps_idx);
+
+ if all(ismember(deps, paramVars))
+ error('Parameters can only be used affinely.')
+ end
+
+ if ~any(ismember(deps, paramVars)) % no parameter
+ % Remove this pseudo-variable
+ removeIdx = [removeIdx i];
+
+ % If it appears in the linear cost --> move it
+ if f(i) ~= 0
+ H(deps_idx(1),deps_idx(2)) = H(deps_idx(1),deps_idx(2)) + f(i);
+ H(deps_idx(2),deps_idx(1)) = H(deps_idx(2),deps_idx(1)) + f(i);
+ end
+
+ % Cannot appear in quadratic cost
+ if nnz(H(i,:)) > 0 || nnz(H(:,i)) > 0
+ error('Non-quadratic term appears in cost.')
+ end
+
+ % Cannot appear in equalities
+ if nnz(Aeq(:,i)) > 0
+ error('Bilinear equalities are not supported.')
+ end
+
+ % Check bounds
+ if lb(i) ~= -Inf || ub(i) ~= Inf
+ beep
+ warning('Y2F:bilinearTermBounds','Bounds on bilinear terms have no effect.')
+ end
+
+ % Check if variable is used in Aineq --> put in quad. ineq.
+ rows = find(Aineq(:,i));
+ for row=rows'
+ [k,quadIneq,Q,l,r] = findOrCreateQuadraticInequality(row,quadIneq,Q,l,r);
+ Q{k}(deps_idx(1),deps_idx(2)) = 0.5*Aineq(row,i);
+ Q{k}(deps_idx(2),deps_idx(1)) = 0.5*Aineq(row,i);
+ end
+
+ else % a parameter is involed
+ if any(deps(1) == paramVars) && ...
+ ~any(deps(2) == paramVars) && ...
+ is(recover(deps(2)),'linear')
+ v = deps(2); % variable
+ v_idx = find(internalmodel.used_variables == v,1);
+ p = deps(1); % parameter
+ p_idx = find(paramVars == p,1);
+ elseif any(deps(2) == paramVars) && ...
+ ~any(deps(1) == paramVars) && ...
+ is(recover(deps(1)),'linear')
+ v = deps(1);
+ v_idx = find(internalmodel.used_variables == v,1);
+ p = deps(2);
+ p_idx = find(paramVars == p,1);
+ else % This shouldn't happen! Case is handled above
+ error('Internal error! Please contact support@embotech.ch')
+ end
+
+ % Variable is parameter --> remove it
+ removeIdx = [removeIdx i];
+
+ % Does bilinear combo influence cost?
+ if f(i) ~= 0
+ qcqpParams.f(end+1) = newAdditiveQcqpParam(v_idx,p_idx,1,f(i));
+ end
+
+ if any(H(:,i)) || any(H(i,:))
+ error('Parameters can only be used affinely.')
+ end
+
+ % Check if parameter is used in Aineq
+ rows = find(Aineq(:,i));
+ for row=rows'
+ qcqpParams.Aineq(end+1) = newAdditiveQcqpParam(sub2ind(size(Aineq),row,v_idx),p_idx,1,Aineq(row,i));
+ end
+
+ % Check if parameter is used in Aeq
+ rows = find(Aeq(:,i));
+ for row=rows'
+ qcqpParams.Aeq(end+1) = newAdditiveQcqpParam(sub2ind(size(Aeq),row,v_idx),p_idx,1,Aeq(row,i));
+ end
+
+ % Check bounds
+ if lb(i) ~= -Inf || ub(i) ~= Inf
+ beep
+ warning('Y2F:bilinearTermBounds','Bounds on bilinear terms have no effect.')
+ end
+ end
+ end
+ elseif sum(internalmodel.monomtable(i,:))==3
+ % Decide which variable is the parameter
+ % At the end v1 and v2 are real variables, p is the parameter
+ temp_idx = find(internalmodel.monomtable(i,:));
+ if length(temp_idx) == 2 % p*x^2
+ v1_idx = find(internalmodel.monomtable(i,:) == 2,1); % variable
+ v1 = internalmodel.used_variables(v1_idx);
+ v2_idx = v1_idx;
+ v2 = v1;
+ p = internalmodel.used_variables(find(internalmodel.monomtable(i,:) == 1,1));
+ p_idx = find(paramVars == p,1);
+ if isempty(p_idx) || any(paramVars == v1)
+ error('One of the non-quadratic terms cannot be interpreted.')
+ end
+ elseif length(temp_idx) == 3 % p*x1*x2
+ temp_idx = find(internalmodel.monomtable(i,:) == 1);
+ temp_vars = internalmodel.used_variables(temp_idx); % variables & parameter
+ if ismember(temp_vars(1), paramVars) && ~any(ismember(temp_vars(2:3), paramVars))
+ v1_idx = temp_idx(2); % variables
+ v1 = temp_vars(2);
+ v2_idx = temp_idx(3);
+ v2 = temp_vars(3);
+ p = temp_vars(1);
+ p_idx = find(paramVars == p,1);
+ elseif ismember(temp_vars(2), paramVars) && ~any(ismember(temp_vars([1 3]), paramVars))
+ v1_idx = temp_idx(1); % variables
+ v1 = temp_vars(1);
+ v2_idx = temp_idx(3);
+ v2 = temp_vars(3);
+ p = temp_vars(2);
+ p_idx = find(paramVars == p,1);
+ elseif ismember(temp_vars(3), paramVars) && ~any(ismember(temp_vars(1:2), paramVars))
+ v1_idx = temp_idx(1); % variables
+ v1 = temp_vars(1);
+ v2_idx = temp_idx(2);
+ v2 = temp_vars(2);
+ p = temp_vars(3);
+ p_idx = find(paramVars == p,1);
+ else
+ error('One of the non-quadratic terms cannot be interpreted.')
+ end
+ else
+ error('One of the non-quadratic terms cannot be interpreted.')
+ end
+
+ % Variable is parameter --> remove it
+ removeIdx = [removeIdx i];
+
+ if f(i) ~= 0 % pseudo-variable affects cost --> param in H
+ qcqpParams.H(end+1) = newAdditiveQcqpParam(sub2ind(size(H),v1_idx,v2_idx),p_idx,1,f(i));
+ qcqpParams.H(end+1) = newAdditiveQcqpParam(sub2ind(size(H),v2_idx,v1_idx),p_idx,1,f(i));
+ end
+
+ % Cannot appear in quadratic cost
+ if nnz(H(i,:)) > 0 || nnz(H(:,i)) > 0
+ error('Non-quadratic term appears in cost.')
+ end
+
+ % Cannot appear in equalities
+ if nnz(Aeq(:,i)) > 0
+ error('Nonlinear equalities are not allowed.')
+ end
+
+ % Check bounds
+ if lb(i) ~= -Inf || ub(i) ~= Inf
+ beep
+ warning('Y2F:nonlinearTermBounds','Bounds on nonlinear terms have no effect.')
+ end
+
+ % Check inequalities
+ rows = find(Aineq(:,i));
+ for row=rows'
+ [k,quadIneq,Q,l,r] = findOrCreateQuadraticInequality(row,quadIneq,Q,l,r);
+ if v1_idx ~= v2_idx % make sure Q is symmetric
+ qcqpParams.Q(end+1) = newAdditiveQcqpParam(sub2ind(size(Q{k}),v1_idx,v2_idx),p_idx,k,0.5*Aineq(row,i));
+ qcqpParams.Q(end+1) = newAdditiveQcqpParam(sub2ind(size(Q{k}),v2_idx,v1_idx),p_idx,k,0.5*Aineq(row,i));
+ else
+ qcqpParams.Q(end+1) = newAdditiveQcqpParam(sub2ind(size(Q{k}),v1_idx,v1_idx),p_idx,k,Aineq(row,i));
+ end
+ end
+ else
+ error('One of the non-quadratic terms cannot be interpreted.')
+ end
+ end
+ end
+
+ % Before removing params, every real state can be recovered
+ solverVars = internalmodel.used_variables;
+ solverVars(removeIdx) = [];
+
+ % Compute shifts of variables (to adjust parameters)
+ shift = zeros(1,length(internalmodel.used_variables));
+ for i=1:length(shift)
+ shift(i) = nnz(removeIdx <= i);
+ end
+
+ % Remove parameter indices from equations
+ H(removeIdx,:) = [];
+ H(:,removeIdx) = [];
+ f(removeIdx) = [];
+ Aineq(:,removeIdx) = [];
+ Aeq(:,removeIdx) = [];
+ lb(removeIdx) = [];
+ ub(removeIdx) = [];
+ if ~isempty(Q)
+ for k=1:numel(Q)
+ Q{k}(removeIdx,:) = [];
+ Q{k}(:,removeIdx) = [];
+ end
+ l(removeIdx,:) = [];
+ end
+
+ % Shift indices of parameters
+ for i=1:numel(qcqpParams.H)
+ [row,col] = ind2sub(size(H)+length(removeIdx),qcqpParams.H(i).maps2index);
+ qcqpParams.H(i).maps2index = sub2ind(size(H),row-shift(row),col-shift(col));
+ end
+ for i=1:numel(qcqpParams.f)
+ qcqpParams.f(i).maps2index = qcqpParams.f(i).maps2index - shift(qcqpParams.f(i).maps2index);
+ end
+ for i=1:numel(qcqpParams.Aineq)
+ [row,col] = ind2sub(size(Aineq)+[0 length(removeIdx)],qcqpParams.Aineq(i).maps2index);
+ qcqpParams.Aineq(i).maps2index = sub2ind(size(Aineq),row,col-shift(col));
+ end
+ for i=1:numel(qcqpParams.Aeq)
+ [row,col] = ind2sub(size(Aeq)+[0 length(removeIdx)],qcqpParams.Aeq(i).maps2index);
+ qcqpParams.Aeq(i).maps2index = sub2ind(size(Aeq),row,col-shift(col));
+ end
+ for i=1:numel(qcqpParams.lb)
+ qcqpParams.lb(i).maps2index = qcqpParams.lb(i).maps2index - shift(qcqpParams.lb(i).maps2index);
+ end
+ for i=1:numel(qcqpParams.ub)
+ qcqpParams.ub(i).maps2index = qcqpParams.ub(i).maps2index - shift(qcqpParams.ub(i).maps2index);
+ end
+ for i=1:numel(qcqpParams.Q)
+ [row,col] = ind2sub(size(Q{qcqpParams.Q(i).maps2mat})+length(removeIdx),qcqpParams.Q(i).maps2index);
+ qcqpParams.Q(i).maps2index = sub2ind(size(Q{qcqpParams.Q(i).maps2mat}),row,col-shift(col));
+ end
+ for i=1:numel(qcqpParams.l)
+ qcqpParams.l(i).maps2index = qcqpParams.l(i).maps2index - shift(qcqpParams.l(i).maps2index);
+ end
+
+ % Shift & sort binary variables
+ qcqpParams.bidx = sort(qcqpParams.bidx - shift(qcqpParams.bidx));
+
+ % Finish converting linear inequalities to quadratic ones
+ for i=1:size(quadIneq,2)
+ row = quadIneq(1,i);
+ k = quadIneq(2,i);
+
+ r(k) = r(k) + bineq(row);
+ l(:,k) = l(:,k) + Aineq(row,:)';
+
+ % Convert bineq params
+ relevantParams = findRelevantParams(row, 1, size(bineq), qcqpParams.bineq);
+ for j=fliplr(relevantParams) % sort descending
+ qcqpParams.r(end+1) = newAdditiveQcqpParam(k,qcqpParams.bineq(j).maps2origparam, ...
+ 1, qcqpParams.bineq(j).factor);
+ qcqpParams.bineq(j) = [];
+ end
+
+ % Convert Aineq params
+ relevantParams = findRelevantParams(row, 1:size(Aineq,2), size(Aineq), qcqpParams.Aineq);
+ for j=fliplr(relevantParams) % sort descending
+ [~,col] = ind2sub(size(Aineq), qcqpParams.Aineq(j).maps2index);
+ qcqpParams.l(end+1) = newAdditiveQcqpParam(col,qcqpParams.Aineq(j).maps2origparam, ...
+ k, qcqpParams.Aineq(j).factor);
+ qcqpParams.Aineq(j) = [];
+ end
+ end
+ % Compute shift in rows for linear inequalites
+ shift = zeros(1,length(bineq));
+ for i=1:length(shift)
+ shift(i) = nnz(quadIneq(1,:) <= i);
+ end
+ % Delete linear inequalities
+ Aineq(quadIneq(1,:),:) = [];
+ bineq(quadIneq(1,:)) = [];
+ % Fix parameters
+ for i=1:numel(qcqpParams.Aineq)
+ [row,col] = ind2sub(size(Aineq)+[length(quadIneq(1,:)) 0],qcqpParams.Aineq(i).maps2index);
+ qcqpParams.Aineq(i).maps2index = sub2ind(size(Aineq),row-shift(row),col);
+ end
+ for i=1:numel(qcqpParams.bineq)
+ qcqpParams.bineq(i).maps2index = qcqpParams.bineq(i).maps2index - shift(qcqpParams.bineq(i).maps2index);
+ end
+
+ % Convert inequalities to bounds - Round 2
+ % This is only necessary if we have parameters that affect bounds
+ bounds_idx = [];
+ for i=1:size(Aineq,1)
+ vars = find(Aineq(i,:)); % variables used in inequality
+ if length(vars) == 1 && is(recover(solverVars(vars)),'linear')
+ relevantParams = findRelevantParams(i, 1:size(Aineq,2), size(Aineq), qcqpParams.Aineq);
+ if isempty(relevantParams) % No parameters affecting LHS of inequality
+ if Aineq(i,vars) > 0 && ub(vars) == Inf % No bounds so far
+ % we can make a bound out of this
+ bounds_idx(end+1) = i;
+ ub(vars) = bineq(i)/Aineq(i,vars);
+
+ % Convert bineq params
+ relevantParams = findRelevantParams(i, 1, size(bineq), qcqpParams.bineq);
+ for j=fliplr(relevantParams) % sort descending
+ qcqpParams.ub(end+1) = newAdditiveQcqpParam(vars,qcqpParams.bineq(j).maps2origparam, ...
+ 1, qcqpParams.bineq(j).factor/Aineq(i,vars));
+ qcqpParams.bineq(j) = [];
+ end
+ elseif Aineq(i,vars) < 0 && lb(vars) == -Inf % No bounds so far
+ % we can make a bound out of this
+ bounds_idx(end+1) = i;
+ lb(vars) = bineq(i)/Aineq(i,vars);
+
+ % Convert bineq params
+ relevantParams = findRelevantParams(i, 1, size(bineq), qcqpParams.bineq);
+ for j=fliplr(relevantParams) % sort descending
+ qcqpParams.lb(end+1) = newAdditiveQcqpParam(vars,qcqpParams.bineq(j).maps2origparam, ...
+ 1, qcqpParams.bineq(j).factor/Aineq(i,vars));
+ qcqpParams.bineq(j) = [];
+ end
+ end
+ end
+ end
+ end
+ % Compute shift in rows for linear inequalites
+ shift = zeros(1,length(bineq));
+ for i=1:length(shift)
+ shift(i) = nnz(bounds_idx <= i);
+ end
+ % Delete rows
+ Aineq(bounds_idx,:) = [];
+ bineq(bounds_idx) = [];
+ % Fix parameters
+ for i=1:numel(qcqpParams.Aineq)
+ [row,col] = ind2sub(size(Aineq)+[length(bounds_idx) 0],qcqpParams.Aineq(i).maps2index);
+ qcqpParams.Aineq(i).maps2index = sub2ind(size(Aineq),row-shift(row),col);
+ end
+ for i=1:numel(qcqpParams.bineq)
+ qcqpParams.bineq(i).maps2index = qcqpParams.bineq(i).maps2index - shift(qcqpParams.bineq(i).maps2index);
+ end
+ end
+
+ function [k,quadIneq,Q,l,r] = findOrCreateQuadraticInequality(rowIdx,quadIneq,Q,l,r)
+ % Helper function to find/create quadratic inequalities
+ % Input:
+ % rowIdx index of linear inequality (row in Aineq)
+ % quadIneq data structure containing information about quadratic
+ % inequalities
+ % first row: id of linear inequality
+ % second row: id of quad inequality
+ % Q,l,r quadratic inequalities
+ %
+ % Output:
+ % k index of quadratic inequality (as in Q{k} = ...)
+ % updated quadIneq, Q, l, and r
+ id = find(quadIneq(1,:) == rowIdx);
+ if ~isempty(id)
+ assert(length(id) == 1);
+ k = quadIneq(2,id);
+ else
+ Q{end+1} = spalloc(size(H,1),size(H,2),0);%zeros(size(H));
+ l(:,end+1) = spalloc(size(H,1),1,0); %zeros(size(H,1),1);
+ r(end+1) = 0;
+ k = length(r);
+ quadIneq(:,end+1) = [rowIdx;k];
+ end
+ end
+
+ function outputFORCES = buildOutput()
+ % Helper function that builds the output struct required for the FORCES
+ % solver(s), an outputMap that allows to recover the wantend output
+ % values from the solver output, an outputParamTable that allows the
+ % usage of parameters in outputs
+
+ outputFORCES = {};
+ % we need to know which output to get from which solver
+ sys.outputMap = zeros(3,0); % 1st row: variable type (1=decision variable,2=parameter)
+ % 2nd row: index of solver/index of parameter value
+ % 3rd row: index of output/index of element inside value matrix
+
+ o = ones(numel(stages),1); % counter variable outputs
+ p = 1; % counter parameters
+ k = 1; % counter total number of outputs
+ for i=1:numel(solverOutputs)
+ outputVars = getvariables(solverOutputs{i});
+ sys.outputBase{i} = full(getbase(solverOutputs{i}));
+ sys.outputSize{i} = size(solverOutputs{i});
+ for j=1:length(outputVars)
+ idx = find(solverVars == outputVars(j),1);
+ if length(idx) == 1
+ [stage, state, component] = findVariableIndex(graphComponents,idx);
+ outputFORCES{component}(o(component)) = newOutput(sprintf('o_%u',o(component)), stage, state);
+ sys.outputMap(:,end+1) = [1; component; o(component)];
+ o(component) = o(component) + 1;
+ else
+ idx = find(paramVars == outputVars(j),1);
+ if length(idx) == 1
+ sys.outputMap(:,end+1) = [2; yalmipParamMap(:,idx)];
+ p = p+1;
+ else
+ error('Output is not valid. Only linear combinations of optimization variables and parameters are allowed.')
+ end
+ end
+ k = k + 1;
+ end
+ end
+ sys.lengthOutput = k-1;
+ end
+
+ function checkQcqpForInfeasibility()
+ % Helper function that checks if the QCQP might be infeasible and warns
+ % the user
+
+ % Check if cost matrix is positive semi-definite
+ if isempty(qcqpParams.H) && (~issymmetric(H) || ~all(eig(H) >= -1e-7))
+ error('Hessian is not positive semi-definite.')
+ end
+
+ if ~issymmetric(H_temp)
+ beep
+ warning('Y2F:nonsymmetricHessian','Hessian is not symmetric.')
+ end
+
+ % Check if bounds make sense
+ if isempty(qcqpParams.lb) && isempty(qcqpParams.ub) && any(lb > ub)
+ error('Bounds are infeasible.')
+ end
+
+ % Check if any quadratic constraint matrix is indefinite
+ for k=1:numel(Q_temp)
+ if ~issymmetric(Q_temp{k})
+ beep
+ warning('Y2F:nonsymmetricQuadraticConstraint', ...
+ 'One of the quadratic constraint matrices is not symmetric.')
+ end
+
+ if isempty(qcqpParams.Q) && any(eig(Q{k}) < -1e-7) && any(eig(Q{k}) > -1e-7)
+ beep
+ warning('Y2F:indefiniteQuadraticConstraint', ...
+ 'One of the quadratic constraint matrices is indefinite.')
+ end
+ end
+
+ % Create warning if binary variables are used
+ if ~isempty(qcqpParams.bidx)
+ while 1
+ beep
+ % MATLAB displays anything between [\8 ... ]\8 in orange font
+ in = input(['[' 8 'YALMIP created a mixed integer problem. This could slow down the generated solver.\nDo you want to continue [y/n]? ]' 8],'s');
+ if strcmpi(in,'y')
+ break
+ elseif strcmpi(in,'n')
+ error('Please reformulate your problem or contact support at support@embotech.com.');
+ end
+ end
+ end
+ end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/subsref.m b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/subsref.m
new file mode 100755
index 0000000..3fd6fed
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/@optimizerFORCES/subsref.m
@@ -0,0 +1,18 @@
+function [output,exitflag,info] = subsref(self,subs)
+%SUBSREF Overload of subsref. Makes A{B} for object A possible.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if isequal(subs.type,'.')
+ error('No fields accessible in OPTIMIZERFORCES.');
+elseif isequal(subs.type,'{}') || isequal(subs.type,'()') % --> call solver
+ if numel(subs.subs) == 1 && isa(subs.subs{1},'cell')
+ paramValues = subs.subs{1};
+ else
+ paramValues = subs.subs;
+ end
+ [output,exitflag,info] = self.interfaceFunction(paramValues);
+end
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/checkIfGraphIsConnected.m b/Yuwen project/FORCES_client/Y2F/Y2F/checkIfGraphIsConnected.m
new file mode 100755
index 0000000..c604cfa
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/checkIfGraphIsConnected.m
@@ -0,0 +1,28 @@
+function result = checkIfGraphIsConnected( G )
+%CHECKIFGRAPHISCONNECTED result = 1 if G is connected graph, 0 otherwise
+% G has the format described in EMPTYGRAPH
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if G.n <= 1
+ result = 1;
+ return
+end
+
+nextVertices = 1;
+verticesNotVisited = 2:G.n;
+
+while ~isempty(verticesNotVisited) && ~isempty(nextVertices)
+ v = nextVertices(1);
+ idx = intersect(find(G.adjMatrix(v,:)), verticesNotVisited);
+ verticesNotVisited = setdiff(verticesNotVisited, idx);
+ nextVertices = [nextVertices(2:end) idx];
+end
+
+result = isempty(verticesNotVisited);
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/checkIfGraphIsPathGraph.m b/Yuwen project/FORCES_client/Y2F/Y2F/checkIfGraphIsPathGraph.m
new file mode 100755
index 0000000..f64cdcb
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/checkIfGraphIsPathGraph.m
@@ -0,0 +1,35 @@
+function result = checkIfGraphIsPathGraph( G )
+%CHECKGRAPHISPATHGRAPH Checks if a graph is a path graph
+% result = 1 if given graph is a path graph, 0 otherwise
+% G has the format described in EMPTYGRAPH
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+result = 0;
+
+if ~checkIfGraphIsConnected(G)
+ return
+end
+
+% Simple cases
+if G.n <= 1
+ result = 1;
+ return
+end
+
+% Do we have the right degrees? We need two 1s and the rest 2s
+deg = sum(G.adjMatrix);
+% Find the 1s
+ones = find(deg == 1);
+if length(ones) == 2
+ deg(ones) = [];
+ if all(deg == 2)
+ result = 1;
+ end
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/contractVertices.m b/Yuwen project/FORCES_client/Y2F/Y2F/contractVertices.m
new file mode 100755
index 0000000..9533469
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/contractVertices.m
@@ -0,0 +1,37 @@
+function G = contractVertices( G, vertex1, vertex2 )
+%CONTRACTVERTICES Contract two vertices of a graph
+% graph = graph data structure (see EMPTYGRAPH for more information)
+% vertex1 = index of first vertex
+% vertex2 = index of second vertex
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if vertex1 == vertex2
+ return % nothing to do
+end
+
+% We want to keep vertices in order --> switch if necessary
+if G.vertices{vertex1}(1) > G.vertices{vertex2}(1)
+ v = vertex1;
+ vertex1 = vertex2;
+ vertex2 = v;
+end
+
+% Fix edges
+G.adjMatrix(vertex1,:) = G.adjMatrix(vertex1,:) | G.adjMatrix(vertex2,:);
+G.adjMatrix(:,vertex1) = G.adjMatrix(:,vertex1) | G.adjMatrix(:,vertex2);
+G.adjMatrix(vertex1,vertex1) = 0;
+G.adjMatrix(:,vertex2) = [];
+G.adjMatrix(vertex2,:) = [];
+
+% Merge variable sets
+G.vertices{vertex1} = sort([G.vertices{vertex1} G.vertices{vertex2}]);
+G.vertices(vertex2) = [];
+
+G.n = G.n - 1;
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/emptyGraph.m b/Yuwen project/FORCES_client/Y2F/Y2F/emptyGraph.m
new file mode 100755
index 0000000..10c0027
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/emptyGraph.m
@@ -0,0 +1,18 @@
+function G = emptyGraph()
+%EMPTYGRAPH returns an empty graph G
+% Graphs are stored as structs with the following fields:
+% .vertices cell array of vertex labels (lists of variable indices)
+% .adjMatrix adjacency matrix
+% .n number of vertices
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+G.vertices = {};
+G.adjMatrix = [];
+G.n = 0;
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/findPathPartition.m b/Yuwen project/FORCES_client/Y2F/Y2F/findPathPartition.m
new file mode 100755
index 0000000..257d42c
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/findPathPartition.m
@@ -0,0 +1,63 @@
+function partition = findPathPartition( G )
+%FINDPATHPARTITION Applies path partitioning algorithm to find a maximal
+%path partition of the graph G. G has the format described in EMPTYGRAPH.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if G.n == 1
+ partition = G;
+ return
+end
+
+% order vertices according to their degree --> lower degree vertices are
+% preferred as starting vertices (likely to belong to first or last stage)
+indicies = 1:G.n;
+deg = sum(G.adjMatrix);
+[~,I] = sort(deg);
+indicies = indicies(I);
+
+% Start path partitioning with every vertices and compare number of subsets
+best_vertices = {};
+min_cost = 0;
+for i=indicies
+ % Path partitioning ("Algorithm 1" in the thesis)
+ v = i;
+ vertices = {[G.vertices{v}]};
+ remaining_v = ones(1,G.n);
+ remaining_v(v) = 0;
+ while any(remaining_v)
+ next_v = find(any(G.adjMatrix(v,:),1) & remaining_v);
+ vertices{end+1} = [G.vertices{next_v}];
+ remaining_v(next_v) = 0;
+ v = next_v;
+ end
+
+ % Compare number of subsets with current best
+ cost = costOfGraphVertices(vertices);
+ if isempty(best_vertices) || numel(vertices) > numel(best_vertices) || cost < min_cost
+ best_vertices = vertices;
+ min_cost = cost;
+ end
+end
+
+% Create new graph from path partitioning
+partition = emptyGraph;
+partition.vertices = best_vertices;
+partition.n = numel(best_vertices);
+partition.adjMatrix = zeros(partition.n);
+partition.adjMatrix(partition.n+1:partition.n+1:end) = 1;
+partition.adjMatrix(2:partition.n+1:end) = 1;
+
+end
+
+function cost = costOfGraphVertices(vertices)
+% Computes a cost that can be used to compare different path graphs
+% Cost depends on number of subsets and variables in those subsets
+
+cost = sum(cellfun(@length,vertices).^3);
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/findRelevantParams.m b/Yuwen project/FORCES_client/Y2F/Y2F/findRelevantParams.m
new file mode 100755
index 0000000..37dd920
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/findRelevantParams.m
@@ -0,0 +1,34 @@
+function idx = findRelevantParams( rowIdx, colIdx, matrixSize, qcqpParamList, maps2mat )
+%FINDRELEVANTPARAMS Helper function that finds QCQP parameters that apply
+%to given (subscript) indices (and matrix) inside given parameter list.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+% convert subscripts to linear indices
+linIndices = [];
+if all(matrixSize > 1)
+ for c=colIdx
+ for r=rowIdx
+ linIndices(end+1) = sub2ind(matrixSize,r,c);
+ end
+ end
+elseif matrixSize(2) == 1
+ linIndices = rowIdx;
+elseif matrixSize(1) == 1
+ linIndices = colIdx;
+end
+
+% compare linear indices to index of every QCQP param
+idx = [];
+for i=1:numel(qcqpParamList)
+ if any(ismember(qcqpParamList(i).maps2index, linIndices)) && ...
+ (nargin==4 || qcqpParamList(i).maps2mat == maps2mat)
+ idx(end+1) = i;
+ end
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/findVariableIndex.m b/Yuwen project/FORCES_client/Y2F/Y2F/findVariableIndex.m
new file mode 100755
index 0000000..ddb9645
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/findVariableIndex.m
@@ -0,0 +1,33 @@
+function [vertexIdx,localIdx,componentIdx] = findVariableIndex( components, variable )
+%FINDVARIABLEINDEX Returns index of vertex where the given variable is
+% located, the position inside the vertex, and the corresponding component
+% index. If variable cannot be found this function returns 0.
+%
+% Input:
+% components cell array of connected graphs
+% variable variable number
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if ~iscell(components)
+ components = {components};
+end
+
+for k=1:numel(components)
+ G = components{k};
+ vertexIdx = 0;
+ componentIdx = k;
+ for i=1:numel(G.vertices)
+ localIdx = find(G.vertices{i} == variable,1);
+ if ~isempty(localIdx)
+ vertexIdx = i;
+ return
+ end
+ end
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/forcesprologo.jpg b/Yuwen project/FORCES_client/Y2F/Y2F/forcesprologo.jpg
new file mode 100755
index 0000000..2056f73
Binary files /dev/null and b/Yuwen project/FORCES_client/Y2F/Y2F/forcesprologo.jpg differ
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/generateAdjMatrixFromEqualities.m b/Yuwen project/FORCES_client/Y2F/Y2F/generateAdjMatrixFromEqualities.m
new file mode 100755
index 0000000..bb33ab9
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/generateAdjMatrixFromEqualities.m
@@ -0,0 +1,17 @@
+function adj = generateAdjMatrixFromEqualities( Aeq )
+%GENERATEADJMATRIXFROMEQUALITIES Generates adjacency matrix from equality
+%constraints. If two variables appear in the same equality, the
+%corresponding vertices are connected.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+n = size(Aeq,2);
+adj = double(Aeq ~= 0); % temp result
+adj = (adj'*adj) > 0;
+adj(1:n+1:end) = 0; % diagonal has to be 0
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/generateStagesFromGraph.m b/Yuwen project/FORCES_client/Y2F/Y2F/generateStagesFromGraph.m
new file mode 100755
index 0000000..1b1494e
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/generateStagesFromGraph.m
@@ -0,0 +1,496 @@
+function [stages, params, standardParamValues, forcesParamMap] = generateStagesFromGraph( G, H,f,Aineq,bineq,Aeq,beq,l,Q,r,lb,ub,qcqpParams,yalmipParamMap )
+%GENERATESTAGESFROMGRAPH Generates stages from path graph containing all variables of the problem
+% qcqpParams will be modified to contain a link to the params they are linked to
+% Input:
+% yalmipParamMap: Map that maps YALMIP parameters to value matrices
+% 1st row: index of matrix with values,
+% 2nd row: index of element inside matrix
+%
+% Output:
+% stages: FORCES stages
+% params: FORCES parameters
+% standardParamValues: "standard" values for FORCES parameters.
+% Not every element of the matrix has be
+% covered by a QCQP parameter. Param values
+% get added to this value.
+% forcesParamMap: Map that maps FORCES parameters to parameter value matrices
+% .(param_name)(1,.): index of element that's affected
+% .(param_name)(2,.): factor by which value gets multiplied
+% .(param_name)(3,.): matrix that contains value
+% .(param_name)(4,.): points to element inside value matrix
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+SPARSITY_THRESHOLD = 0.2;
+
+if ~checkIfGraphIsPathGraph(G)
+ error('Path is not a path graph. Other structures are not supported.')
+end
+
+% Find all variable names
+last_idx = G.vertices{1};
+all_idx = sort(cell2mat(G.vertices));
+
+% Prepare stages
+stages = MultistageProblem(G.n);
+params = struct('name',{},'maps2stage',{},'maps2data',{},'type',{},...
+ 'maps2mat',{},'structure',{},'variables',{}); % empty param struct
+standardParamValues = struct;
+p = 1;
+if nargout >= 4
+ forcesParamMap = struct;
+end
+
+% Construct matrices where parametric elements are == 1
+H_temp = H;
+H_temp([qcqpParams.H.maps2index]) = 1;
+Aineq_temp = Aineq;
+Aineq_temp([qcqpParams.Aineq.maps2index]) = 1;
+Aeq_temp = Aeq;
+Aeq_temp([qcqpParams.Aeq.maps2index]) = 1;
+Q_temp = Q;
+for i=1:numel(qcqpParams.Q)
+ Q_temp{qcqpParams.Q(i).maps2mat}(qcqpParams.Q(i).maps2index) = 1;
+end
+l_temp = l;
+for i=1:numel(qcqpParams.l)
+ l_temp(qcqpParams.l(i).maps2index,qcqpParams.l(i).maps2mat) = 1;
+end
+
+% Assemble linear indices of all parameters (for faster checking afterwards)
+qcqpParamIndices.H = [qcqpParams.H.maps2index];
+qcqpParamIndices.f = [qcqpParams.f.maps2index];
+qcqpParamIndices.Aineq = [qcqpParams.Aineq.maps2index];
+qcqpParamIndices.bineq = [qcqpParams.bineq.maps2index];
+qcqpParamIndices.Aeq = [qcqpParams.Aeq.maps2index];
+qcqpParamIndices.beq = [qcqpParams.beq.maps2index];
+qcqpParamIndices.l = [qcqpParams.l.maps2index];
+qcqpParamIndices.Q = [qcqpParams.Q.maps2index];
+qcqpParamIndices.r = [qcqpParams.r.maps2index];
+qcqpParamIndices.lb = [qcqpParams.lb.maps2index];
+qcqpParamIndices.ub = [qcqpParams.ub.maps2index];
+
+% Go through all stages (and create them)
+barwidth = 30;
+%status = y2f_progressbar([],0,G.n,barwidth);
+status = [];
+createParamTime = 0;
+for i=1:G.n
+ idx = G.vertices{i}; % sorting just to make sure code below works
+ stages(i).dims.n = length(idx); % length of stage variable zi
+ stages(i).cost.H = H(idx,idx); % Hessian
+ stages(i).cost.f = f(idx); % linear term
+
+ % Is H a parameter?
+ local_H_temp = H_temp(idx,idx);
+ if all(local_H_temp(~eye(length(idx))) == 0) % is H diagonal?
+ tic;
+ param = findRelevantQcqpParamsAndCreateDiagonalForcesParameter( ...
+ i,idx,size(H),qcqpParams.H,qcqpParamIndices.H,'cost.H');
+ if ~isempty(param)
+ standardParamValues.(param.name) = stages(i).cost.H(1:(length(idx)+1):end);
+ stages(i).cost.H = [];
+ end
+ createParamTime = createParamTime + toc;
+ else % H not diagonal --> standard function
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,idx,idx,size(H),qcqpParams.H,qcqpParamIndices.H,'cost.H');
+ createParamTime = createParamTime + toc;
+ end
+
+ % Is f a parameter?
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,idx,1,size(f),qcqpParams.f,qcqpParamIndices.f,'cost.f');
+ createParamTime = createParamTime + toc;
+
+ % Select relevant equalities and set the constraints
+ eq_idx = find(sum(Aeq_temp(:,idx)~=0, 2))';
+ eq_idx = eq_idx(sum(Aeq_temp(eq_idx,setdiff(all_idx,[last_idx idx]))~=0,2)==0);
+ eq_idx = sort(eq_idx);
+ if i == 1
+ d1IsSet = ~isempty(Aeq_temp(eq_idx,idx));
+ end
+ if d1IsSet
+ if i > 1
+ stages(i-1).eq.C = Aeq(eq_idx,last_idx);
+ end
+ stages(i).dims.r = length(eq_idx); % number of equality constraints
+ stages(i).eq.c = beq(eq_idx);
+ stages(i).eq.D = Aeq(eq_idx,idx);
+ else
+ if i > 1
+ stages(i-1).dims.r = length(eq_idx); % number of equality constraints
+ stages(i-1).eq.C = Aeq(eq_idx,last_idx);
+ stages(i-1).eq.c = beq(eq_idx);
+ end
+ stages(i).eq.D = Aeq(eq_idx,idx);
+ end
+
+ % Create parameters only if there are equations
+ if ~isempty(eq_idx)
+ % Is C a parameter?
+ if i > 1
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i-1,eq_idx,last_idx,size(Aeq),qcqpParams.Aeq,qcqpParamIndices.Aeq,'eq.C');
+ createParamTime = createParamTime + toc;
+ end
+
+ % Is D a parameter?
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,eq_idx,idx,size(Aeq),qcqpParams.Aeq,qcqpParamIndices.Aeq,'eq.D');
+ createParamTime = createParamTime + toc;
+
+ % Is c a parameter?
+ if d1IsSet
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,eq_idx,1,size(beq),qcqpParams.beq,qcqpParamIndices.beq,'eq.c');
+ createParamTime = createParamTime + toc;
+ else
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i-1,eq_idx,1,size(beq),qcqpParams.beq,qcqpParamIndices.beq,'eq.c');
+ createParamTime = createParamTime + toc;
+ end
+ end
+
+ % Lower bounds
+ temp_lb = lb(idx);
+ stages(i).dims.l = sum(temp_lb ~= -Inf); % number of lower bounds
+ stages(i).ineq.b.lbidx = find(temp_lb ~= -Inf)'; % index vector for lower bounds
+ stages(i).ineq.b.lb = temp_lb(temp_lb ~= -Inf); % lower bounds
+
+ % Create parameter only if there are bounds
+ if ~isempty(stages(i).ineq.b.lbidx)
+ % Is lb a parameter?
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,idx(stages(i).ineq.b.lbidx),1,size(lb),qcqpParams.lb,qcqpParamIndices.lb,'ineq.b.lb');
+ createParamTime = createParamTime + toc;
+ end
+
+ % Upper bounds
+ temp_ub = ub(idx);
+ stages(i).dims.u = sum(temp_ub ~= Inf); % number of upper bounds
+ stages(i).ineq.b.ubidx = find(temp_ub ~= Inf)'; % index vector for upper bounds
+ stages(i).ineq.b.ub = temp_ub(temp_ub ~= Inf); % upper bounds
+
+ % Create parameter only if there are bounds
+ if ~isempty(stages(i).ineq.b.ubidx)
+ % Is ub a parameter?
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,idx(stages(i).ineq.b.ubidx),1,size(ub),qcqpParams.ub,qcqpParamIndices.ub,'ineq.b.ub');
+ createParamTime = createParamTime + toc;
+ end
+
+ % Linear inequalities
+ ineq_idx = find(sum(Aineq_temp(:,idx)~=0, 2))';
+ stages(i).dims.p = length(ineq_idx); % number of polytopic constraints
+ if ~isempty(ineq_idx)
+ stages(i).ineq.p.A = Aineq(ineq_idx, idx); % Jacobian of linear inequality
+ stages(i).ineq.p.b = bineq(ineq_idx); % RHS of linear inequality
+
+ % Is p.A a parameter?
+ % compute sparsity
+ local_Aineq_temp = Aineq_temp(ineq_idx,idx);
+ nonzeros = find(local_Aineq_temp);
+ if length(nonzeros)/numel(Aineq_temp) <= SPARSITY_THRESHOLD % is Aineq sparse?
+ % compute location of nonzeros in big matrix
+ [i1, i2] = ind2sub(size(local_Aineq_temp),nonzeros);
+ nonzeros_idx = sub2ind(size(Aineq), ineq_idx(i1), idx(i2));
+ tic;
+ param = findRelevantQcqpParamsAndCreateSparseForcesParameter( ...
+ i,nonzeros_idx,local_Aineq_temp,qcqpParams.Aineq,qcqpParamIndices.Aineq,'ineq.p.A');
+ if ~isempty(param)
+ standardParamValues.(param.name) = stages(i).ineq.p.A(nonzeros);
+ stages(i).ineq.p.A = [];
+ end
+ createParamTime = createParamTime + toc;
+ else % Aineq is dense
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,ineq_idx,idx,size(Aineq),qcqpParams.Aineq,qcqpParamIndices.Aineq,'ineq.p.A');
+ createParamTime = createParamTime + toc;
+ end
+
+ % Is p.b a parameter?
+ tic;
+ findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,ineq_idx,1,size(bineq),qcqpParams.bineq,qcqpParamIndices.bineq,'ineq.p.b');
+ createParamTime = createParamTime + toc;
+ end
+
+
+ % Quadratic constraints
+ stages(i).dims.q = 0; % number of quadratic constraints
+ if ~isempty(Q)
+ stages(i).ineq.q.idx = {}; % index vectors
+ stages(i).ineq.q.Q = {}; % Hessians
+ stages(i).ineq.q.l = {}; % linear terms
+ stages(i).ineq.q.r = []; % RHSs
+
+ for k=1:numel(Q) % go through each quad. inequality
+ subQ = Q_temp{k}(idx,idx);
+ subL = l_temp(idx,k);
+ if any(any(subQ)) || any(subL) % Inequality is relevant
+ quad_idx = [];
+ for s=1:size(subQ,1)
+ quad_idx = [quad_idx find(subQ(s,:)~=0)];
+ if subL(s)~=0
+ quad_idx(end+1) = s;
+ end
+ end
+ quad_idx = sort(unique(quad_idx));
+
+ stages(i).ineq.q.idx{end+1} = quad_idx;
+ stages(i).ineq.q.Q{end+1} = full(Q{k}(idx(quad_idx),idx(quad_idx)));
+ stages(i).ineq.q.l{end+1} = full(l(idx(quad_idx),k)); % linear terms
+ stages(i).ineq.q.r(end+1) = r(k); % RHSs
+ stages(i).dims.q = stages(i).dims.q + 1;
+
+ orig_idx = idx(quad_idx);
+
+ % Is Q a param? (Q,l,r are special cases because of k)
+ tic;
+ param = findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,orig_idx,orig_idx,size(H),qcqpParams.Q,qcqpParamIndices.Q,'ineq.q.Q', ...
+ k); % maps2mat argument!
+ % important: set maps2mat (not set in function) and set
+ % standard value
+ if ~isempty(param)
+ params(p-1).maps2mat = stages(i).dims.q;
+ standardParamValues.(param.name) = stages(i).ineq.q.Q{end};
+ stages(i).ineq.q.Q{end} = [];
+ end
+ createParamTime = createParamTime + toc;
+
+ % Is l a param?
+ tic;
+ param = findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,orig_idx,1,size(f),qcqpParams.l,qcqpParamIndices.l,'ineq.q.l', ...
+ k); % maps2mat argument!
+ % important: set maps2mat (not set in function) and set
+ % standard value
+ if ~isempty(param)
+ params(p-1).maps2mat = stages(i).dims.q;
+ standardParamValues.(param.name) = stages(i).ineq.q.l{end};
+ stages(i).ineq.q.l{end} = [];
+ end
+ createParamTime = createParamTime + toc;
+
+ % Is r a param?
+ tic;
+ param = findRelevantQcqpParamsAndCreateForcesParameter( ...
+ i,1,k,size(r),qcqpParams.r,qcqpParamIndices.r,'ineq.q.r',...
+ 1); % maps2mat argument --> don't set standard value
+
+ % important: set maps2mat (not set in function) and set
+ % standard value
+ if ~isempty(param)
+ params(p-1).maps2mat = stages(i).dims.q;
+ standardParamValues.(param.name) = stages(i).ineq.q.r(end);
+ stages(i).ineq.q.r(end) = 0;
+ end
+ createParamTime = createParamTime + toc;
+ end
+ end
+ end
+
+ % Assign binary variables, if there are any
+ bidx = find(ismember(idx,qcqpParams.bidx));
+ if ~isempty(bidx)
+ stages(i).bidx = bidx;
+ end
+
+ % Assign boundaries on binary variables if needed
+ if isfield(stages(i),'bidx')
+ for j=stages(i).bidx
+ if ~ismember(j,stages(i).ineq.b.lbidx)
+ stages(i).ineq.b.lbidx(end+1) = j;
+ stages(i).ineq.b.lb(end+1) = 0;
+ stages(i).dims.l = stages(i).dims.l + 1;
+ end
+ if ~ismember(j,stages(i).ineq.b.ubidx)
+ stages(i).ineq.b.ubidx(end+1) = j;
+ stages(i).ineq.b.ub(end+1) = 1;
+ stages(i).dims.u = stages(i).dims.u + 1;
+ end
+ end
+ end
+
+ last_idx = idx;
+
+ status = y2f_progressbar(status,i,G.n,barwidth);
+end
+
+ function result = computeLinearIndices(matrixSize, row_idx, col_idx)
+ % Helper function that returns array of indices for all elements in the
+ % specified rows and columns
+
+ if ~isempty(row_idx) && ~isempty(col_idx)
+ m = length(row_idx);
+ n = length(col_idx);
+ cols = repmat(col_idx,m,1);
+ result = sub2ind(matrixSize, repmat(row_idx,1,n), cols(:)');
+ else
+ result = zeros(0,1);
+ end
+ end
+
+ function param = findRelevantQcqpParamsAndCreateDiagonalForcesParameter( stage, row_idx, fullMatrixSize, qcqpParams, qcqpParamIndices, param_name)
+ % Helper function to create diagonal FORCES parameters if necessary
+ % Attention: standard value is not set by this function!
+ % Do it after calling it with 'standardParamValues.(param.name) = ...'
+
+ param = [];
+
+ % Find relevant QCQP parameters (=> check indices in big matrix)
+ element_idx = sub2ind(fullMatrixSize, row_idx, row_idx);
+ [relevant_params,param_local_idx] = ismember(qcqpParamIndices, element_idx); % find positions of parameters
+ % relevant_params(j) is 1 iff QCQP param at index j is needed
+ % param_local_idx(j) contains the (local) index of the element
+ % influenced by this parameter
+
+ if any(relevant_params) % We have QCQP params --> create a FORCES param
+ % Create FORCES param with standard value
+ param_id = sprintf('p_%u',p);
+ params(p) = newParam(param_id, stage, param_name, 'diag');
+
+ % Make param map (additive parts of parameter, see help of
+ % generateStagesFromGraph)
+ forcesParamMap.(param_id) = zeros(4,0);
+ for j=find(relevant_params)
+ forcesParamMap.(param_id)(:,end+1) = [param_local_idx(j);...
+ qcqpParams(j).factor;...
+ yalmipParamMap(:,qcqpParams(j).maps2origparam)];
+ end
+
+ param = params(p);
+ p = p+1;
+ end
+
+ end
+
+ function param = findRelevantQcqpParamsAndCreateSparseForcesParameter( stage, nonzero_idx, sparsityPattern, qcqpParams, qcqpParamIndices, param_name)
+ % Helper function to create sparse FORCES parameters if necessary
+ % Attention: standard value is not set by this function!
+ % Do it after calling it with 'standardParamValues.(param.name) = ...'
+
+ param = [];
+
+ % Find relevant QCQP parameters (=> check indices in big matrix)
+ [relevant_params,param_local_idx] = ismember(qcqpParamIndices, nonzero_idx); % find positions of parameters
+ % relevant_params(j) is 1 iff QCQP param at index j is needed
+ % param_local_idx(j) contains the (local) index of the element
+ % influenced by this parameter
+
+ if any(relevant_params) % We have QCQP params --> create a FORCES param
+ % Create FORCES param
+ param_id = sprintf('p_%u',p);
+ params(p) = newParam(param_id, stage, param_name, 'sparse', sparsityPattern);
+
+ % Make param map (additive parts of parameter, see help of
+ % generateStagesFromGraph)
+ forcesParamMap.(param_id) = zeros(4,0);
+ for j=find(relevant_params)
+ forcesParamMap.(param_id)(:,end+1) = [param_local_idx(j);...
+ qcqpParams(j).factor;...
+ yalmipParamMap(:,qcqpParams(j).maps2origparam)];
+ end
+
+ param = params(p);
+ p = p+1;
+ end
+
+ end
+
+ function param = findRelevantQcqpParamsAndCreateForcesParameter( stage, row_idx, col_idx, fullMatrixSize, qcqpParams, qcqpParamIndices, param_name, maps2mat)
+ % Helper function to create FORCES parameters if necessary
+
+ param = [];
+
+ % Find relevant QCQP parameters (=> check indices in big matrix)
+ element_idx = computeLinearIndices(fullMatrixSize, row_idx, col_idx);
+ [relevant_params,param_local_idx] = ismember(qcqpParamIndices, element_idx); % find positions of parameters
+ % relevant_params(j) is 1 iff QCQP param at index j is needed
+ % param_local_idx(j) contains the (local) index of the element
+ % influenced by this parameter
+
+ % special case: maps2mat was set (we're dealing with Q or l)
+ if nargin >= 8
+ % filter params that do not affect this "mat"
+ not_affected_params = [qcqpParams.maps2mat] ~= maps2mat;
+ relevant_params(not_affected_params) = 0;
+ param_local_idx(not_affected_params) = 0;
+ end
+
+ if any(relevant_params) % We have QCQP params --> create a FORCES param
+ % Create FORCES param with standard value
+ param_id = sprintf('p_%u',p);
+ params(p) = newParam(param_id, stage, param_name);
+ if nargin <= 7 % no maps2mat (we can't set standardParamValues for that case)
+ var = regexp(param_name,'[.]','split'); % split name
+ if length(var) == 2
+ standardParamValues.(param_id) = stages(stage).(genvarname(var{1})).(genvarname(var{2}));
+ stages(stage).(genvarname(var{1})).(genvarname(var{2})) = [];
+ elseif length(var) == 3
+ standardParamValues.(param_id) = stages(stage).(genvarname(var{1})).(genvarname(var{2})).(genvarname(var{3}));
+ stages(stage).(genvarname(var{1})).(genvarname(var{2})).(genvarname(var{3})) = [];
+ else
+ error('This case exists?');
+ end
+ end
+
+ % Make param map (additive parts of parameter, see help of
+ % generateStagesFromGraph)
+ forcesParamMap.(param_id) = zeros(4,0);
+ for j=find(relevant_params)
+ forcesParamMap.(param_id)(:,end+1) = [param_local_idx(j);...
+ qcqpParams(j).factor;...
+ yalmipParamMap(:,qcqpParams(j).maps2origparam)];
+ end
+
+ param = params(p);
+ p = p+1;
+ end
+
+ end
+
+% function createDiagonalCostParameter(stage, relevantParams, element_idx)
+% % Helper function to create a FORCES parameters for a diagonal cost
+% params(p) = newParam(sprintf('p_%u',p), stage, 'cost.H', 'diag');
+% standardParamValues.(sprintf('p_%u',p)) = stages(stage).cost.H(logical(eye(length(element_idx)))); % only use diagonal
+% stages(stage).cost.H = [];
+%
+% forcesParamMap.(sprintf('p_%u',p)) = zeros(4,0);
+% paramSize = size(standardParamValues.(sprintf('p_%u',p)));
+% for j=relevantParams
+% for element=1:length(element_idx)
+% value_idx = find(sub2ind(size(H),element_idx(element),element_idx(element)) == ...
+% qcqpParams.H(j).maps2index);
+% if length(value_idx) == 1
+% forcesParamMap.(sprintf('p_%u',p))(:,end+1) = [element;...
+% qcqpParams.H(j).factor;...
+% yalmipParamMap(:,qcqpParams.H(j).maps2origparam)];
+% elseif length(value_idx) > 1
+% error('Mistake in the new stages formulation')
+% end
+% end
+% end
+% p = p + 1;
+% end
+
+fprintf('\nTime spent in createParameter: %5.1f seconds\n', createParamTime);
+
+end
+
+
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/newAdditiveQcqpParam.m b/Yuwen project/FORCES_client/Y2F/Y2F/newAdditiveQcqpParam.m
new file mode 100755
index 0000000..49835b2
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/newAdditiveQcqpParam.m
@@ -0,0 +1,40 @@
+function param = newAdditiveQcqpParam( maps2index, maps2origparam, maps2mat, factor )
+%NEWQCQPPARAM Creates new additive parameter for QCQPs
+% structure:
+% param.maps2index index of QCQP matrix elements that is affected
+% by parameter
+% param.maps2origparam index of original parameter (used to recover
+% value)
+% param.factor factor by which parameter value has to be
+% multiplied before it is added
+% param.maps2mat index of QCQP matrix (only relevant for quad.
+% constraints)
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+param.maps2index = maps2index;
+
+if nargin >= 2
+ param.maps2origparam = maps2origparam;
+else
+ param.maps2origparam = 0;
+end
+
+if nargin >= 3
+ param.maps2mat = maps2mat;
+else
+ param.maps2mat = 1;
+end
+
+if nargin >= 4
+ param.factor = factor;
+else
+ param.factor = 1;
+end
+
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/pathGraphsFromQcqp.m b/Yuwen project/FORCES_client/Y2F/Y2F/pathGraphsFromQcqp.m
new file mode 100755
index 0000000..63488a7
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/pathGraphsFromQcqp.m
@@ -0,0 +1,42 @@
+function graphs = pathGraphsFromQcqp(H,Aineq,Aeq,Q,l)
+%PATHGRAPHSFROMQCQP Creates path graphs from a given QCQP using path
+% partitioning algorithm.
+% Input:
+% H,Aineq,Aeq,Q,l are standard QCQP matrices
+% Output:
+% cell array of graphs (see EMPTYGRAPH for graph format)
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+% Construct graph from equality constraints
+G = emptyGraph;
+n = size(H,1);
+G.vertices = num2cell(1:n);
+G.adjMatrix = generateAdjMatrixFromEqualities(Aeq);
+G.n = n;
+
+% Variables have to be in the same stage if they appear in the same cost
+% term or linear/quadratic inequality
+G = simplifyGraphWithCost(G,H);
+G = simplifyGraphWithIneq(G,Aineq);
+for k=1:numel(Q)
+ G = simplifyGraphWithQuadIneq(G,Q{k},l(:,k));
+end
+
+if ~checkIfGraphIsConnected(G)
+ beep
+ warning('Y2F:separableProblem','Problem is separable. Consider using multiple solvers.');
+end
+
+% Find components of graph
+graphs = splitGraphIntoComponents(G);
+
+% Use partitioning algorithm to convert each component into path graph
+for i=1:numel(graphs)
+ graphs{i} = findPathPartition(graphs{i});
+end
+
+end
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithCost.m b/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithCost.m
new file mode 100755
index 0000000..90682c8
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithCost.m
@@ -0,0 +1,32 @@
+function G = simplifyGraphWithCost( G, H )
+%SIMPLIFYGRAPHWITHCOST contracts vertices that contain variables in
+%their labels that appear in the same cost term.
+%Example: cost = ... + x2 * x3 + ... --> vertices with x2 and x3 in their
+%respective label are contracted
+%Input:
+% G graph (format see EMPTYGRAPH)
+% H cost matrix (Hessian)
+%Output:
+% modified graph G
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if ~isempty(H) && size(H,1)~=size(H,2)
+ error('H has to be quadratic')
+end
+
+for r=1:size(H,1)
+ for c=find(H(r,:)~=0)
+ if c~=r
+ i1 = findVariableIndex(G,r);
+ i2 = findVariableIndex(G,c);
+ G = contractVertices(G,i1,i2);
+ end
+ end
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithIneq.m b/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithIneq.m
new file mode 100755
index 0000000..df3d3a3
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithIneq.m
@@ -0,0 +1,30 @@
+function G = simplifyGraphWithIneq( G, Aineq )
+%SIMPLIFYGRAPHWITHINEQ contracts vertices that contain variables in
+%their labels that appear in the same linear inequality.
+%Example: x2 + x3 + ... <= 5 --> vertices with x2 and x3 in their
+%respective label are contracted
+%Input:
+% G graph (format see EMPTYGRAPH)
+% Aineq linear inequality matrix
+%Output:
+% modified graph G
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+for i=1:size(Aineq,1)
+ idx = find(Aineq(i,:)~=0);
+ if ~isempty(idx)
+ v1 = idx(1);
+ for v2=idx(2:end)
+ i1 = findVariableIndex(G,v1);
+ i2 = findVariableIndex(G,v2);
+ G = contractVertices(G,i1,i2);
+ end
+ end
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithQuadIneq.m b/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithQuadIneq.m
new file mode 100755
index 0000000..0a6fefd
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/simplifyGraphWithQuadIneq.m
@@ -0,0 +1,40 @@
+function G = simplifyGraphWithQuadIneq( G, Q, l )
+%SIMPLIFYGRAPHWITHQUADINEQ contracts vertices that contain variables in
+%their labels that appear in the same quadratic inequality.
+%Example: x2*x3 + ... <= 5 --> vertices with x2 and x3 in their
+%respective label are contracted
+%Input:
+% G graph (format see EMPTYGRAPH)
+% Q, l matrices of LHS of a quadratic inequality
+%Output:
+% modified graph G
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if ~isempty(Q) && size(Q,1)~=size(Q,2)
+ error('Q has to be quadratic')
+end
+
+if ~isvector(l)
+ error('l has to be a vector')
+end
+
+idx = [];
+for r=1:size(Q,1)
+ idx = [idx find(Q(r,:)~=0)];
+end
+idx = [idx find(l'~=0)];
+
+idx = sort(unique(idx));
+
+i1 = findVariableIndex(G,idx(1));
+for v2 = idx(end:-1:2)
+ i2 = findVariableIndex(G,v2);
+ G = contractVertices(G,i1,i2);
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/splitGraphIntoComponents.m b/Yuwen project/FORCES_client/Y2F/Y2F/splitGraphIntoComponents.m
new file mode 100755
index 0000000..b3865c9
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/splitGraphIntoComponents.m
@@ -0,0 +1,38 @@
+function components = splitGraphIntoComponents( G )
+%SPLITGRAPHINTOCOMPONENTS splits graph G up into connected subgraphs using
+%a breadth-first search. Returns a cell array containing all subgraphs. See
+%EMPTYGRAPH for graph format.
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+if G.n <= 1
+ components = {G};
+ return
+end
+
+components = {};
+c = 1;
+
+verticesNotVisited = 1:G.n;
+
+while ~isempty(verticesNotVisited)
+ verticesForGraph = [];
+ nextVertices = verticesNotVisited(1);
+ verticesNotVisited = verticesNotVisited(2:end);
+ while ~isempty(nextVertices)
+ v = nextVertices(1);
+ idx = intersect(find(G.adjMatrix(v,:)), verticesNotVisited);
+ verticesNotVisited = setdiff(verticesNotVisited, idx);
+ nextVertices = [nextVertices(2:end) idx];
+ verticesForGraph = [verticesForGraph v];
+ end
+ verticesForGraph = sort(unique(verticesForGraph));
+ components{c} = subgraph(G,verticesForGraph);
+ c = c+1;
+end
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/stagesFromPathGraphs.m b/Yuwen project/FORCES_client/Y2F/Y2F/stagesFromPathGraphs.m
new file mode 100755
index 0000000..8bd6f2e
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/stagesFromPathGraphs.m
@@ -0,0 +1,60 @@
+function [components,stages,params,standardParamValues,forcesParamMap] = stagesFromPathGraphs(components,H,f,Aineq,bineq,Aeq,beq,l,Q,r,lb,ub,qcqpParams,yalmipParamMap,outputIndices)
+%STAGESFROMPATHGRAPHS Creates stages for a graph that has been split into
+%path graphs. This function just combines the stages for each subgraph into
+%a cell array. The real conversion is done by GENERATESTAGESFROMGRAPH.
+% Input:
+% components cell array of connected graphs
+% H,f,Aineq,bineq,Aeq,beq, standard QCQP matrices
+% l,Q,r,lb,ub
+% qcqpParams see STAGES2PARAMQCQP
+% yalmipParamMap parameter map for YALMIP parameters.
+% (matrix)
+% Each column corresponds to the
+% parameter with the same index.
+% 1st row: index of matrix with values,
+% 2nd row: index of element inside matrix
+% outputIndices variable indices of variables relevant
+% for output (row vector)
+%
+% Output:
+% components modified components list, subgraphs not
+% relevant for ouput are removed
+% stages cell array of stages (see
+% GENERATESTAGESFROMGRAPH)
+% params cell array of params (see
+% GENERATESTAGESFROMGRAPH)
+% standardParamValues cell array of standardParamValues (see
+% GENERATESTAGESFROMGRAPH)
+% forcesParamMap cell array of forcesParamMaps (see
+% GENERATESTAGESFROMGRAPH)
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+stages = {};
+params = {};
+standardParamValues = {};
+forcesParamMap = {};
+
+% Go through all components and convert them to stages
+removeIdx = []; % don't forget to delete these
+for i=1:numel(components)
+ if any(ismember(outputIndices, cell2mat(components{i}.vertices)))
+ % Construct stages using path graph
+ [stages_temp,params_temp,standardParamValues_temp,forcesParamMap_temp] = generateStagesFromGraph(components{i},H,f,Aineq,bineq,Aeq,beq,l,Q,r,lb,ub,qcqpParams,yalmipParamMap);
+
+ % Hook new stages together with other stages
+ stages{end+1} = stages_temp;
+ params{end+1} = params_temp;
+ standardParamValues{end+1} = standardParamValues_temp;
+ forcesParamMap{end+1} = forcesParamMap_temp;
+ else % we can delete component
+ removeIdx(end+1) = i;
+ end
+end
+
+components(removeIdx) = [];
+
+end
\ No newline at end of file
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/subgraph.m b/Yuwen project/FORCES_client/Y2F/Y2F/subgraph.m
new file mode 100755
index 0000000..eb17a25
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/subgraph.m
@@ -0,0 +1,15 @@
+function G = subgraph( G, idx )
+%SUBGRAPH Returns the induced subgraph of G containing the vertices with
+% indices in idx
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+G.vertices = G.vertices(idx);
+G.adjMatrix = G.adjMatrix(idx, idx);
+G.n = length(idx);
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/y2f_progressbar.m b/Yuwen project/FORCES_client/Y2F/Y2F/y2f_progressbar.m
new file mode 100755
index 0000000..2f25a81
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/y2f_progressbar.m
@@ -0,0 +1,12 @@
+function status = y2f_progressbar(status,i,N,width)
+% Displays progress bar in command window
+%
+% This file is part of the y2f project: http://github.com/embotech/y2f,
+% a project maintained by embotech under the MIT open-source license.
+%
+% (c) Gian Ulli and embotech GmbH, Zurich, Switzerland, 2013-2016.
+
+bar = repmat(sprintf('='),1,round(i/N*width));
+msg = sprintf('[%-30s] %d/%d', bar, i, N);
+fprintf([status, msg]);
+status = repmat(sprintf('%c',8), 1, length(msg));
diff --git a/Yuwen project/FORCES_client/Y2F/Y2F/y2f_version.m b/Yuwen project/FORCES_client/Y2F/Y2F/y2f_version.m
new file mode 100755
index 0000000..d8aae70
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F/Y2F/y2f_version.m
@@ -0,0 +1,7 @@
+function version = y2f_version()
+%Y2F_VERSION returns the version of Y2F installed on the current system
+
+version = '0.1.10';
+
+end
+
diff --git a/Yuwen project/FORCES_client/Y2F/example_problem.png b/Yuwen project/FORCES_client/Y2F/example_problem.png
new file mode 100755
index 0000000..df1b083
Binary files /dev/null and b/Yuwen project/FORCES_client/Y2F/example_problem.png differ
diff --git a/Yuwen project/FORCES_client/Y2F_download.m b/Yuwen project/FORCES_client/Y2F_download.m
new file mode 100755
index 0000000..4ba4d7c
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F_download.m
@@ -0,0 +1,81 @@
+function target = Y2F_download(version, silent, target)
+% Download Y2F, the Yalmip-FORCES interface.
+%
+% Y2F_DOWNLOAD() downloads the master branch of Y2F and unpacks
+% it into the directory 'Y2F'. If that directory exists, the user is
+% prompted to confirm deleting the existing directory.
+%
+% Y2F_DOWNLOAD(VERSION) downloads the tag 'v{VERSION}' of Y2F and unpacks
+% it into the directory 'Y2F'. If that directory exists, the user is
+% prompted to confirm deleting the existing directory.
+%
+% Y2F_DOWNLOAD(VERSION,SILENT) As above, and for SILENT==TRUE no prompt will be
+% displayed - any existing directory will be deleted. If VERSION is an
+% empty matrix [], the master branch will be retrieved.
+%
+% Y2F_DOWNLOAD(VERSION, SILENT, TARGET) As above, but the contents of
+% Y2F will be placed into the directory defined in the string TARGET.
+%
+% See also Y2F_INSTALL
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
+if nargin == 0 || isempty(version)
+ version = 'master';
+ src = ['https://github.com/embotech/Y2F/archive/master.zip'];
+else
+ % strip out v at the beginnig
+ if( version(1)=='V' || version(1)=='v' )
+ version = version(2:end);
+ end
+
+ % test whether it has the right format
+ if( length(strfind(version,'.'))~=2 )
+ error('Version number must have format [v]X.Y.Z');
+ end
+
+ src = ['https://github.com/embotech/Y2F/archive/v',version,'.zip'];
+end
+
+if nargin <= 1
+ silent = false;
+end
+
+if nargin <= 2
+ w = what;
+ target = [w.path,filesep,'Y2F'];
+end
+
+%% Download
+fprintf('Downloading Y2F from %s...', src);
+urlwrite(src, 'y2f.zip');
+fprintf(' [OK]\n');
+
+
+%% Remove existing directory
+if exist(target,'dir')
+ if( ~silent)
+ answer = input(sprintf('Existing directory %s will be deleted. Continue? [y]/n ',target),'s');
+ else
+ answer = 'y';
+ end
+
+ if( silent || isempty(answer) || lower(answer)=='y' )
+ rmdir(target,'s');
+ else
+ delete('y2f.zip');
+ fprintf('Operation aborted\n');
+ return;
+ end
+end
+
+
+%% Unzip
+fprintf('Extracting ZIP package into %s...', target);
+unzip('y2f.zip');
+movefile(['Y2F-',version],target);
+fprintf(' [OK]\n');
+
+%% Remove y2f.zip
+delete('y2f.zip');
diff --git a/Yuwen project/FORCES_client/Y2F_install.m b/Yuwen project/FORCES_client/Y2F_install.m
new file mode 100755
index 0000000..d216510
--- /dev/null
+++ b/Yuwen project/FORCES_client/Y2F_install.m
@@ -0,0 +1,43 @@
+function Y2F_install(version, silent, target)
+% Download Y2F, the Yalmip-FORCES interface, and add it to the Matlab path.
+%
+% Y2F_INSTALL() downloads the master branch of Y2F and unpacks
+% it into the directory 'Y2F'. If that directory exists, the user is
+% prompted to confirm deleting the existing directory. The directory is
+% added to the Matlab path, such that Y2F can be used from any
+% directory.
+%
+% Y2F_INSTALL(VERSION) as above, downloads the tag 'v{VERSION}' of Y2F.
+% If VERSION is an empty matrix [], the master branch will be retrieved.
+%
+% Y2F_INSTALL(VERSION, SILENT) As above, and for SILENT==TRUE no prompt
+% will be displayed - any existing directory will be deleted.
+%
+% Y2F_INSTALL(VERSION, SILENT, TARGET) As above, but the contents of Y2F
+% will be placed into the directory defined in the string TARGET.
+%
+% See also Y2F_DOWNLOAD
+%
+% This file is part of the FORCES Pro client software for Matlab.
+% (c) embotech AG, 2013-2018, Zurich, Switzerland. All rights reserved.
+
+%% download y2f
+switch( nargin )
+
+ case 0
+ y2f_directory = Y2F_download;
+
+ case 1
+ y2f_directory = Y2F_download(version);
+
+ case 2
+ y2f_directory = Y2F_download(version, silent);
+
+ otherwise
+ y2f_directory = Y2F_download(version, silent, target);
+
+end
+
+%% add to path
+addpath(genpath(y2f_directory));
+savepath;
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ALGEBRAIC.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ALGEBRAIC.m
new file mode 100755
index 0000000..08b0248
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ALGEBRAIC.m
@@ -0,0 +1,7 @@
+function v = ALGEBRAIC()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 162);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ALIAS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ALIAS.m
new file mode 100755
index 0000000..122c70e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ALIAS.m
@@ -0,0 +1,7 @@
+function v = ALIAS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 165);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_ALGEBRAIC.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_ALGEBRAIC.m
new file mode 100755
index 0000000..6f2116b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_ALGEBRAIC.m
@@ -0,0 +1,7 @@
+function v = CAT_ALGEBRAIC()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 174);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DEPENDENT_CONSTANT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DEPENDENT_CONSTANT.m
new file mode 100755
index 0000000..28547a6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DEPENDENT_CONSTANT.m
@@ -0,0 +1,7 @@
+function v = CAT_DEPENDENT_CONSTANT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 170);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DEPENDENT_PARAMETER.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DEPENDENT_PARAMETER.m
new file mode 100755
index 0000000..ea47f51
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DEPENDENT_PARAMETER.m
@@ -0,0 +1,7 @@
+function v = CAT_DEPENDENT_PARAMETER()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 172);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DERIVATIVE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DERIVATIVE.m
new file mode 100755
index 0000000..674aaf3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_DERIVATIVE.m
@@ -0,0 +1,7 @@
+function v = CAT_DERIVATIVE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 168);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_INDEPENDENT_CONSTANT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_INDEPENDENT_CONSTANT.m
new file mode 100755
index 0000000..bb750d3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_INDEPENDENT_CONSTANT.m
@@ -0,0 +1,7 @@
+function v = CAT_INDEPENDENT_CONSTANT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 171);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_INDEPENDENT_PARAMETER.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_INDEPENDENT_PARAMETER.m
new file mode 100755
index 0000000..ca58323
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_INDEPENDENT_PARAMETER.m
@@ -0,0 +1,7 @@
+function v = CAT_INDEPENDENT_PARAMETER()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 173);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_STATE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_STATE.m
new file mode 100755
index 0000000..d0b004c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_STATE.m
@@ -0,0 +1,7 @@
+function v = CAT_STATE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 169);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_UNKNOWN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_UNKNOWN.m
new file mode 100755
index 0000000..734be4f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CAT_UNKNOWN.m
@@ -0,0 +1,7 @@
+function v = CAT_UNKNOWN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 167);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CONSTANT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CONSTANT.m
new file mode 100755
index 0000000..4912b45
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CONSTANT.m
@@ -0,0 +1,7 @@
+function v = CONSTANT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 155);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CONTINUOUS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CONTINUOUS.m
new file mode 100755
index 0000000..a2210e4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CONTINUOUS.m
@@ -0,0 +1,7 @@
+function v = CONTINUOUS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 158);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Callback.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Callback.m
new file mode 100755
index 0000000..ea00444
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Callback.m
@@ -0,0 +1,67 @@
+classdef Callback < casadi.Functor
+ %Callback.
+ %
+ %In C++, supply a CallbackCPtr function pointer When the callback function
+ %returns a non-zero integer, the host is signalled of a problem. E.g. an
+ %NlpSolver may halt iterations if the Callback is something else than 0
+ %
+ %In python, supply a callable, annotated with pycallback decorator
+ %
+ %C++ includes: functor.hpp
+ %Usage: Callback ()
+ %
+ methods
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (fcn, user_data)
+ %
+ %fcn is of type Function. user_data is of type void *. fcn is of type Function. user_data is of type void *. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1086, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = Callback(varargin)
+ self@casadi.Functor(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1087, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1088, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Callback2.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Callback2.m
new file mode 100755
index 0000000..a46a3ab
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Callback2.m
@@ -0,0 +1,290 @@
+classdef Callback2 < SwigRef
+ %C++ includes: callback.hpp
+ %Usage: Callback2 ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (arg)
+ %
+ %arg is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > const &. arg is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > const &. retval is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1058, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nIn(self,varargin)
+ %Number of input arguments.
+ %
+ %Specify the number of input arguments that a specific instance can handle.
+ %The number must not be changed over the lifetime of the object
+ %
+ %Default implementation: 1
+ %
+ %
+ %Usage: retval = nIn ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1059, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nOut(self,varargin)
+ %Number of output arguments.
+ %
+ %Specify the number of output arguments that a specific instance can handle.
+ %The number must not be changed over the lifetime of the object
+ %
+ %Default implementation: 1
+ %
+ %
+ %Usage: retval = nOut ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1060, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputSparsity(self,varargin)
+ %Specify input sparsity.
+ %
+ %Specify the sparsity corresponding to a given input. The sparsity must not
+ %be changed over the lifetime of the object
+ %
+ %Default implementation: dense using inputShape
+ %
+ %
+ %Usage: retval = inputSparsity (i)
+ %
+ %i is of type int. i is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1061, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputSparsity(self,varargin)
+ %Specify output sparsity.
+ %
+ %Specify the sparsity corresponding to a given output. The sparsity must not
+ %be changed over the lifetime of the object
+ %
+ %Default implementation: dense using outputShape
+ %
+ %
+ %Usage: retval = outputSparsity (i)
+ %
+ %i is of type int. i is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1062, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputShape(self,varargin)
+ %Specify input shape.
+ %
+ %Specify the shape corresponding to a given input. The shape must not be
+ %changed over the lifetime of the object
+ %
+ %Default implementation: scalar (1,1)
+ %
+ %
+ %Usage: retval = inputShape (i)
+ %
+ %i is of type int. i is of type int. retval is of type std::pair< int,int >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1063, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputShape(self,varargin)
+ %Specify output shape.
+ %
+ %Specify the shape corresponding to a given output. The shape must not be
+ %changed over the lifetime of the object
+ %
+ %Default implementation: scalar (1,1)
+ %
+ %
+ %Usage: retval = outputShape (i)
+ %
+ %i is of type int. i is of type int. retval is of type std::pair< int,int >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1064, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = name(self,varargin)
+ %Specify the name of the object.
+ %
+ %
+ %Usage: retval = name ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1065, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = options(self,varargin)
+ %Specify the options of the object.
+ %
+ %
+ %Usage: retval = options ()
+ %
+ %retval is of type casadi::Dict.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1066, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = create(self,varargin)
+ %Usage: retval = create ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1067, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1068, self);
+ self.swigPtr=[];
+ end
+ end
+ function self = Callback2(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ if strcmp(class(self),'director_basic.Callback2')
+ tmp = casadiMEX(1069, 0, varargin{:});
+ else
+ tmp = casadiMEX(1069, self, varargin{:});
+ end
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CasadiMeta.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CasadiMeta.m
new file mode 100755
index 0000000..5cd04fd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CasadiMeta.m
@@ -0,0 +1,255 @@
+classdef CasadiMeta < SwigRef
+ %Collects global CasADi meta information.
+ %
+ %Joris Gillis
+ %
+ %C++ includes: casadi_meta.hpp
+ %Usage: CasadiMeta ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function self = CasadiMeta(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1217, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1218, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = getVersion(varargin)
+ %Usage: retval = getVersion ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1206, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getGitRevision(varargin)
+ %Usage: retval = getGitRevision ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1207, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getGitDescribe(varargin)
+ %Usage: retval = getGitDescribe ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1208, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getFeatureList(varargin)
+ %Usage: retval = getFeatureList ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1209, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getBuildType(varargin)
+ %Usage: retval = getBuildType ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1210, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCompilerId(varargin)
+ %Usage: retval = getCompilerId ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1211, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCompiler(varargin)
+ %Usage: retval = getCompiler ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1212, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCompilerFlags(varargin)
+ %Usage: retval = getCompilerFlags ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1213, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getModules(varargin)
+ %Usage: retval = getModules ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1214, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getPlugins(varargin)
+ %Usage: retval = getPlugins ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1215, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getInstallPrefix(varargin)
+ %Usage: retval = getInstallPrefix ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1216, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CasadiOptions.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CasadiOptions.m
new file mode 100755
index 0000000..4c96e30
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CasadiOptions.m
@@ -0,0 +1,334 @@
+classdef CasadiOptions < SwigRef
+ %Collects global CasADi options.
+ %
+ %Note to developers: use sparingly. Global options are - in general - a
+ %rather bad idea
+ %
+ %this class must never be instantiated. Access its static members directly
+ %Joris Gillis
+ %
+ %C++ includes: casadi_options.hpp
+ %Usage: CasadiOptions ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function self = CasadiOptions(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1204, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1205, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = setCatchErrorsSwig(varargin)
+ %Usage: setCatchErrorsSwig (flag)
+ %
+ %flag is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1189, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCatchErrorsSwig(varargin)
+ %Usage: retval = getCatchErrorsSwig ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1190, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setSimplificationOnTheFly(varargin)
+ %Usage: setSimplificationOnTheFly (flag)
+ %
+ %flag is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1191, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getSimplificationOnTheFly(varargin)
+ %Usage: retval = getSimplificationOnTheFly ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1192, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = startProfiling(varargin)
+ %Usage: startProfiling (filename)
+ %
+ %filename is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1193, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = stopProfiling(varargin)
+ %Usage: stopProfiling ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1194, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setProfilingBinary(varargin)
+ %Usage: setProfilingBinary (flag)
+ %
+ %flag is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1195, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getProfilingBinary(varargin)
+ %Usage: retval = getProfilingBinary ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1196, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setPurgeSeeds(varargin)
+ %Usage: retval = setPurgeSeeds ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1197, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setAllowedInternalAPI(varargin)
+ %Usage: setAllowedInternalAPI (flag)
+ %
+ %flag is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1198, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAllowedInternalAPI(varargin)
+ %Usage: retval = getAllowedInternalAPI ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1199, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setCasadiPath(varargin)
+ %Usage: setCasadiPath (path)
+ %
+ %path is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1200, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCasadiPath(varargin)
+ %Usage: retval = getCasadiPath ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1201, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOptimizedNumDir(varargin)
+ %Usage: setOptimizedNumDir (n)
+ %
+ %n is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1202, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptimizedNumDir(varargin)
+ %Usage: retval = getOptimizedNumDir ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1203, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CleSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CleSolver.m
new file mode 100755
index 0000000..add47fe
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CleSolver.m
@@ -0,0 +1,508 @@
+classdef CleSolver < casadi.Function
+ %Base class for Discrete Lyapunov Equation Solvers.
+ %
+ %Given matrices $A$ and symmetric $V$
+ %
+ %
+ %
+ %::
+ %
+ % A in R^(n x n)
+ % V in S^n
+ %
+ %
+ %
+ %
+ %finds $P$ that satisfies:
+ %
+ %
+ %
+ %::
+ %
+ % 0 = A P + P A' + V
+ %
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::CLEInput (CLE_NUM_IN = 2) [cleIn]
+ %
+ %+-----------+-------+-------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=============+
+ %| CLE_A | a | A matrix . |
+ %+-----------+-------+-------------+
+ %| CLE_V | v | V matrix . |
+ %+-----------+-------+-------------+
+ %
+ %>Output scheme: casadi::CLEOutput (CLE_NUM_OUT = 1) [cleOut]
+ %
+ %+-----------+-------+-------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+===================+
+ %| CLE_P | p | Lyapunov matrix . |
+ %+-----------+-------+-------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| eps_unstable | OT_REAL | 0.000 | A margin for | casadi::CleI |
+ %| | | | unstability | nternal |
+ %| | | | detection | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| error_unstab | OT_BOOLEAN | false | Throw an | casadi::CleI |
+ %| le | | | exception | nternal |
+ %| | | | when it is | |
+ %| | | | detected | |
+ %| | | | that | |
+ %| | | | Product(A_i, | |
+ %| | | | i=N..1) has | |
+ %| | | | eigenvalues | |
+ %| | | | greater than | |
+ %| | | | 1-eps_unstab | |
+ %| | | | le | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| pos_def | OT_BOOLEAN | false | Assume P | casadi::CleI |
+ %| | | | positive | nternal |
+ %| | | | definite | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- simple
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %CleSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %simple
+ %------
+ %
+ %
+ %
+ %Solving the Discrete Lyapunov Equations with a regular LinearSolver
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| linear_solver | OT_STRING | GenericType() | User-defined |
+ %| | | | linear solver |
+ %| | | | class. Needed |
+ %| | | | for |
+ %| | | | sensitivities. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptions | | | passed to the |
+ %| | | | linear solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: cle_solver.hpp
+ %Usage: CleSolver ()
+ %
+ methods
+ function varargout = clone(self,varargin)
+ %Clone.
+ %
+ %
+ %Usage: retval = clone ()
+ %
+ %retval is of type CleSolver.
+
+ try
+
+ if ~isa(self,'casadi.CleSolver')
+ self = casadi.CleSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1127, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printStats(self,varargin)
+ %Print solver statistics.
+ %
+ %
+ %Usage: printStats ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.CleSolver')
+ self = casadi.CleSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1128, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = CleSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1133, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1134, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1129, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1130, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1131, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1132, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CodeGenerator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CodeGenerator.m
new file mode 100755
index 0000000..9aeca75
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CodeGenerator.m
@@ -0,0 +1,151 @@
+classdef CodeGenerator < SwigRef
+ %C++ includes:
+ %code_generator.hpp
+ %Usage: CodeGenerator ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function self = CodeGenerator(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(894, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function varargout = add(self,varargin)
+ %> void CodeGenerator.add(Function f)
+ %------------------------------------------------------------------------
+ %
+ %Add a function (name generated)
+ %
+ %> void CodeGenerator.add(Function f, str fname)
+ %------------------------------------------------------------------------
+ %
+ %Add a function.
+ %
+ %
+ %Usage: add (f, fname)
+ %
+ %f is of type Function. fname is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(895, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = generate(self,varargin)
+ %> void CodeGenerator.generate(str name) const
+ %------------------------------------------------------------------------
+ %
+ %Generate a file.
+ %
+ %> str CodeGenerator.generate() const
+ %------------------------------------------------------------------------
+ %
+ %Generate a file, return code as string.
+ %
+ %
+ %Usage: retval = generate ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.CodeGenerator')
+ self = casadi.CodeGenerator(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(896, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = compile(self,varargin)
+ %Compile and load function.
+ %
+ %
+ %Usage: retval = compile (name, compiler = "gcc -fPIC -O2")
+ %
+ %name is of type std::string const &. compiler is of type std::string const &. name is of type std::string const &. compiler is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(897, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = addInclude(self,varargin)
+ %Add an include file optionally using a relative path "..." instead of an
+ %absolute path <...>
+ %
+ %
+ %Usage: addInclude (new_include, relative_path = false, use_ifdef = std::string())
+ %
+ %new_include is of type std::string const &. relative_path is of type bool. use_ifdef is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(898, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(899, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Compiler.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Compiler.m
new file mode 100755
index 0000000..602d778
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Compiler.m
@@ -0,0 +1,254 @@
+classdef Compiler < casadi.OptionsFunctionality
+ %Compiler.
+ %
+ %Just-in-time compilation of code
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- clang
+ %
+ %- shell
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %Compiler.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %clang
+ %-----
+ %
+ %
+ %
+ %Interface to the JIT compiler CLANG
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| flags | OT_STRINGVECTOR | GenericType() | Compile flags |
+ %| | | | for the JIT |
+ %| | | | compiler. |
+ %| | | | Default: None |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| include_path | OT_STRING | "" | Include paths |
+ %| | | | for the JIT |
+ %| | | | compiler. The |
+ %| | | | include |
+ %| | | | directory |
+ %| | | | shipped with |
+ %| | | | CasADi will be |
+ %| | | | automatically |
+ %| | | | appended. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %shell
+ %-----
+ %
+ %
+ %
+ %Interface to the JIT compiler SHELL
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| compiler | OT_STRING | "gcc" | Compiler |
+ %| | | | command |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| compiler_setup | OT_STRING | "-fPIC -shared" | Compiler setup |
+ %| | | | command |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| flags | OT_STRINGVECTOR | GenericType() | Compile flags |
+ %| | | | for the JIT |
+ %| | | | compiler. |
+ %| | | | Default: None |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: compiler.hpp
+ %Usage: Compiler ()
+ %
+ methods
+ function varargout = plugin_name(self,varargin)
+ %Query plugin name.
+ %
+ %
+ %Usage: retval = plugin_name ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Compiler')
+ self = casadi.Compiler(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(939, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = Compiler(varargin)
+ self@casadi.OptionsFunctionality(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(940, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(941, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(935, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(936, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(937, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(938, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ControlSimulator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ControlSimulator.m
new file mode 100755
index 0000000..3851c0b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ControlSimulator.m
@@ -0,0 +1,464 @@
+classdef ControlSimulator < casadi.Function
+ %Piecewise Simulation class.
+ %
+ %A ControlSimulator can be seen as a chain of Simulators whereby some
+ %parameters change from one Simulator to the next.
+ %
+ %These changing parameters can typically be interpreted as "controls" in
+ %the context of dynamic optimization.
+ %
+ %We discriminate between the following time steps: Major time-steps. These
+ %are the time steps provided by the supplied grid. Controls are constant
+ %inbetween major time-steps Minor time-steps. These are time steps linearly
+ %interpolated from one major time-step to the next. The option 'nf' regulates
+ %how many minor time-steps are taken. Integration time-steps. Time steps
+ %that the supplied integrator might choose to integrate the continuous
+ %dynamics. They are not important what ControlSimulator is concerned. np
+ %Number of parameters nu Number of controls ns The number of major grid
+ %points, as supplied in the constructor nf The number of minor grid points
+ %per major interval
+ %
+ %Joris Gillis
+ %
+ %>Input scheme: casadi::ControlSimulatorInput (CONTROLSIMULATOR_NUM_IN = 3) [controlsimulatorIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| CONTROLSIMULATOR_X0 | x0 | Differential or |
+ %| | | algebraic state at t0 |
+ %| | | (dimension nx-by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROLSIMULATOR_P | p | Parameters that are |
+ %| | | fixed over the entire |
+ %| | | horizon (dimension np- |
+ %| | | by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROLSIMULATOR_U | u | Parameters that change |
+ %| | | over the integration |
+ %| | | intervals (dimension |
+ %| | | nu-by-(ns-1)) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| control_endp | OT_BOOLEAN | false | Include a | casadi::Cont |
+ %| oint | | | control | rolSimulator |
+ %| | | | value at the | Internal |
+ %| | | | end of the | |
+ %| | | | simulation | |
+ %| | | | domain. Used | |
+ %| | | | for interpol | |
+ %| | | | ation. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| control_inte | OT_STRING | "none" | none|nearest | casadi::Cont |
+ %| rpolation | | | |linear | rolSimulator |
+ %| | | | | Internal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| integrator | OT_STRING | GenericType( | An | casadi::Cont |
+ %| | | ) | integrator | rolSimulator |
+ %| | | | creator | Internal |
+ %| | | | function | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| integrator_o | OT_DICT | GenericType( | Options to | casadi::Cont |
+ %| ptions | | ) | be passed to | rolSimulator |
+ %| | | | the | Internal |
+ %| | | | integrator | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| minor_grid | OT_INTEGERVE | GenericType( | The local | casadi::Cont |
+ %| | CTOR | ) | grid used on | rolSimulator |
+ %| | | | each major | Internal |
+ %| | | | interval, | |
+ %| | | | with time | |
+ %| | | | normalized | |
+ %| | | | to 1. By | |
+ %| | | | default, | |
+ %| | | | option 'nf' | |
+ %| | | | is used to | |
+ %| | | | construct a | |
+ %| | | | linearly | |
+ %| | | | spaced grid. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| nf | OT_INTEGER | 1 | Number of | casadi::Cont |
+ %| | | | minor | rolSimulator |
+ %| | | | grained | Internal |
+ %| | | | integration | |
+ %| | | | steps per | |
+ %| | | | major | |
+ %| | | | interval. | |
+ %| | | | nf>0 must | |
+ %| | | | hold. This | |
+ %| | | | option is | |
+ %| | | | not used | |
+ %| | | | when | |
+ %| | | | 'minor_grid' | |
+ %| | | | is provided. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| simulator_op | OT_DICT | GenericType( | Options to | casadi::Cont |
+ %| tions | | ) | be passed to | rolSimulator |
+ %| | | | the | Internal |
+ %| | | | simulator | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: control_simulator.hpp
+ %Usage: ControlSimulator ()
+ %
+ methods
+ function varargout = getMinorT(self,varargin)
+ %Get the (minor) time grid The length is (ns-1)*nf + 1
+ %
+ %
+ %Usage: retval = getMinorT ()
+ %
+ %retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.ControlSimulator')
+ self = casadi.ControlSimulator(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(980, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getMinorU(self,varargin)
+ %Get the controls, sampled on the minor timescale. Number of rows is
+ %(ns-1)*nf.
+ %
+ %
+ %Usage: retval = getMinorU ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.ControlSimulator')
+ self = casadi.ControlSimulator(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(981, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getMajorIndex(self,varargin)
+ %Get the index i such that gridminor[i] == gridmajor
+ %
+ %
+ %Usage: retval = getMajorIndex ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.ControlSimulator')
+ self = casadi.ControlSimulator(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(982, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = ControlSimulator(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(983, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(984, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(979, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CustomEvaluate.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CustomEvaluate.m
new file mode 100755
index 0000000..277bab0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CustomEvaluate.m
@@ -0,0 +1,65 @@
+classdef CustomEvaluate < casadi.Functor
+ %CustomEvaluate.
+ %
+ %In C++, supply a CustomEvaluateCPtr function pointer
+ %
+ %In python, supply a callable, annotated with pyevaluate decorator
+ %
+ %C++ includes: functor.hpp
+ %Usage: CustomEvaluate ()
+ %
+ methods
+ function varargout = paren(self,varargin)
+ %Usage: paren (fcn, user_data)
+ %
+ %fcn is of type CustomFunction. user_data is of type void *.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1080, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = CustomEvaluate(varargin)
+ self@casadi.Functor(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1081, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1082, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CustomFunction.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CustomFunction.m
new file mode 100755
index 0000000..1a8a073
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/CustomFunction.m
@@ -0,0 +1,294 @@
+classdef CustomFunction < casadi.Function
+ %Interface to a custom function.
+ %
+ %Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: custom_function.hpp
+ %Usage: CustomFunction ()
+ %
+ methods
+ function self = CustomFunction(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1056, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1057, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1055, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DIFFERENTIAL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DIFFERENTIAL.m
new file mode 100755
index 0000000..a3a7dbf
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DIFFERENTIAL.m
@@ -0,0 +1,7 @@
+function v = DIFFERENTIAL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 163);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DISCRETE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DISCRETE.m
new file mode 100755
index 0000000..44f3760
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DISCRETE.m
@@ -0,0 +1,7 @@
+function v = DISCRETE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 157);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DMatrix.m
new file mode 100755
index 0000000..15bd043
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DMatrix.m
@@ -0,0 +1,2065 @@
+classdef DMatrix < casadi.MatrixCommon & casadi.ExpDMatrix & casadi.GenDMatrix & casadi.PrintDMatrix
+ %Sparse matrix class. SX and DMatrix are specializations.
+ %
+ %General sparse matrix class that is designed with the idea that "everything
+ %is a matrix", that is, also scalars and vectors. This philosophy makes it
+ %easy to use and to interface in particularly with Python and Matlab/Octave.
+ %Index starts with 0. Index vec happens as follows: (rr, cc) -> k =
+ %rr+cc*size1() Vectors are column vectors. The storage format is Compressed
+ %Column Storage (CCS), similar to that used for sparse matrices in Matlab,
+ %but unlike this format, we do allow for elements to be structurally non-zero
+ %but numerically zero. Matrix is polymorphic with a
+ %std::vector that contain all non-identical-zero elements. The
+ %sparsity can be accessed with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: casadi_types.hpp
+ %Usage: DMatrix ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = sanityCheck(self,varargin)
+ %Check if the dimensions and colind, row vectors are compatible.
+ %
+ %Parameters:
+ %-----------
+ %
+ %complete: set to true to also check elementwise throws an error as possible
+ %result
+ %
+ %
+ %Usage: sanityCheck (complete = false)
+ %
+ %complete is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(587, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasNZ(self,varargin)
+ %Returns true if the matrix has a non-zero at location rr, cc.
+ %
+ %
+ %Usage: retval = hasNZ (rr, cc)
+ %
+ %rr is of type int. cc is of type int. rr is of type int. cc is of type int. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(588, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzero(self,varargin)
+ %Returns the truth value of a Matrix.
+ %
+ %
+ %Usage: retval = nonzero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(589, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSlice(self,varargin)
+ %> bool array(DataType) .isSlice(bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Is the Matrix a Slice (only for IMatrix)
+ %
+ %
+ %Usage: retval = isSlice (ind1 = false)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(590, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toSlice(self,varargin)
+ %> Slice array(DataType) .toSlice(bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Convert to Slice (only for IMatrix)
+ %
+ %
+ %Usage: retval = toSlice (ind1 = false)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type Slice.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(591, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = get(self,varargin)
+ %> void array(DataType) .get([double ] output_m) const
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Sparsity sp) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, single argument
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr, Slice cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr, IMatrix cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr, Slice cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr, IMatrix cc) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, two arguments
+ %
+ %
+ %Usage: get (ind1, rr, cc)
+ %
+ %ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(592, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = set(self,varargin)
+ %> void array(DataType) .set(double val)
+ %
+ %> void array(DataType) .set(const double *val, bool tr=false)
+ %
+ %> void array(DataType) .set([double ] val, bool tr=false)
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, single argument
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr, Slice cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr, IMatrix cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr, Slice cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr, IMatrix cc)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, two arguments
+ %
+ %> void array(DataType) .set(array(DataType) val)
+ %------------------------------------------------------------------------
+ %
+ %Set all the entries without changing sparsity pattern.
+ %
+ %
+ %Usage: set (m, ind1, rr, cc)
+ %
+ %m is of type DMatrix. ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(593, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setSym(self,varargin)
+ %Set upper triangular elements.
+ %
+ %
+ %Usage: setSym (val)
+ %
+ %val is of type std::vector< double,std::allocator< double > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(594, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getSym(self,varargin)
+ %Get upper triangular elements.
+ %
+ %
+ %Usage: getSym ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(595, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNZ(self,varargin)
+ %> void array(DataType) .getNZ([double ] output_m) const
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .getNZ(array(DataType) output_m, bool ind1, Slice k) const
+ %
+ %> void array(DataType) .getNZ(array(DataType) output_m, bool ind1, IMatrix k) const
+ %------------------------------------------------------------------------
+ %
+ %Get a set of nonzeros
+ %
+ %
+ %Usage: getNZ (ind1, k)
+ %
+ %ind1 is of type bool. k is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(596, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setNZ(self,varargin)
+ %> void array(DataType) .setNZ(double val)
+ %
+ %> void array(DataType) .setNZ(const double *val)
+ %
+ %> void array(DataType) .setNZ([double ] val)
+ %------------------------------------------------------------------------
+ %
+ %Set the elements numerically.
+ %
+ %> void array(DataType) .setNZ(array(DataType) m, bool ind1, Slice k)
+ %
+ %> void array(DataType) .setNZ(array(DataType) m, bool ind1, IMatrix k)
+ %------------------------------------------------------------------------
+ %
+ %Set a set of nonzeros
+ %
+ %
+ %Usage: setNZ (m, ind1, k)
+ %
+ %m is of type DMatrix. ind1 is of type bool. k is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(597, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = append(self,varargin)
+ %[DEPRECATED] Append a matrix vertically (NOTE: only efficient if vector)
+ %
+ %
+ %Usage: append (y)
+ %
+ %y is of type DMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(598, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = appendColumns(self,varargin)
+ %[DEPRECATED] Append a matrix horizontally
+ %
+ %
+ %Usage: appendColumns (y)
+ %
+ %y is of type DMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(599, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setZero(self,varargin)
+ %[DEPRECATED] Set all elements to zero
+ %
+ %
+ %Usage: setZero ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(600, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeSparse(self,varargin)
+ %[DEPRECATED: use sparsify instead] Make a matrix sparse by removing
+ %numerical zeros smaller in absolute value than a specified tolerance
+ %
+ %
+ %Usage: makeSparse (tol = 0)
+ %
+ %tol is of type double.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(601, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uplus(self,varargin)
+ %Usage: retval = uplus ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(602, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uminus(self,varargin)
+ %Usage: retval = uminus ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(603, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printme(self,varargin)
+ %Usage: retval = printme (y)
+ %
+ %y is of type DMatrix. y is of type DMatrix. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(609, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = T(self,varargin)
+ %Transpose the matrix.
+ %
+ %
+ %Usage: retval = T ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(610, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print a description of the object.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(614, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printSplit(self,varargin)
+ %Get strings corresponding to the nonzeros and the interdependencies.
+ %
+ %
+ %Usage: printSplit ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(615, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Print a representation of the object.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(616, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printScalar(self,varargin)
+ %Print scalar.
+ %
+ %
+ %Usage: printScalar (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(617, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printVector(self,varargin)
+ %Print vector-style.
+ %
+ %
+ %Usage: printVector (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(618, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printDense(self,varargin)
+ %Print dense matrix-stype.
+ %
+ %
+ %Usage: printDense (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(619, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printSparse(self,varargin)
+ %Print sparse matrix style.
+ %
+ %
+ %Usage: printSparse (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(620, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = clear(self,varargin)
+ %Usage: clear ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(621, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resize(self,varargin)
+ %Usage: resize (nrow, ncol)
+ %
+ %nrow is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(622, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = reserve(self,varargin)
+ %Usage: reserve (nnz, ncol)
+ %
+ %nnz is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(623, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erase(self,varargin)
+ %> void array(DataType) .erase([int ] rr, [int ] cc, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase rows and/or
+ %columns of a matrix.
+ %
+ %> void array(DataType) .erase([int ] rr, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase elements of
+ %a matrix.
+ %
+ %
+ %Usage: erase (rr, ind1 = false)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(624, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = remove(self,varargin)
+ %Remove columns and rows Remove/delete rows and/or columns of a matrix.
+ %
+ %
+ %Usage: remove (rr, cc)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(625, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlarge(self,varargin)
+ %Enlarge matrix Make the matrix larger by inserting empty rows and columns,
+ %keeping the existing non-zeros.
+ %
+ %
+ %Usage: enlarge (nrow, ncol, rr, cc, ind1 = false)
+ %
+ %nrow is of type int. ncol is of type int. rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(626, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get an owning reference to the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(627, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getElementHash(self,varargin)
+ %Returns a number that is unique for a given symbolic scalar.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = getElementHash ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(632, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isRegular(self,varargin)
+ %Checks if expression does not contain NaN or Inf.
+ %
+ %
+ %Usage: retval = isRegular ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(633, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSmooth(self,varargin)
+ %Check if smooth.
+ %
+ %
+ %Usage: retval = isSmooth ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(634, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isLeaf(self,varargin)
+ %Check if SX is a leaf of the SX graph.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = isLeaf ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(635, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isCommutative(self,varargin)
+ %Check whether a binary SX is commutative.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = isCommutative ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(636, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSymbolic(self,varargin)
+ %Check if symbolic (Dense) Sparse matrices invariable return false.
+ %
+ %
+ %Usage: retval = isSymbolic ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(637, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isValidInput(self,varargin)
+ %Check if matrix can be used to define function inputs. Sparse matrices can
+ %return true if all non-zero elements are symbolic.
+ %
+ %
+ %Usage: retval = isValidInput ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(638, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasDuplicates(self,varargin)
+ %[INTERNAL] Detect
+ %duplicate symbolic expressions If there are symbolic primitives appearing
+ %more than once, the function will return true and the names of the duplicate
+ %expressions will be printed to userOut(). Note: Will mark the
+ %node using SXElement::setTemp. Make sure to call resetInput() after usage.
+ %
+ %
+ %Usage: retval = hasDuplicates ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(639, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resetInput(self,varargin)
+ %[INTERNAL] Reset the
+ %marker for an input expression.
+ %
+ %
+ %Usage: resetInput ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(640, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isConstant(self,varargin)
+ %Check if the matrix is constant (note that false negative answers are
+ %possible)
+ %
+ %
+ %Usage: retval = isConstant ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(641, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isInteger(self,varargin)
+ %Check if the matrix is integer-valued (note that false negative answers are
+ %possible)
+ %
+ %
+ %Usage: retval = isInteger ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(642, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isZero(self,varargin)
+ %check if the matrix is 0 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isZero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(643, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isOne(self,varargin)
+ %check if the matrix is 1 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(644, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isMinusOne(self,varargin)
+ %check if the matrix is -1 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isMinusOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(645, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isIdentity(self,varargin)
+ %check if the matrix is an identity matrix (note that false negative answers
+ %are possible)
+ %
+ %
+ %Usage: retval = isIdentity ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(646, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasNonStructuralZeros(self,varargin)
+ %Check if the matrix has any zero entries which are not structural zeros.
+ %
+ %
+ %Usage: retval = hasNonStructuralZeros ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(647, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getValue(self,varargin)
+ %> double array(DataType) .getValue() const
+ %------------------------------------------------------------------------
+ %
+ %Get double value (only if constant)
+ %
+ %> double array(DataType) .getValue(int k) const
+ %------------------------------------------------------------------------
+ %
+ %Get double value (particular nonzero)
+ %
+ %
+ %Usage: retval = getValue (k)
+ %
+ %k is of type int. k is of type int. retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(648, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setValue(self,varargin)
+ %> void array(DataType) .setValue(double m)
+ %------------------------------------------------------------------------
+ %
+ %Set double value (only if constant)
+ %
+ %> void array(DataType) .setValue(double m, int k)
+ %------------------------------------------------------------------------
+ %
+ %Set double value (particular nonzero)
+ %
+ %
+ %Usage: setValue (m, k)
+ %
+ %m is of type double. k is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(649, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getIntValue(self,varargin)
+ %Get double value (only if integer constant)
+ %
+ %
+ %Usage: retval = getIntValue ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(650, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzeros(self,varargin)
+ %Get all nonzeros.
+ %
+ %
+ %Usage: retval = nonzeros ()
+ %
+ %retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(651, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzeros_int(self,varargin)
+ %Get all nonzeros.
+ %
+ %
+ %Usage: retval = nonzeros_int ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(652, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getName(self,varargin)
+ %Get name (only if symbolic scalar)
+ %
+ %
+ %Usage: retval = getName ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(653, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getDep(self,varargin)
+ %Get expressions of the children of the expression Only defined if symbolic
+ %scalar. Wraps SXElement SXElement::getDep(int ch=0) const.
+ %
+ %
+ %Usage: retval = getDep (ch = 0)
+ %
+ %ch is of type int. ch is of type int. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(654, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNdeps(self,varargin)
+ %Get the number of dependencies of a binary SXElement Only defined if
+ %symbolic scalar.
+ %
+ %
+ %Usage: retval = getNdeps ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(655, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = DMatrix(varargin)
+ self@casadi.MatrixCommon(SwigRef.Null);
+ self@casadi.ExpDMatrix(SwigRef.Null);
+ self@casadi.GenDMatrix(SwigRef.Null);
+ self@casadi.PrintDMatrix(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(659, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function varargout = assign(self,varargin)
+ %Usage: assign (rhs)
+ %
+ %rhs is of type DMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(660, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (rr, cc)
+ %
+ %rr is of type IMatrix. cc is of type IMatrix. rr is of type IMatrix. cc is of type IMatrix. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(661, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren_asgn(self,varargin)
+ %Usage: paren_asgn (m, rr, cc)
+ %
+ %m is of type DMatrix. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(662, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = brace(self,varargin)
+ %Usage: retval = brace (rr)
+ %
+ %rr is of type IMatrix. rr is of type IMatrix. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(663, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setbrace(self,varargin)
+ %Usage: setbrace (m, rr)
+ %
+ %m is of type DMatrix. rr is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(664, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = end(self,varargin)
+ %Usage: retval = end (i, n)
+ %
+ %i is of type int. n is of type int. i is of type int. n is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(665, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ctranspose(self,varargin)
+ %Usage: retval = ctranspose ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(666, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = full(self,varargin)
+ %Usage: retval = full ()
+ %
+ %retval is of type mxArray *.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(667, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparse(self,varargin)
+ %[DEPRECATED] Create a sparse matrix with all zeros Use MatType(nrow, ncol)
+ %instead
+ %
+ %
+ %Usage: retval = sparse ()
+ %
+ %retval is of type mxArray *.
+
+ try
+
+ if ~isa(self,'casadi.DMatrix')
+ self = casadi.DMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(668, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(669, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = binary(varargin)
+ %[INTERNAL] Create nodes by
+ %their ID.
+ %
+ %
+ %Usage: retval = binary (op, x, y)
+ %
+ %op is of type int. x is of type DMatrix. y is of type DMatrix. op is of type int. x is of type DMatrix. y is of type DMatrix. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(604, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unary(varargin)
+ %[INTERNAL] Create nodes by
+ %their ID.
+ %
+ %
+ %Usage: retval = unary (op, x)
+ %
+ %op is of type int. x is of type DMatrix. op is of type int. x is of type DMatrix. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(605, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = scalar_matrix(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = scalar_matrix (op, x, y)
+ %
+ %op is of type int. x is of type DMatrix. y is of type DMatrix. op is of type int. x is of type DMatrix. y is of type DMatrix. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(606, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = matrix_scalar(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = matrix_scalar (op, x, y)
+ %
+ %op is of type int. x is of type DMatrix. y is of type DMatrix. op is of type int. x is of type DMatrix. y is of type DMatrix. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(607, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = matrix_matrix(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = matrix_matrix (op, x, y)
+ %
+ %op is of type int. x is of type DMatrix. y is of type DMatrix. op is of type int. x is of type DMatrix. y is of type DMatrix. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(608, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setEqualityCheckingDepth(varargin)
+ %Usage: setEqualityCheckingDepth (eq_depth = 1)
+ %
+ %eq_depth is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(611, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getEqualityCheckingDepth(varargin)
+ %Usage: retval = getEqualityCheckingDepth ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(612, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = className(varargin)
+ %Usage: retval = className ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(613, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triplet(varargin)
+ %Usage: retval = triplet (row, col, d, rc)
+ %
+ %row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. d is of type DMatrix. rc is of type std::pair< int,int > const &. row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. d is of type DMatrix. rc is of type std::pair< int,int > const &. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(628, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inf(varargin)
+ %create a matrix with all inf
+ %
+ %
+ %Usage: retval = inf (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(629, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nan(varargin)
+ %create a matrix with all nan
+ %
+ %
+ %Usage: retval = nan (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(630, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eye(varargin)
+ %Usage: retval = eye (ncol)
+ %
+ %ncol is of type int. ncol is of type int. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(631, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setPrecision(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setPrecision (precision)
+ %
+ %precision is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(656, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setWidth(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setWidth (width)
+ %
+ %width is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(657, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setScientific(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setScientific (scientific)
+ %
+ %scientific is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(658, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DaeBuilder.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DaeBuilder.m
new file mode 100755
index 0000000..0787833
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DaeBuilder.m
@@ -0,0 +1,1414 @@
+classdef DaeBuilder < casadi.PrintDaeBuilder
+ %An initial-value problem in differential-algebraic equations.
+ %
+ %Independent variables:
+ %======================
+ %
+ %
+ %
+ %
+ %
+ %::
+ %
+ % t: time
+ %
+ %
+ %
+ %
+ %Time-continuous variables:
+ %==========================
+ %
+ %
+ %
+ %
+ %
+ %::
+ %
+ % x: states defined by ODE
+ % s: implicitly defined states
+ % z: algebraic variables
+ % u: control signals
+ % q: quadrature states
+ % y: outputs
+ %
+ %
+ %
+ %
+ %Time-constant variables:
+ %========================
+ %
+ %
+ %
+ %
+ %
+ %::
+ %
+ % p: free parameters
+ % d: dependent parameters
+ %
+ %
+ %
+ %
+ %Dynamic constraints (imposed everywhere):
+ %=========================================
+ %
+ %
+ %
+ %
+ %
+ %::
+ %
+ % ODE \\dot{x} == ode(t, x, s, z, u, p, d)
+ % DAE or implicit ODE: 0 == dae(t, x, s, z, u, p, d, sdot)
+ % algebraic equations: 0 == alg(t, x, s, z, u, p, d)
+ % quadrature equations: \\dot{q} == quad(t, x, s, z, u, p, d)
+ % deppendent parameters: d == ddef(t, x, s, z, u, p, d)
+ % output equations: y == ydef(t, x, s, z, u, p, d)
+ %
+ %
+ %
+ %
+ %Point constraints (imposed pointwise):
+ %======================================
+ %
+ %
+ %
+ %
+ %
+ %::
+ %
+ % Initial equations: 0 == init(t, x, s, z, u, p, d, sdot)
+ %
+ %
+ %
+ %
+ %Joel Andersson
+ %
+ %C++ includes: dae_builder.hpp
+ %Usage: DaeBuilder ()
+ %
+ methods
+ function v = t(self)
+ v = casadiMEX(1260, self);
+ end
+ function v = x(self)
+ v = casadiMEX(1261, self);
+ end
+ function v = ode(self)
+ v = casadiMEX(1262, self);
+ end
+ function v = lam_ode(self)
+ v = casadiMEX(1263, self);
+ end
+ function v = s(self)
+ v = casadiMEX(1264, self);
+ end
+ function v = sdot(self)
+ v = casadiMEX(1265, self);
+ end
+ function v = dae(self)
+ v = casadiMEX(1266, self);
+ end
+ function v = lam_dae(self)
+ v = casadiMEX(1267, self);
+ end
+ function v = z(self)
+ v = casadiMEX(1268, self);
+ end
+ function v = alg(self)
+ v = casadiMEX(1269, self);
+ end
+ function v = lam_alg(self)
+ v = casadiMEX(1270, self);
+ end
+ function v = q(self)
+ v = casadiMEX(1271, self);
+ end
+ function v = quad(self)
+ v = casadiMEX(1272, self);
+ end
+ function v = lam_quad(self)
+ v = casadiMEX(1273, self);
+ end
+ function v = w(self)
+ v = casadiMEX(1274, self);
+ end
+ function v = wdef(self)
+ v = casadiMEX(1275, self);
+ end
+ function v = lam_wdef(self)
+ v = casadiMEX(1276, self);
+ end
+ function v = y(self)
+ v = casadiMEX(1277, self);
+ end
+ function v = ydef(self)
+ v = casadiMEX(1278, self);
+ end
+ function v = lam_ydef(self)
+ v = casadiMEX(1279, self);
+ end
+ function v = u(self)
+ v = casadiMEX(1280, self);
+ end
+ function v = p(self)
+ v = casadiMEX(1281, self);
+ end
+ function v = c(self)
+ v = casadiMEX(1282, self);
+ end
+ function v = cdef(self)
+ v = casadiMEX(1283, self);
+ end
+ function v = d(self)
+ v = casadiMEX(1284, self);
+ end
+ function v = ddef(self)
+ v = casadiMEX(1285, self);
+ end
+ function v = lam_ddef(self)
+ v = casadiMEX(1286, self);
+ end
+ function v = init(self)
+ v = casadiMEX(1287, self);
+ end
+ function varargout = add_p(self,varargin)
+ %Add a new parameter
+ %
+ %
+ %Usage: retval = add_p (name = std::string(), n = 1)
+ %
+ %name is of type std::string const &. n is of type int. name is of type std::string const &. n is of type int. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1288, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_u(self,varargin)
+ %Add a new control.
+ %
+ %
+ %Usage: retval = add_u (name = std::string(), n = 1)
+ %
+ %name is of type std::string const &. n is of type int. name is of type std::string const &. n is of type int. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1289, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_x(self,varargin)
+ %Add a new differential state.
+ %
+ %
+ %Usage: retval = add_x (name = std::string(), n = 1)
+ %
+ %name is of type std::string const &. n is of type int. name is of type std::string const &. n is of type int. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1290, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_s(self,varargin)
+ %Add a implicit state.
+ %
+ %
+ %Usage: retval = add_s (name = std::string(), n = 1)
+ %
+ %name is of type std::string const &. n is of type int. name is of type std::string const &. n is of type int. retval is of type std::pair< casadi::MX,casadi::MX >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1291, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_z(self,varargin)
+ %Add a new algebraic variable.
+ %
+ %
+ %Usage: retval = add_z (name = std::string(), n = 1)
+ %
+ %name is of type std::string const &. n is of type int. name is of type std::string const &. n is of type int. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1292, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_q(self,varargin)
+ %Add a new quadrature state.
+ %
+ %
+ %Usage: retval = add_q (name = std::string(), n = 1)
+ %
+ %name is of type std::string const &. n is of type int. name is of type std::string const &. n is of type int. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1293, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_d(self,varargin)
+ %Add a new dependent parameter.
+ %
+ %
+ %Usage: retval = add_d (new_ddef, name = std::string())
+ %
+ %new_ddef is of type MX. name is of type std::string const &. new_ddef is of type MX. name is of type std::string const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1294, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_y(self,varargin)
+ %Add a new output.
+ %
+ %
+ %Usage: retval = add_y (new_ydef, name = std::string())
+ %
+ %new_ydef is of type MX. name is of type std::string const &. new_ydef is of type MX. name is of type std::string const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1295, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_ode(self,varargin)
+ %Add an ordinary differential equation.
+ %
+ %
+ %Usage: add_ode (new_ode, name = std::string())
+ %
+ %new_ode is of type MX. name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1296, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_dae(self,varargin)
+ %Add a differential-algebraic equation.
+ %
+ %
+ %Usage: add_dae (new_dae, name = std::string())
+ %
+ %new_dae is of type MX. name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1297, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_alg(self,varargin)
+ %Add an algebraic equation.
+ %
+ %
+ %Usage: add_alg (new_alg, name = std::string())
+ %
+ %new_alg is of type MX. name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1298, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = add_quad(self,varargin)
+ %Add a quadrature equation.
+ %
+ %
+ %Usage: add_quad (new_quad, name = std::string())
+ %
+ %new_quad is of type MX. name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1299, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sanityCheck(self,varargin)
+ %Check if dimensions match.
+ %
+ %
+ %Usage: sanityCheck ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1300, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = split_dae(self,varargin)
+ %Identify and separate the algebraic variables and equations in the DAE.
+ %
+ %
+ %Usage: split_dae ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1301, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eliminate_alg(self,varargin)
+ %Eliminate algebraic variables and equations transforming them into outputs.
+ %
+ %
+ %Usage: eliminate_alg ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1302, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeSemiExplicit(self,varargin)
+ %Transform the implicit DAE to a semi-explicit DAE.
+ %
+ %
+ %Usage: makeSemiExplicit ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1303, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeExplicit(self,varargin)
+ %Transform the implicit DAE or semi-explicit DAE into an explicit ODE.
+ %
+ %
+ %Usage: makeExplicit ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1304, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sort_d(self,varargin)
+ %Sort dependent parameters.
+ %
+ %
+ %Usage: sort_d ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1305, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = split_d(self,varargin)
+ %Eliminate interdependencies amongst dependent parameters.
+ %
+ %
+ %Usage: split_d ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1306, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eliminate_d(self,varargin)
+ %Eliminate dependent parameters.
+ %
+ %
+ %Usage: eliminate_d ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1307, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eliminate_quad(self,varargin)
+ %Eliminate quadrature states and turn them into ODE states.
+ %
+ %
+ %Usage: eliminate_quad ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1308, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sort_dae(self,varargin)
+ %Sort the DAE and implicitly defined states.
+ %
+ %
+ %Usage: sort_dae ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1309, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sort_alg(self,varargin)
+ %Sort the algebraic equations and algebraic states.
+ %
+ %
+ %Usage: sort_alg ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1310, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = scaleVariables(self,varargin)
+ %Scale the variables.
+ %
+ %
+ %Usage: scaleVariables ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1311, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = scaleEquations(self,varargin)
+ %Scale the implicit equations.
+ %
+ %
+ %Usage: scaleEquations ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1312, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = parseFMI(self,varargin)
+ %Import existing problem from FMI/XML
+ %
+ %
+ %Usage: parseFMI (filename)
+ %
+ %filename is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1313, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = addLinearCombination(self,varargin)
+ %Add a named linear combination of output expressions.
+ %
+ %
+ %Usage: retval = addLinearCombination (name, f_out)
+ %
+ %name is of type std::string const &. f_out is of type std::vector< std::string,std::allocator< std::string > > const &. name is of type std::string const &. f_out is of type std::vector< std::string,std::allocator< std::string > > const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1314, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = create(self,varargin)
+ %Construct a function object.
+ %
+ %
+ %Usage: retval = create (fname, s_in, s_out)
+ %
+ %fname is of type std::string const &. s_in is of type std::vector< std::string,std::allocator< std::string > > const &. s_out is of type std::vector< std::string,std::allocator< std::string > > const &. fname is of type std::string const &. s_in is of type std::vector< std::string,std::allocator< std::string > > const &. s_out is of type std::vector< std::string,std::allocator< std::string > > const &. retval is of type MXFunction.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1315, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1316, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = der(self,varargin)
+ %> MX DaeBuilder.der(str name) const
+ %------------------------------------------------------------------------
+ %
+ %Get a derivative expression by name.
+ %
+ %> MX DaeBuilder.der(MX var) const
+ %------------------------------------------------------------------------
+ %
+ %Get a derivative expression by non-differentiated expression.
+ %
+ %
+ %Usage: retval = der (var)
+ %
+ %var is of type MX. var is of type MX. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1317, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nominal(self,varargin)
+ %> double DaeBuilder.nominal(str name) const
+ %------------------------------------------------------------------------
+ %
+ %Get the nominal value by name.
+ %
+ %> [double] DaeBuilder.nominal(MX var) const
+ %------------------------------------------------------------------------
+ %
+ %Get the nominal value(s) by expression.
+ %
+ %
+ %Usage: retval = nominal (var)
+ %
+ %var is of type MX. var is of type MX. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1318, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setNominal(self,varargin)
+ %> void DaeBuilder.setNominal(str name, double val)
+ %------------------------------------------------------------------------
+ %
+ %Set the nominal value by name.
+ %
+ %> void DaeBuilder.setNominal(MX var, [double ] val)
+ %------------------------------------------------------------------------
+ %
+ %Set the nominal value(s) by expression.
+ %
+ %
+ %Usage: setNominal (var, val)
+ %
+ %var is of type MX. val is of type std::vector< double,std::allocator< double > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1319, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = min(self,varargin)
+ %> double DaeBuilder.min(str name, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the lower bound by name.
+ %
+ %> [double] DaeBuilder.min(MX var, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the lower bound(s) by expression.
+ %
+ %
+ %Usage: retval = min (var, normalized = false)
+ %
+ %var is of type MX. normalized is of type bool. var is of type MX. normalized is of type bool. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1320, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setMin(self,varargin)
+ %> void DaeBuilder.setMin(str name, double val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the lower bound by name.
+ %
+ %> void DaeBuilder.setMin(MX var, [double ] val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the lower bound(s) by expression.
+ %
+ %
+ %Usage: setMin (var, val, normalized = false)
+ %
+ %var is of type MX. val is of type std::vector< double,std::allocator< double > > const &. normalized is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1321, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = max(self,varargin)
+ %> double DaeBuilder.max(str name, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the upper bound by name.
+ %
+ %> [double] DaeBuilder.max(MX var, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the upper bound(s) by expression.
+ %
+ %
+ %Usage: retval = max (var, normalized = false)
+ %
+ %var is of type MX. normalized is of type bool. var is of type MX. normalized is of type bool. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1322, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setMax(self,varargin)
+ %> void DaeBuilder.setMax(str name, double val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the upper bound by name.
+ %
+ %> void DaeBuilder.setMax(MX var, [double ] val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the upper bound(s) by expression.
+ %
+ %
+ %Usage: setMax (var, val, normalized = false)
+ %
+ %var is of type MX. val is of type std::vector< double,std::allocator< double > > const &. normalized is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1323, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = initialGuess(self,varargin)
+ %> double DaeBuilder.initialGuess(str name, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the initial guess by name.
+ %
+ %> [double] DaeBuilder.initialGuess(MX var, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the initial guess(es) by expression.
+ %
+ %
+ %Usage: retval = initialGuess (var, normalized = false)
+ %
+ %var is of type MX. normalized is of type bool. var is of type MX. normalized is of type bool. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1324, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setInitialGuess(self,varargin)
+ %> void DaeBuilder.setInitialGuess(str name, double val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the initial guess by name.
+ %
+ %> void DaeBuilder.setInitialGuess(MX var, [double ] val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the initial guess(es) by expression.
+ %
+ %
+ %Usage: setInitialGuess (var, val, normalized = false)
+ %
+ %var is of type MX. val is of type std::vector< double,std::allocator< double > > const &. normalized is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1325, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = start(self,varargin)
+ %> double DaeBuilder.start(str name, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the (optionally normalized) value at time 0 by name.
+ %
+ %> [double] DaeBuilder.start(MX var, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the (optionally normalized) value(s) at time 0 by expression.
+ %
+ %
+ %Usage: retval = start (var, normalized = false)
+ %
+ %var is of type MX. normalized is of type bool. var is of type MX. normalized is of type bool. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1326, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setStart(self,varargin)
+ %> void DaeBuilder.setStart(str name, double val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the (optionally normalized) value at time 0 by name.
+ %
+ %> void DaeBuilder.setStart(MX var, [double ] val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the (optionally normalized) value(s) at time 0 by expression.
+ %
+ %
+ %Usage: setStart (var, val, normalized = false)
+ %
+ %var is of type MX. val is of type std::vector< double,std::allocator< double > > const &. normalized is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1327, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = derivativeStart(self,varargin)
+ %> double DaeBuilder.derivativeStart(str name, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the (optionally normalized) derivative value at time 0 by name.
+ %
+ %> [double] DaeBuilder.derivativeStart(MX var, bool normalized=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get the (optionally normalized) derivative value(s) at time 0 by expression.
+ %
+ %
+ %Usage: retval = derivativeStart (var, normalized = false)
+ %
+ %var is of type MX. normalized is of type bool. var is of type MX. normalized is of type bool. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1328, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setDerivativeStart(self,varargin)
+ %> void DaeBuilder.setDerivativeStart(str name, double val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the (optionally normalized) derivative value at time 0 by name.
+ %
+ %> void DaeBuilder.setDerivativeStart(MX var, [double ] val, bool normalized=false)
+ %------------------------------------------------------------------------
+ %
+ %Set the (optionally normalized) derivative value(s) at time 0 by expression.
+ %
+ %
+ %Usage: setDerivativeStart (var, val, normalized = false)
+ %
+ %var is of type MX. val is of type std::vector< double,std::allocator< double > > const &. normalized is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1329, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unit(self,varargin)
+ %> str DaeBuilder.unit(str name) const
+ %------------------------------------------------------------------------
+ %
+ %Get the unit for a component.
+ %
+ %> str DaeBuilder.unit(MX var) const
+ %------------------------------------------------------------------------
+ %
+ %Get the unit given a vector of symbolic variables (all units must be
+ %identical)
+ %
+ %
+ %Usage: retval = unit (var)
+ %
+ %var is of type MX. var is of type MX. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1330, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setUnit(self,varargin)
+ %Set the unit for a component.
+ %
+ %
+ %Usage: setUnit (name, val)
+ %
+ %name is of type std::string const &. val is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1331, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Print representation.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1332, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print description.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1333, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = addVariable(self,varargin)
+ %> void DaeBuilder.addVariable(str name, Variable var)
+ %------------------------------------------------------------------------
+ %
+ %Add a variable.
+ %
+ %> MX DaeBuilder.addVariable(str name, int n=1)
+ %
+ %> MX DaeBuilder.addVariable(str name, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Add a new variable: returns corresponding symbolic expression.
+ %
+ %
+ %Usage: retval = addVariable (name, sp)
+ %
+ %name is of type std::string const &. sp is of type Sparsity. name is of type std::string const &. sp is of type Sparsity. retval is of type MX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1334, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = variable(self,varargin)
+ %Access a variable by name
+ %
+ %
+ %Usage: retval = variable (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type Variable.
+
+ try
+
+ if ~isa(self,'casadi.DaeBuilder')
+ self = casadi.DaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1335, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = DaeBuilder(varargin)
+ self@casadi.PrintDaeBuilder(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1336, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1337, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DerivativeGenerator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DerivativeGenerator.m
new file mode 100755
index 0000000..940f798
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DerivativeGenerator.m
@@ -0,0 +1,65 @@
+classdef DerivativeGenerator < casadi.Functor
+ %Derivative Generator Functor.
+ %
+ %In C++, supply a DerivativeGeneratorCPtr function pointer
+ %
+ %In python, supply a callable, annotated with derivativegenerator decorator
+ %
+ %C++ includes: functor.hpp
+ %Usage: DerivativeGenerator ()
+ %
+ methods
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (fcn, ndir, user_data)
+ %
+ %fcn is of type Function. ndir is of type int. user_data is of type void *. fcn is of type Function. ndir is of type int. user_data is of type void *. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1077, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = DerivativeGenerator(varargin)
+ self@casadi.Functor(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1078, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1079, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DerivativeGenerator2.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DerivativeGenerator2.m
new file mode 100755
index 0000000..40763f4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DerivativeGenerator2.m
@@ -0,0 +1,107 @@
+classdef DerivativeGenerator2 < SwigRef
+ %C++ includes:
+ %callback.hpp
+ %Usage: DerivativeGenerator2 ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (fcn, ndir)
+ %
+ %fcn is of type Function. ndir is of type int. fcn is of type Function. ndir is of type int. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1070, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = original(self,varargin)
+ %Computes the derivative as if this derivative generator does not exist.
+ %
+ %
+ %Usage: retval = original (fcn, ndir, fwd)
+ %
+ %fcn is of type Function. ndir is of type int. fwd is of type bool. fcn is of type Function. ndir is of type int. fwd is of type bool. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1071, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = create(self,varargin)
+ %Usage: retval = create ()
+ %
+ %retval is of type DerivativeGenerator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1072, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1073, self);
+ self.swigPtr=[];
+ end
+ end
+ function self = DerivativeGenerator2(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ if strcmp(class(self),'director_basic.DerivativeGenerator2')
+ tmp = casadiMEX(1074, 0, varargin{:});
+ else
+ tmp = casadiMEX(1074, self, varargin{:});
+ end
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DleSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DleSolver.m
new file mode 100755
index 0000000..fdc072a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DleSolver.m
@@ -0,0 +1,649 @@
+classdef DleSolver < casadi.Function
+ %Base class for Discrete Lyapunov Equation Solvers.
+ %
+ %Given matrices $A$ and symmetric $V$
+ %
+ %
+ %
+ %::
+ %
+ % A in R^(n x n)
+ % V in S^n
+ %
+ %
+ %
+ %
+ %finds $P$ that satisfies:
+ %
+ %
+ %
+ %::
+ %
+ % P = A P A' + V
+ %
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::DLEInput (DLE_NUM_IN = 2) [dleIn]
+ %
+ %+-----------+-------+-------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=============+
+ %| DLE_A | a | A matrix . |
+ %+-----------+-------+-------------+
+ %| DLE_V | v | V matrix . |
+ %+-----------+-------+-------------+
+ %
+ %>Output scheme: casadi::DLEOutput (DLE_NUM_OUT = 1) [dleOut]
+ %
+ %+-----------+-------+-------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=============+
+ %| DLE_P | p | P matrix . |
+ %+-----------+-------+-------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| eps_unstable | OT_REAL | 0.000 | A margin for | casadi::DleI |
+ %| | | | unstability | nternal |
+ %| | | | detection | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| error_unstab | OT_BOOLEAN | false | Throw an | casadi::DleI |
+ %| le | | | exception | nternal |
+ %| | | | when it is | |
+ %| | | | detected | |
+ %| | | | that | |
+ %| | | | Product(A_i, | |
+ %| | | | i=N..1) has | |
+ %| | | | eigenvalues | |
+ %| | | | greater than | |
+ %| | | | 1-eps_unstab | |
+ %| | | | le | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| pos_def | OT_BOOLEAN | false | Assume P | casadi::DleI |
+ %| | | | positive | nternal |
+ %| | | | definite | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- dple
+ %
+ %- lrdle
+ %
+ %- fixed_smith
+ %
+ %- simple
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %DleSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %dple
+ %----
+ %
+ %
+ %
+ %Solving the Discrete Lyapunov Equations with Periodic Solver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lrdle
+ %-----
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %fixed_smith
+ %-----------
+ %
+ %
+ %
+ %Solving the Discrete Lyapunov Equations with a fixed number of smith
+ %iterations.
+ %
+ %This plugin uses Smith iterations.
+ %
+ %Th basic idea is to exploit the fact that the discrete algebraic Lyapunov
+ %operator f(X) = AXA^T + V has a fixed point when A is stable.
+ %
+ %The pure Smith iterations are:
+ %
+ %
+ %
+ %::
+ %
+ % X_{-1} = 0
+ % X_0 = V
+ % k = 0
+ % while ||X_k - X_{k-1} || < do
+ % X_{k+1} = A X_k A^T + V
+ % k += 1
+ % end
+ %
+ % P = X_k
+ %
+ %
+ %
+ %
+ %With frequency doubling, we have:
+ %
+ %
+ %
+ %::
+ %
+ % X_{-1} = 0
+ % X_0 = V
+ % V_0 = V
+ % A_0 = A
+ % k = 0
+ % while ||X_k - X_{k-1} || < do
+ % X_{k+1} = A_k X_k A_k^T + V_k
+ % V_{k+1} = A_k V_k A_k^T + V_k
+ % A_{k+1} = A_k A_k
+ % k += 1
+ % end
+ %
+ % P = X_k
+ %
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+---------------+------------+---------+----------------------------+
+ %| Id | Type | Default | Description |
+ %+===============+============+=========+============================+
+ %| freq_doubling | OT_BOOLEAN | false | Use frequency doubling |
+ %+---------------+------------+---------+----------------------------+
+ %| iter | OT_INTEGER | 100 | Number of Smith iterations |
+ %+---------------+------------+---------+----------------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %simple
+ %------
+ %
+ %
+ %
+ %Solving the Discrete Lyapunov Equations with a regular LinearSolver
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| compressed_solv | OT_BOOLEAN | true | When a system |
+ %| e | | | with sparse rhs |
+ %| | | | arises, |
+ %| | | | compress toa |
+ %| | | | smaller system |
+ %| | | | with dense rhs. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver | OT_STRING | GenericType() | User-defined |
+ %| | | | linear solver |
+ %| | | | class. Needed |
+ %| | | | for |
+ %| | | | sensitivities. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptions | | | passed to the |
+ %| | | | linear solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: dle_solver.hpp
+ %Usage: DleSolver ()
+ %
+ methods
+ function varargout = clone(self,varargin)
+ %Clone.
+ %
+ %
+ %Usage: retval = clone ()
+ %
+ %retval is of type DleSolver.
+
+ try
+
+ if ~isa(self,'casadi.DleSolver')
+ self = casadi.DleSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1101, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printStats(self,varargin)
+ %Print solver statistics.
+ %
+ %
+ %Usage: printStats ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.DleSolver')
+ self = casadi.DleSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1102, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = DleSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1108, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1109, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1103, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1104, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1105, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1106, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(varargin)
+ %Usage: retval = sparsity (st)
+ %
+ %st is of type std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > > const &. st is of type std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > > const &. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1107, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DpleSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DpleSolver.m
new file mode 100755
index 0000000..ecba79b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/DpleSolver.m
@@ -0,0 +1,672 @@
+classdef DpleSolver < casadi.Function
+ %Base class for Discrete Periodic Lyapunov Equation Solvers.
+ %
+ %Given matrices $A_k$ and symmetric $V_k, k = 0..K-1$
+ %
+ %
+ %
+ %::
+ %
+ % A_k in R^(n x n)
+ % V_k in R^n
+ %
+ %
+ %
+ %
+ %provides all of $P_k$ that satisfy:
+ %
+ %
+ %
+ %::
+ %
+ % P_0 = A_(K-1)*P_(K-1)*A_(K-1)' + V_k
+ % P_k+1 = A_k*P_k*A_k' + V_k for k = 1..K-1
+ %
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::DPLEInput (DPLE_NUM_IN = 2) [dpleIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| DPLE_A | a | A matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %| DPLE_V | v | V matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::DPLEOutput (DPLE_NUM_OUT = 1) [dpleOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| DPLE_P | p | Lyapunov matrix |
+ %| | | (horzcat when |
+ %| | | const_dim, diagcat |
+ %| | | otherwise) (Cholesky |
+ %| | | of P if pos_def) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| const_dim | OT_BOOLEAN | true | Assume | casadi::Dple |
+ %| | | | constant | Internal |
+ %| | | | dimension of | |
+ %| | | | P | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| eps_unstable | OT_REAL | 0.000 | A margin for | casadi::Dple |
+ %| | | | unstability | Internal |
+ %| | | | detection | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| error_unstab | OT_BOOLEAN | false | Throw an | casadi::Dple |
+ %| le | | | exception | Internal |
+ %| | | | when it is | |
+ %| | | | detected | |
+ %| | | | that | |
+ %| | | | Product(A_i, | |
+ %| | | | i=N..1) has | |
+ %| | | | eigenvalues | |
+ %| | | | greater than | |
+ %| | | | 1-eps_unstab | |
+ %| | | | le | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| pos_def | OT_BOOLEAN | false | Assume P | casadi::Dple |
+ %| | | | positive | Internal |
+ %| | | | definite | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- slicot
+ %
+ %- condensing
+ %
+ %- lrdple
+ %
+ %- lifting
+ %
+ %- simple
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %DpleSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %slicot
+ %------
+ %
+ %
+ %
+ %An efficient solver for Discrete Periodic Lyapunov Equations using SLICOT
+ %
+ %Uses Periodic Schur Decomposition ('psd') and does not assume positive
+ %definiteness. Based on Periodic Lyapunov equations: some applications and
+ %new algorithms. Int. J. Control, vol. 67, pp. 69-87, 1997.
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| linear_solver | OT_STRING | GenericType() | User-defined |
+ %| | | | linear solver |
+ %| | | | class. Needed |
+ %| | | | for |
+ %| | | | sensitivities. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptions | | | passed to the |
+ %| | | | linear solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| psd_num_zero | OT_REAL | 0.000 | Numerical zero |
+ %| | | | used in |
+ %| | | | Periodic Schur |
+ %| | | | decomposition |
+ %| | | | with |
+ %| | | | slicot.This |
+ %| | | | option is |
+ %| | | | needed when |
+ %| | | | your systems |
+ %| | | | has Floquet |
+ %| | | | multiplierszero |
+ %| | | | or close to |
+ %| | | | zero |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available stats
+ %
+ %+----------------+
+ %| Id |
+ %+================+
+ %| t_linear_solve |
+ %+----------------+
+ %| t_psd |
+ %+----------------+
+ %| t_total |
+ %+----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %condensing
+ %----------
+ %
+ %
+ %
+ %Solving the Discrete Periodic Lyapunov Equations by condensing the entire
+ %period to a single Discrete Lyapunov Equation
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lrdple
+ %------
+ %
+ %
+ %
+ %Solving the Low-Rank Discrete Lyapunov Equations with a Low-Rank Discrete
+ %Lyapunov Equations Solver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lifting
+ %-------
+ %
+ %
+ %
+ %Solving the Discrete Periodic Lyapunov Equations by lifting the entire
+ %period to a single Discrete Lyapunov Equation
+ %
+ %>List of available options
+ %
+ %+------+-----------+---------+-----------------------------------+
+ %| Id | Type | Default | Description |
+ %+======+===========+=========+===================================+
+ %| form | OT_STRING | "A" | The form of the lifting (A:0|B:1) |
+ %+------+-----------+---------+-----------------------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %simple
+ %------
+ %
+ %
+ %
+ %Solving the Discrete Periodic Lyapunov Equations with a regular LinearSolver
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| linear_solver | OT_STRING | GenericType() | User-defined |
+ %| | | | linear solver |
+ %| | | | class. Needed |
+ %| | | | for |
+ %| | | | sensitivities. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptions | | | passed to the |
+ %| | | | linear solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: dple_solver.hpp
+ %Usage: DpleSolver ()
+ %
+ methods
+ function varargout = clone(self,varargin)
+ %Clone.
+ %
+ %
+ %Usage: retval = clone ()
+ %
+ %retval is of type DpleSolver.
+
+ try
+
+ if ~isa(self,'casadi.DpleSolver')
+ self = casadi.DpleSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1092, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printStats(self,varargin)
+ %Print solver statistics.
+ %
+ %
+ %Usage: printStats ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.DpleSolver')
+ self = casadi.DpleSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1093, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = DpleSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1099, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1100, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1094, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1095, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1096, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1097, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = periodic_schur(varargin)
+ %Usage: periodic_schur (name, A, num_zero = 0)
+ %
+ %name is of type std::string const &. A is of type std::vector< casadi::Matrix< double >,std::allocator< casadi::Matrix< double > > > const &. num_zero is of type double.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1098, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpDMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpDMatrix.m
new file mode 100755
index 0000000..f5c0e49
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpDMatrix.m
@@ -0,0 +1,46 @@
+classdef ExpDMatrix < casadi.GenericExpressionCommon
+ %Expression interface.
+ %
+ %This is a common base class for SX, MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: generic_expression.hpp
+ %Usage: ExpDMatrix ()
+ %
+ methods
+ function self = ExpDMatrix(varargin)
+ self@casadi.GenericExpressionCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(471, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(472, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpIMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpIMatrix.m
new file mode 100755
index 0000000..684b177
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpIMatrix.m
@@ -0,0 +1,46 @@
+classdef ExpIMatrix < casadi.GenericExpressionCommon
+ %Expression interface.
+ %
+ %This is a common base class for SX, MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: generic_expression.hpp
+ %Usage: ExpIMatrix ()
+ %
+ methods
+ function self = ExpIMatrix(varargin)
+ self@casadi.GenericExpressionCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(469, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(470, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpMX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpMX.m
new file mode 100755
index 0000000..872bd34
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpMX.m
@@ -0,0 +1,46 @@
+classdef ExpMX < casadi.GenericExpressionCommon
+ %Expression interface.
+ %
+ %This is a common base class for SX, MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: generic_expression.hpp
+ %Usage: ExpMX ()
+ %
+ methods
+ function self = ExpMX(varargin)
+ self@casadi.GenericExpressionCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(475, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(476, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpSX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpSX.m
new file mode 100755
index 0000000..07119c6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExpSX.m
@@ -0,0 +1,46 @@
+classdef ExpSX < casadi.GenericExpressionCommon
+ %Expression interface.
+ %
+ %This is a common base class for SX, MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: generic_expression.hpp
+ %Usage: ExpSX ()
+ %
+ methods
+ function self = ExpSX(varargin)
+ self@casadi.GenericExpressionCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(473, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(474, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExternalFunction.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExternalFunction.m
new file mode 100755
index 0000000..a9269e2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ExternalFunction.m
@@ -0,0 +1,304 @@
+classdef ExternalFunction < casadi.Function
+ %Interface for a function that is not implemented by CasADi symbolics.
+ %
+ %Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %>List of available monitors
+ %
+ %+---------+--------------------------+
+ %| Id | Used in |
+ %+=========+==========================+
+ %| inputs | casadi::FunctionInternal |
+ %+---------+--------------------------+
+ %| outputs | casadi::FunctionInternal |
+ %+---------+--------------------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: external_function.hpp
+ %Usage: ExternalFunction ()
+ %
+ methods
+ function self = ExternalFunction(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1050, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1051, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1049, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/FLAG.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/FLAG.m
new file mode 100755
index 0000000..b1844ae
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/FLAG.m
@@ -0,0 +1,7 @@
+function v = FLAG()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 152);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Function.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Function.m
new file mode 100755
index 0000000..76a0846
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Function.m
@@ -0,0 +1,1921 @@
+classdef Function < casadi.OptionsFunctionality & casadi.IOInterfaceFunction
+ %General function.
+ %
+ %A general function $f$ in casadi can be multi-input, multi-output. Number of
+ %inputs: nin nIn() Number of outputs: nout nOut() We can view this function
+ %as a being composed of a ( nin, nout) grid of single-input, single-output
+ %primitive functions. Each such primitive function $f_ {i, j} \\forall i
+ %\\in [0, nin-1], j \\in [0, nout-1]$ can map as $\\mathbf {R}^{n,
+ %m}\\to\\mathbf{R}^{p, q}$, in which n, m, p, q can take different values
+ %for every (i, j) pair. When passing input, you specify which partition $i$
+ %is active. You pass the numbers vectorized, as a vector of size $(n*m)$.
+ %When requesting output, you specify which partition $j$ is active. You get
+ %the numbers vectorized, as a vector of size $(p*q)$. To calculate
+ %Jacobians, you need to have $(m=1, q=1)$.
+ %
+ %Write the Jacobian as $J_ {i, j} = \\nabla f_{i, j} = \\frac
+ %{\\partial f_{i, j}(\\vec{x})}{\\partial \\vec{x}}$.
+ %
+ %We have the following relationships for function mapping from a row vector
+ %to a row vector:
+ %
+ %$ \\vec {s}_f = \\nabla f_{i, j} . \\vec{v}$ $ \\vec {s}_a =
+ %(\\nabla f_{i, j})^T . \\vec{w}$
+ %
+ %Some quantities in these formulas must be transposed: input col: transpose $
+ %\\vec {v} $ and $\\vec{s}_a$ output col: transpose $ \\vec {w} $ and
+ %$\\vec{s}_f$ NOTE: Functions are allowed to modify their input arguments
+ %when evaluating: implicitFunction, IDAS solver Further releases may disallow
+ %this.
+ %
+ %Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %>List of available monitors
+ %
+ %+---------+--------------------------+
+ %| Id | Used in |
+ %+=========+==========================+
+ %| inputs | casadi::FunctionInternal |
+ %+---------+--------------------------+
+ %| outputs | casadi::FunctionInternal |
+ %+---------+--------------------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: function.hpp
+ %Usage: Function ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(832, self);
+ self.swigPtr=[];
+ end
+ end
+ function varargout = inputIndex(self,varargin)
+ %Find the index for a string describing a particular entry of an input
+ %scheme.
+ %
+ %example: schemeEntry("x_opt") -> returns NLP_SOLVER_X if FunctionInternal
+ %adheres to SCHEME_NLPINput
+ %
+ %
+ %Usage: retval = inputIndex (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(833, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputIndex(self,varargin)
+ %Find the index for a string describing a particular entry of an output
+ %scheme.
+ %
+ %example: schemeEntry("x_opt") -> returns NLP_SOLVER_X if FunctionInternal
+ %adheres to SCHEME_NLPINput
+ %
+ %
+ %Usage: retval = outputIndex (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(834, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputName(self,varargin)
+ %Get input scheme name by index.
+ %
+ %
+ %Usage: retval = inputName (ind)
+ %
+ %ind is of type int. ind is of type int. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(835, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputName(self,varargin)
+ %Get output scheme name by index.
+ %
+ %
+ %Usage: retval = outputName (ind)
+ %
+ %ind is of type int. ind is of type int. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(836, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputDescription(self,varargin)
+ %Get input scheme description by index.
+ %
+ %
+ %Usage: retval = inputDescription (ind)
+ %
+ %ind is of type int. ind is of type int. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(837, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputDescription(self,varargin)
+ %Get output scheme description by index.
+ %
+ %
+ %Usage: retval = outputDescription (ind)
+ %
+ %ind is of type int. ind is of type int. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(838, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = defaultInput(self,varargin)
+ %Get default input value.
+ %
+ %
+ %Usage: retval = defaultInput (ind)
+ %
+ %ind is of type int. ind is of type int. retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(839, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputSparsity(self,varargin)
+ %Get sparsity of a given input.
+ %
+ %
+ %Usage: retval = inputSparsity (iname)
+ %
+ %iname is of type std::string const &. iname is of type std::string const &. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(840, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputSparsity(self,varargin)
+ %Get sparsity of a given output.
+ %
+ %
+ %Usage: retval = outputSparsity (iname)
+ %
+ %iname is of type std::string const &. iname is of type std::string const &. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(841, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nIn(self,varargin)
+ %Get the number of function inputs.
+ %
+ %
+ %Usage: retval = nIn ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(842, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nOut(self,varargin)
+ %Get the number of function outputs.
+ %
+ %
+ %Usage: retval = nOut ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(843, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nnzIn(self,varargin)
+ %Get total number of nonzeros in all of the matrix-valued inputs.
+ %
+ %
+ %Usage: retval = nnzIn ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(844, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nnzOut(self,varargin)
+ %Get total number of nonzeros in all of the matrix-valued outputs.
+ %
+ %
+ %Usage: retval = nnzOut ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(845, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numelIn(self,varargin)
+ %Get total number of elements in all of the matrix-valued inputs.
+ %
+ %
+ %Usage: retval = numelIn ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(846, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numelOut(self,varargin)
+ %Get total number of elements in all of the matrix-valued outputs.
+ %
+ %
+ %Usage: retval = numelOut ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(847, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputScheme(self,varargin)
+ %Get input scheme.
+ %
+ %
+ %Usage: retval = inputScheme ()
+ %
+ %retval is of type std::vector< std::string,std::allocator< std::string > >.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(848, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputScheme(self,varargin)
+ %Get output scheme.
+ %
+ %
+ %Usage: retval = outputScheme ()
+ %
+ %retval is of type std::vector< std::string,std::allocator< std::string > >.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(849, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = evaluate(self,varargin)
+ %Evaluate.
+ %
+ %
+ %Usage: evaluate ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(850, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printDimensions(self,varargin)
+ %Print dimensions of inputs and outputs.
+ %
+ %
+ %Usage: printDimensions ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(851, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = jacobian(self,varargin)
+ %Generate a Jacobian function of output oind with respect to input iind.
+ %
+ %Parameters:
+ %-----------
+ %
+ %iind: The index of the input
+ %
+ %oind: The index of the output
+ %
+ %The default behavior of this class is defined by the derived class. If
+ %compact is set to true, only the nonzeros of the input and output
+ %expressions are considered. If symmetric is set to true, the Jacobian being
+ %calculated is known to be symmetric (usually a Hessian), which can be
+ %exploited by the algorithm.
+ %
+ %The generated Jacobian has one more output than the calling function
+ %corresponding to the Jacobian and the same number of inputs.
+ %
+ %
+ %Usage: retval = jacobian (iind, oind, compact = false, symmetric = false)
+ %
+ %iind is of type std::string const &. oind is of type std::string const &. compact is of type bool. symmetric is of type bool. iind is of type std::string const &. oind is of type std::string const &. compact is of type bool. symmetric is of type bool. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(852, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setJacobian(self,varargin)
+ %Set the Jacobian function of output oind with respect to input iind NOTE:
+ %Does not take ownership, only weak references to the Jacobians are kept
+ %internally
+ %
+ %
+ %Usage: setJacobian (jac, iind = 0, oind = 0, compact = false)
+ %
+ %jac is of type Function. iind is of type int. oind is of type int. compact is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(853, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = gradient(self,varargin)
+ %Generate a gradient function of output oind with respect to input iind.
+ %
+ %Parameters:
+ %-----------
+ %
+ %iind: The index of the input
+ %
+ %oind: The index of the output
+ %
+ %The default behavior of this class is defined by the derived class. Note
+ %that the output must be scalar. In other cases, use the Jacobian instead.
+ %
+ %
+ %Usage: retval = gradient (iind, oind)
+ %
+ %iind is of type std::string const &. oind is of type std::string const &. iind is of type std::string const &. oind is of type std::string const &. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(854, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tangent(self,varargin)
+ %Generate a tangent function of output oind with respect to input iind.
+ %
+ %Parameters:
+ %-----------
+ %
+ %iind: The index of the input
+ %
+ %oind: The index of the output
+ %
+ %The default behavior of this class is defined by the derived class. Note
+ %that the input must be scalar. In other cases, use the Jacobian instead.
+ %
+ %
+ %Usage: retval = tangent (iind, oind)
+ %
+ %iind is of type std::string const &. oind is of type std::string const &. iind is of type std::string const &. oind is of type std::string const &. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(855, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hessian(self,varargin)
+ %Generate a Hessian function of output oind with respect to input iind.
+ %
+ %Parameters:
+ %-----------
+ %
+ %iind: The index of the input
+ %
+ %oind: The index of the output
+ %
+ %The generated Hessian has two more outputs than the calling function
+ %corresponding to the Hessian and the gradients.
+ %
+ %
+ %Usage: retval = hessian (iind, oind)
+ %
+ %iind is of type std::string const &. oind is of type std::string const &. iind is of type std::string const &. oind is of type std::string const &. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(856, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = fullJacobian(self,varargin)
+ %Generate a Jacobian function of all the inputs elements with respect to all
+ %the output elements).
+ %
+ %
+ %Usage: retval = fullJacobian ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(857, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setFullJacobian(self,varargin)
+ %Set the Jacobian of all the input nonzeros with respect to all output
+ %nonzeros NOTE: Does not take ownership, only weak references to the Jacobian
+ %are kept internally
+ %
+ %
+ %Usage: setFullJacobian (jac)
+ %
+ %jac is of type Function.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(858, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = call(self,varargin)
+ %Evaluate the function symbolically or numerically.
+ %
+ %
+ %Usage: call (arg, always_inline = false, never_inline = false)
+ %
+ %arg is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. always_inline is of type bool. never_inline is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(859, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (arg, always_inline = false, never_inline = false)
+ %
+ %arg is of type casadi::MXDict const &. always_inline is of type bool. never_inline is of type bool. arg is of type casadi::MXDict const &. always_inline is of type bool. never_inline is of type bool. retval is of type casadi::MXDict const.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(860, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = callForward(self,varargin)
+ %Create call to (cached) derivative function, forward mode.
+ %
+ %
+ %Usage: callForward (arg, res, fseed, always_inline = false, never_inline = false)
+ %
+ %arg is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > const &. res is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > const &. fseed is of type std::vector< std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > >,std::allocator< std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > > > const &. always_inline is of type bool. never_inline is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(861, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = callReverse(self,varargin)
+ %Create call to (cached) derivative function, reverse mode.
+ %
+ %
+ %Usage: callReverse (arg, res, aseed, always_inline = false, never_inline = false)
+ %
+ %arg is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > const &. res is of type std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > const &. aseed is of type std::vector< std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > >,std::allocator< std::vector< casadi::DMatrix,std::allocator< casadi::DMatrix > > > > const &. always_inline is of type bool. never_inline is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(862, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = callDerivative(self,varargin)
+ %[INTERNAL]
+ %Evaluate the function symbolically or numerically with directional
+ %derivatives The first two arguments are the nondifferentiated inputs and
+ %results of the evaluation, the next two arguments are a set of forward
+ %directional seeds and the resulting forward directional derivatives, the
+ %length of the vector being the number of forward directions. The next two
+ %arguments are a set of adjoint directional seeds and the resulting adjoint
+ %directional derivatives, the length of the vector being the number of
+ %adjoint directions.
+ %
+ %
+ %Usage: callDerivative (arg, fseed, aseed, always_inline = false, never_inline = false)
+ %
+ %arg is of type casadi::MXVector const &. fseed is of type casadi::MXVectorVector const &. aseed is of type casadi::MXVectorVector const &. always_inline is of type bool. never_inline is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(863, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mapsum(self,varargin)
+ %Evaluate symbolically in parallel and sum (matrix graph)
+ %
+ %Parameters:
+ %-----------
+ %
+ %parallelization: Type of parallelization used: expand|serial|openmp
+ %
+ %
+ %Usage: retval = mapsum (arg, parallelization = "serial")
+ %
+ %arg is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. parallelization is of type std::string const &. arg is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. parallelization is of type std::string const &. retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(864, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mapaccum(self,varargin)
+ %Create a mapaccumulated version of this function.
+ %
+ %Suppose the function has a signature of:
+ %
+ %::
+ %
+ % f: (x, u) -> (x_next , y )
+ %
+ %
+ %
+ %
+ %The the mapaccumulated version has the signature:
+ %
+ %::
+ %
+ % F: (x0, U) -> (X , Y )
+ %
+ % with
+ % U: horzcat([u0, u1, ..., u_(N-1)])
+ % X: horzcat([x1, x2, ..., x_N])
+ % Y: horzcat([y0, y1, ..., y_(N-1)])
+ %
+ % and
+ % x1, y0 <- f(x0, u0)
+ % x2, y1 <- f(x1, u1)
+ % ...
+ % x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
+ %
+ %
+ %
+ %
+ %
+ %Usage: retval = mapaccum (name, N, options = casadi::Dict())
+ %
+ %name is of type std::string const &. N is of type int. options is of type casadi::Dict const &. name is of type std::string const &. N is of type int. options is of type casadi::Dict const &. retval is of type Function.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(865, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = map(self,varargin)
+ %> [[MX] ] Function.map([[MX ] ] arg, str parallelization="serial")
+ %
+ %> [MX] Function.map([MX ] arg, str parallelization="serial")
+ %------------------------------------------------------------------------
+ %
+ %Evaluate symbolically in parallel (matrix graph)
+ %
+ %Parameters:
+ %-----------
+ %
+ %parallelization: Type of parallelization used: expand|serial|openmp
+ %
+ %> Function Function.map(str name, int N, Dict options=Dict()) const
+ %------------------------------------------------------------------------
+ %
+ %Create a mapped version of this function.
+ %
+ %Suppose the function has a signature of:
+ %
+ %::
+ %
+ % f: (a, p) -> ( s )
+ %
+ %
+ %
+ %
+ %The the mapaccumulated version has the signature:
+ %
+ %::
+ %
+ % F: (A, P) -> (S )
+ %
+ % with
+ % a: horzcat([a0, a1, ..., a_(N-1)])
+ % p: horzcat([p0, p1, ..., p_(N-1)])
+ % s: horzcat([s0, s1, ..., s_(N-1)])
+ % and
+ % s0 <- f(a0, p0)
+ % s1 <- f(a1, p1)
+ % ...
+ % s_(N-1) <- f(a_(N-1), p_(N-1))
+ %
+ %
+ %
+ %
+ %
+ %Usage: retval = map (name, N, options = casadi::Dict())
+ %
+ %name is of type std::string const &. N is of type int. options is of type casadi::Dict const &. name is of type std::string const &. N is of type int. options is of type casadi::Dict const &. retval is of type Function.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(866, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = derivative(self,varargin)
+ %Get a function that calculates nfwd forward derivatives and nadj adjoint
+ %derivatives Legacy function: Use derForward and derReverse instead.
+ %
+ %Returns a function with (1+nfwd)*n_in+nadj*n_out inputs and (1+nfwd)*n_out +
+ %nadj*n_in outputs. The first n_in inputs correspond to nondifferentiated
+ %inputs. The next nfwd*n_in inputs correspond to forward seeds, one direction
+ %at a time and the last nadj*n_out inputs correspond to adjoint seeds, one
+ %direction at a time. The first n_out outputs correspond to nondifferentiated
+ %outputs. The next nfwd*n_out outputs correspond to forward sensitivities,
+ %one direction at a time and the last nadj*n_in outputs corresponds to
+ %adjoint sensitivities, one direction at a time.
+ %
+ %(n_in = nIn(), n_out = nOut())
+ %
+ %
+ %Usage: retval = derivative (nfwd, nadj)
+ %
+ %nfwd is of type int. nadj is of type int. nfwd is of type int. nadj is of type int. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(867, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = derForward(self,varargin)
+ %Get a function that calculates nfwd forward derivatives.
+ %
+ %Returns a function with n_in + n_out +nfwd*n_in inputs and nfwd*n_out
+ %outputs. The first n_in inputs correspond to nondifferentiated inputs. The
+ %next n_out inputs correspond to nondifferentiated outputs. and the last
+ %nfwd*n_in inputs correspond to forward seeds, one direction at a time The
+ %nfwd*n_out outputs correspond to forward sensitivities, one direction at a
+ %time. * (n_in = nIn(), n_out = nOut())
+ %
+ %The functions returned are cached, meaning that if called multiple timed
+ %with the same value, then multiple references to the same function will be
+ %returned.
+ %
+ %
+ %Usage: retval = derForward (nfwd)
+ %
+ %nfwd is of type int. nfwd is of type int. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(868, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = derReverse(self,varargin)
+ %Get a function that calculates nadj adjoint derivatives.
+ %
+ %Returns a function with n_in + n_out +nadj*n_out inputs and nadj*n_in
+ %outputs. The first n_in inputs correspond to nondifferentiated inputs. The
+ %next n_out inputs correspond to nondifferentiated outputs. and the last
+ %nadj*n_out inputs correspond to adjoint seeds, one direction at a time The
+ %nadj*n_in outputs correspond to adjoint sensitivities, one direction at a
+ %time. * (n_in = nIn(), n_out = nOut())
+ %
+ %(n_in = nIn(), n_out = nOut())
+ %
+ %The functions returned are cached, meaning that if called multiple timed
+ %with the same value, then multiple references to the same function will be
+ %returned.
+ %
+ %
+ %Usage: retval = derReverse (nadj)
+ %
+ %nadj is of type int. nadj is of type int. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(869, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setDerForward(self,varargin)
+ %Set a function that calculates nfwd forward derivatives NOTE: Does not take
+ %ownership, only weak references to the derivatives are kept internally.
+ %
+ %
+ %Usage: setDerForward (fcn, nfwd)
+ %
+ %fcn is of type Function. nfwd is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(870, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setDerReverse(self,varargin)
+ %Set a function that calculates nadj adjoint derivatives NOTE: Does not take
+ %ownership, only weak references to the derivatives are kept internally.
+ %
+ %
+ %Usage: setDerReverse (fcn, nadj)
+ %
+ %fcn is of type Function. nadj is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(871, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = jacSparsity(self,varargin)
+ %Get, if necessary generate, the sparsity of a Jacobian block
+ %
+ %
+ %Usage: retval = jacSparsity (iind, oind, compact = false, symmetric = false)
+ %
+ %iind is of type std::string const &. oind is of type std::string const &. compact is of type bool. symmetric is of type bool. iind is of type std::string const &. oind is of type std::string const &. compact is of type bool. symmetric is of type bool. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(872, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setJacSparsity(self,varargin)
+ %Generate the sparsity of a Jacobian block
+ %
+ %
+ %Usage: setJacSparsity (sp, iind, oind, compact = false)
+ %
+ %sp is of type Sparsity. iind is of type std::string const &. oind is of type std::string const &. compact is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(873, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = generate(self,varargin)
+ %Export / Generate C code for the function.
+ %
+ %
+ %Usage: generate (opts = casadi::Dict())
+ %
+ %opts is of type casadi::Dict const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(874, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getStats(self,varargin)
+ %Get all statistics obtained at the end of the last evaluate call.
+ %
+ %
+ %Usage: retval = getStats ()
+ %
+ %retval is of type casadi::Dict const &.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(876, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getStat(self,varargin)
+ %Get a single statistic obtained at the end of the last evaluate call.
+ %
+ %
+ %Usage: retval = getStat (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type GenericType.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(877, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = symbolicInput(self,varargin)
+ %Get a vector of symbolic variables with the same dimensions as the inputs.
+ %
+ %There is no guarantee that consecutive calls return identical objects
+ %
+ %
+ %Usage: retval = symbolicInput (unique = false)
+ %
+ %unique is of type bool. unique is of type bool. retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(878, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = symbolicInputSX(self,varargin)
+ %Get a vector of symbolic variables with the same dimensions as the inputs,
+ %SX graph.
+ %
+ %There is no guarantee that consecutive calls return identical objects
+ %
+ %
+ %Usage: retval = symbolicInputSX ()
+ %
+ %retval is of type std::vector< casadi::SX,std::allocator< casadi::SX > >.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(879, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = symbolicOutput(self,varargin)
+ %Get a vector of symbolic variables with the same dimensions as the outputs.
+ %
+ %There is no guarantee that consecutive calls return identical objects
+ %
+ %
+ %Usage: retval = symbolicOutput ()
+ %
+ %retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(880, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = spCanEvaluate(self,varargin)
+ %[INTERNAL] Is the
+ %class able to propagate seeds through the algorithm?
+ %
+ %(for usage, see the example propagating_sparsity.cpp)
+ %
+ %
+ %Usage: retval = spCanEvaluate (fwd)
+ %
+ %fwd is of type bool. fwd is of type bool. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(881, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = spInit(self,varargin)
+ %[INTERNAL] Reset the
+ %sparsity propagation.
+ %
+ %(for usage, see the example propagating_sparsity.cpp)
+ %
+ %
+ %Usage: spInit (fwd)
+ %
+ %fwd is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(882, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = spEvaluate(self,varargin)
+ %[INTERNAL] Propagate
+ %the sparsity pattern through a set of directional.
+ %
+ %derivatives forward or backward (for usage, see the example
+ %propagating_sparsity.cpp)
+ %
+ %
+ %Usage: spEvaluate (fwd)
+ %
+ %fwd is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(883, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sz_arg(self,varargin)
+ %[INTERNAL] Get required
+ %length of arg field.
+ %
+ %
+ %Usage: retval = sz_arg ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(884, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sz_res(self,varargin)
+ %[INTERNAL] Get required
+ %length of res field.
+ %
+ %
+ %Usage: retval = sz_res ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(885, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sz_iw(self,varargin)
+ %[INTERNAL] Get required
+ %length of iw field.
+ %
+ %
+ %Usage: retval = sz_iw ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(886, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sz_w(self,varargin)
+ %[INTERNAL] Get required
+ %length of w field.
+ %
+ %
+ %Usage: retval = sz_w ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(887, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = addMonitor(self,varargin)
+ %Add modules to be monitored.
+ %
+ %
+ %Usage: addMonitor (mon)
+ %
+ %mon is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(888, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = removeMonitor(self,varargin)
+ %Remove modules to be monitored.
+ %
+ %
+ %Usage: removeMonitor (mon)
+ %
+ %mon is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(889, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = checkInputs(self,varargin)
+ %[INTERNAL] Check if
+ %the numerical values of the supplied bounds make sense.
+ %
+ %
+ %Usage: checkInputs ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(890, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getSanitizedName(self,varargin)
+ %get function name with all non alphanumeric characters converted to '_'
+ %
+ %
+ %Usage: retval = getSanitizedName ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Function')
+ self = casadi.Function(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(891, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = Function(varargin)
+ self@casadi.OptionsFunctionality(SwigRef.Null);
+ self@casadi.IOInterfaceFunction(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(893, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(875, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sanitizeName(varargin)
+ %Usage: retval = sanitizeName (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(892, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Functor.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Functor.m
new file mode 100755
index 0000000..6a7adb3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Functor.m
@@ -0,0 +1,44 @@
+classdef Functor < casadi.SharedObject
+ %Functor.
+ %
+ %Joris Gillis
+ %
+ %C++ includes: functor.hpp
+ %Usage: Functor ()
+ %
+ methods
+ function self = Functor(varargin)
+ self@casadi.SharedObject(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1075, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1076, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenDMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenDMatrix.m
new file mode 100755
index 0000000..78a3e0a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenDMatrix.m
@@ -0,0 +1,743 @@
+classdef GenDMatrix < casadi.GenericMatrixCommon & casadi.SpDMatrix
+ %Matrix base class.
+ %
+ %This is a common base class for MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. The class is designed with the idea that
+ %"everything is a matrix", that is, also scalars and vectors. This
+ %philosophy makes it easy to use and to interface in particularly with Python
+ %and Matlab/Octave. The syntax tries to stay as close as possible to the
+ %ublas syntax when it comes to vector/matrix operations. Index starts with
+ %0. Index vec happens as follows: (rr, cc) -> k = rr+cc*size1() Vectors are
+ %column vectors. The storage format is Compressed Column Storage (CCS),
+ %similar to that used for sparse matrices in Matlab, but unlike this format,
+ %we do allow for elements to be structurally non-zero but numerically zero.
+ %The sparsity pattern, which is reference counted and cached, can be accessed
+ %with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: generic_matrix.hpp
+ %Usage: GenDMatrix ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = nnz(self,varargin)
+ %Get the number of (structural) non-zero elements.
+ %
+ %
+ %Usage: retval = nnz ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(340, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeL(self,varargin)
+ %Get the number of non-zeros in the lower triangular half.
+ %
+ %
+ %Usage: retval = sizeL ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(341, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeU(self,varargin)
+ %Get the number of non-zeros in the upper triangular half.
+ %
+ %
+ %Usage: retval = sizeU ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(342, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeD(self,varargin)
+ %Get get the number of non-zeros on the diagonal.
+ %
+ %
+ %Usage: retval = sizeD ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(343, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numel(self,varargin)
+ %> int MatType .numel() const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements.
+ %
+ %> int MatType .numel(int i) const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements in slice (cf. MATLAB)
+ %
+ %
+ %Usage: retval = numel (i)
+ %
+ %i is of type int. i is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(344, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size1(self,varargin)
+ %Get the first dimension (i.e. number of rows)
+ %
+ %
+ %Usage: retval = size1 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(345, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size2(self,varargin)
+ %Get the second dimension (i.e. number of columns)
+ %
+ %
+ %Usage: retval = size2 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(346, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dimString(self,varargin)
+ %Get string representation of dimensions. The representation is (nrow x ncol
+ %= numel | size)
+ %
+ %
+ %Usage: retval = dimString ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(347, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size(self,varargin)
+ %> (int,int) MatType .shape() const
+ %------------------------------------------------------------------------
+ %
+ %Get the shape.
+ %
+ %> int MatType .shape(int axis) const
+ %------------------------------------------------------------------------
+ %
+ %Get the size along a particular dimensions.
+ %
+ %
+ %Usage: retval = size (axis)
+ %
+ %axis is of type int. axis is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ out = casadiMEX(348, self, varargin{:});
+ if nargout>1
+ for i=1:length(out)
+ varargout{i} = out(i);
+ end
+ else
+ varargout{1}=out;
+ end
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isempty(self,varargin)
+ %Check if the sparsity is empty, i.e. if one of the dimensions is zero (or
+ %optionally both dimensions)
+ %
+ %
+ %Usage: retval = isempty (both = false)
+ %
+ %both is of type bool. both is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(349, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isdense(self,varargin)
+ %Check if the matrix expression is dense.
+ %
+ %
+ %Usage: retval = isdense ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(350, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isscalar(self,varargin)
+ %Check if the matrix expression is scalar.
+ %
+ %
+ %Usage: retval = isscalar (scalar_and_dense = false)
+ %
+ %scalar_and_dense is of type bool. scalar_and_dense is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(351, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issquare(self,varargin)
+ %Check if the matrix expression is square.
+ %
+ %
+ %Usage: retval = issquare ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(352, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isvector(self,varargin)
+ %Check if the matrix is a row or column vector.
+ %
+ %
+ %Usage: retval = isvector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(353, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isrow(self,varargin)
+ %Check if the matrix is a row vector (i.e. size1()==1)
+ %
+ %
+ %Usage: retval = isrow ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(354, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = iscolumn(self,varargin)
+ %Check if the matrix is a column vector (i.e. size2()==1)
+ %
+ %
+ %Usage: retval = iscolumn ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(355, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istriu(self,varargin)
+ %Check if the matrix is upper triangular.
+ %
+ %
+ %Usage: retval = istriu ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(356, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istril(self,varargin)
+ %Check if the matrix is lower triangular.
+ %
+ %
+ %Usage: retval = istril ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(357, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = row(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = row (el)
+ %
+ %el is of type int. el is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(358, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = colind(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = colind (col)
+ %
+ %col is of type int. col is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(359, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = find(self,varargin)
+ %Get the location of all non-zero elements as they would appear in a Dense
+ %matrix A : DenseMatrix 4 x 3 B : SparseMatrix 4 x 3 , 5 structural non-
+ %zeros.
+ %
+ %k = A.find() A[k] will contain the elements of A that are non-zero in B
+ %
+ %
+ %Usage: retval = find (ind1 = true)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(360, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.GenDMatrix')
+ self = casadi.GenDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(361, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenDMatrix(varargin)
+ self@casadi.GenericMatrixCommon(SwigRef.Null);
+ self@casadi.SpDMatrix(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(365, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(366, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = sym(varargin)
+ %> static MatType MatType .sym(str name, int nrow=1, int ncol=1)
+ %------------------------------------------------------------------------
+ %
+ %Create an nrow-by-ncol symbolic primitive.
+ %
+ %> static MatType MatType .sym(str name, (int,int) rc)
+ %------------------------------------------------------------------------
+ %
+ %Construct a symbolic primitive with given dimensions.
+ %
+ %> MatType MatType .sym(str name, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Create symbolic primitive with a given sparsity pattern.
+ %
+ %> [MatType ] MatType .sym(str name, Sparsity sp, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with with matrices with symbolic primitives of
+ %given sparsity.
+ %
+ %> static[MatType ] MatType .sym(str name, int nrow, int ncol, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with nrow-by-ncol symbolic primitives.
+ %
+ %> [[MatType ] ] MatType .sym(str name, Sparsity sp, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with symbolic primitives
+ %with given sparsity.
+ %
+ %> static[[MatType] ] MatType .sym(str name, int nrow, int ncol, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with nrow-by-ncol
+ %symbolic primitives.
+ %
+ %
+ %Usage: retval = sym (name, nrow, ncol, p, r)
+ %
+ %name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. retval is of type std::vector< std::vector< casadi::Matrix< double >,std::allocator< casadi::Matrix< double > > >,std::allocator< std::vector< casadi::Matrix< double >,std::allocator< casadi::Matrix< double > > > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(362, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = zeros(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %zero.
+ %
+ %
+ %Usage: retval = zeros (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(363, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ones(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %one.
+ %
+ %
+ %Usage: retval = ones (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(364, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenIMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenIMatrix.m
new file mode 100755
index 0000000..96999ef
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenIMatrix.m
@@ -0,0 +1,743 @@
+classdef GenIMatrix < casadi.GenericMatrixCommon & casadi.SpIMatrix
+ %Matrix base class.
+ %
+ %This is a common base class for MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. The class is designed with the idea that
+ %"everything is a matrix", that is, also scalars and vectors. This
+ %philosophy makes it easy to use and to interface in particularly with Python
+ %and Matlab/Octave. The syntax tries to stay as close as possible to the
+ %ublas syntax when it comes to vector/matrix operations. Index starts with
+ %0. Index vec happens as follows: (rr, cc) -> k = rr+cc*size1() Vectors are
+ %column vectors. The storage format is Compressed Column Storage (CCS),
+ %similar to that used for sparse matrices in Matlab, but unlike this format,
+ %we do allow for elements to be structurally non-zero but numerically zero.
+ %The sparsity pattern, which is reference counted and cached, can be accessed
+ %with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: generic_matrix.hpp
+ %Usage: GenIMatrix ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = nnz(self,varargin)
+ %Get the number of (structural) non-zero elements.
+ %
+ %
+ %Usage: retval = nnz ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(313, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeL(self,varargin)
+ %Get the number of non-zeros in the lower triangular half.
+ %
+ %
+ %Usage: retval = sizeL ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(314, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeU(self,varargin)
+ %Get the number of non-zeros in the upper triangular half.
+ %
+ %
+ %Usage: retval = sizeU ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(315, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeD(self,varargin)
+ %Get get the number of non-zeros on the diagonal.
+ %
+ %
+ %Usage: retval = sizeD ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(316, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numel(self,varargin)
+ %> int MatType .numel() const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements.
+ %
+ %> int MatType .numel(int i) const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements in slice (cf. MATLAB)
+ %
+ %
+ %Usage: retval = numel (i)
+ %
+ %i is of type int. i is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(317, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size1(self,varargin)
+ %Get the first dimension (i.e. number of rows)
+ %
+ %
+ %Usage: retval = size1 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(318, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size2(self,varargin)
+ %Get the second dimension (i.e. number of columns)
+ %
+ %
+ %Usage: retval = size2 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(319, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dimString(self,varargin)
+ %Get string representation of dimensions. The representation is (nrow x ncol
+ %= numel | size)
+ %
+ %
+ %Usage: retval = dimString ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(320, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size(self,varargin)
+ %> (int,int) MatType .shape() const
+ %------------------------------------------------------------------------
+ %
+ %Get the shape.
+ %
+ %> int MatType .shape(int axis) const
+ %------------------------------------------------------------------------
+ %
+ %Get the size along a particular dimensions.
+ %
+ %
+ %Usage: retval = size (axis)
+ %
+ %axis is of type int. axis is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ out = casadiMEX(321, self, varargin{:});
+ if nargout>1
+ for i=1:length(out)
+ varargout{i} = out(i);
+ end
+ else
+ varargout{1}=out;
+ end
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isempty(self,varargin)
+ %Check if the sparsity is empty, i.e. if one of the dimensions is zero (or
+ %optionally both dimensions)
+ %
+ %
+ %Usage: retval = isempty (both = false)
+ %
+ %both is of type bool. both is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(322, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isdense(self,varargin)
+ %Check if the matrix expression is dense.
+ %
+ %
+ %Usage: retval = isdense ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(323, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isscalar(self,varargin)
+ %Check if the matrix expression is scalar.
+ %
+ %
+ %Usage: retval = isscalar (scalar_and_dense = false)
+ %
+ %scalar_and_dense is of type bool. scalar_and_dense is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(324, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issquare(self,varargin)
+ %Check if the matrix expression is square.
+ %
+ %
+ %Usage: retval = issquare ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(325, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isvector(self,varargin)
+ %Check if the matrix is a row or column vector.
+ %
+ %
+ %Usage: retval = isvector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(326, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isrow(self,varargin)
+ %Check if the matrix is a row vector (i.e. size1()==1)
+ %
+ %
+ %Usage: retval = isrow ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(327, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = iscolumn(self,varargin)
+ %Check if the matrix is a column vector (i.e. size2()==1)
+ %
+ %
+ %Usage: retval = iscolumn ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(328, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istriu(self,varargin)
+ %Check if the matrix is upper triangular.
+ %
+ %
+ %Usage: retval = istriu ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(329, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istril(self,varargin)
+ %Check if the matrix is lower triangular.
+ %
+ %
+ %Usage: retval = istril ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(330, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = row(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = row (el)
+ %
+ %el is of type int. el is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(331, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = colind(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = colind (col)
+ %
+ %col is of type int. col is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(332, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = find(self,varargin)
+ %Get the location of all non-zero elements as they would appear in a Dense
+ %matrix A : DenseMatrix 4 x 3 B : SparseMatrix 4 x 3 , 5 structural non-
+ %zeros.
+ %
+ %k = A.find() A[k] will contain the elements of A that are non-zero in B
+ %
+ %
+ %Usage: retval = find (ind1 = true)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(333, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.GenIMatrix')
+ self = casadi.GenIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(334, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenIMatrix(varargin)
+ self@casadi.GenericMatrixCommon(SwigRef.Null);
+ self@casadi.SpIMatrix(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(338, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(339, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = sym(varargin)
+ %> static MatType MatType .sym(str name, int nrow=1, int ncol=1)
+ %------------------------------------------------------------------------
+ %
+ %Create an nrow-by-ncol symbolic primitive.
+ %
+ %> static MatType MatType .sym(str name, (int,int) rc)
+ %------------------------------------------------------------------------
+ %
+ %Construct a symbolic primitive with given dimensions.
+ %
+ %> MatType MatType .sym(str name, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Create symbolic primitive with a given sparsity pattern.
+ %
+ %> [MatType ] MatType .sym(str name, Sparsity sp, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with with matrices with symbolic primitives of
+ %given sparsity.
+ %
+ %> static[MatType ] MatType .sym(str name, int nrow, int ncol, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with nrow-by-ncol symbolic primitives.
+ %
+ %> [[MatType ] ] MatType .sym(str name, Sparsity sp, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with symbolic primitives
+ %with given sparsity.
+ %
+ %> static[[MatType] ] MatType .sym(str name, int nrow, int ncol, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with nrow-by-ncol
+ %symbolic primitives.
+ %
+ %
+ %Usage: retval = sym (name, nrow, ncol, p, r)
+ %
+ %name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. retval is of type std::vector< std::vector< casadi::Matrix< int >,std::allocator< casadi::Matrix< int > > >,std::allocator< std::vector< casadi::Matrix< int >,std::allocator< casadi::Matrix< int > > > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(335, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = zeros(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %zero.
+ %
+ %
+ %Usage: retval = zeros (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(336, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ones(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %one.
+ %
+ %
+ %Usage: retval = ones (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(337, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenMX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenMX.m
new file mode 100755
index 0000000..76a44a3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenMX.m
@@ -0,0 +1,743 @@
+classdef GenMX < casadi.GenericMatrixCommon & casadi.SpMX
+ %Matrix base class.
+ %
+ %This is a common base class for MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. The class is designed with the idea that
+ %"everything is a matrix", that is, also scalars and vectors. This
+ %philosophy makes it easy to use and to interface in particularly with Python
+ %and Matlab/Octave. The syntax tries to stay as close as possible to the
+ %ublas syntax when it comes to vector/matrix operations. Index starts with
+ %0. Index vec happens as follows: (rr, cc) -> k = rr+cc*size1() Vectors are
+ %column vectors. The storage format is Compressed Column Storage (CCS),
+ %similar to that used for sparse matrices in Matlab, but unlike this format,
+ %we do allow for elements to be structurally non-zero but numerically zero.
+ %The sparsity pattern, which is reference counted and cached, can be accessed
+ %with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: generic_matrix.hpp
+ %Usage: GenMX ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = nnz(self,varargin)
+ %Get the number of (structural) non-zero elements.
+ %
+ %
+ %Usage: retval = nnz ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(394, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeL(self,varargin)
+ %Get the number of non-zeros in the lower triangular half.
+ %
+ %
+ %Usage: retval = sizeL ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(395, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeU(self,varargin)
+ %Get the number of non-zeros in the upper triangular half.
+ %
+ %
+ %Usage: retval = sizeU ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(396, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeD(self,varargin)
+ %Get get the number of non-zeros on the diagonal.
+ %
+ %
+ %Usage: retval = sizeD ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(397, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numel(self,varargin)
+ %> int MatType .numel() const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements.
+ %
+ %> int MatType .numel(int i) const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements in slice (cf. MATLAB)
+ %
+ %
+ %Usage: retval = numel (i)
+ %
+ %i is of type int. i is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(398, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size1(self,varargin)
+ %Get the first dimension (i.e. number of rows)
+ %
+ %
+ %Usage: retval = size1 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(399, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size2(self,varargin)
+ %Get the second dimension (i.e. number of columns)
+ %
+ %
+ %Usage: retval = size2 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(400, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dimString(self,varargin)
+ %Get string representation of dimensions. The representation is (nrow x ncol
+ %= numel | size)
+ %
+ %
+ %Usage: retval = dimString ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(401, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size(self,varargin)
+ %> (int,int) MatType .shape() const
+ %------------------------------------------------------------------------
+ %
+ %Get the shape.
+ %
+ %> int MatType .shape(int axis) const
+ %------------------------------------------------------------------------
+ %
+ %Get the size along a particular dimensions.
+ %
+ %
+ %Usage: retval = size (axis)
+ %
+ %axis is of type int. axis is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ out = casadiMEX(402, self, varargin{:});
+ if nargout>1
+ for i=1:length(out)
+ varargout{i} = out(i);
+ end
+ else
+ varargout{1}=out;
+ end
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isempty(self,varargin)
+ %Check if the sparsity is empty, i.e. if one of the dimensions is zero (or
+ %optionally both dimensions)
+ %
+ %
+ %Usage: retval = isempty (both = false)
+ %
+ %both is of type bool. both is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(403, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isdense(self,varargin)
+ %Check if the matrix expression is dense.
+ %
+ %
+ %Usage: retval = isdense ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(404, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isscalar(self,varargin)
+ %Check if the matrix expression is scalar.
+ %
+ %
+ %Usage: retval = isscalar (scalar_and_dense = false)
+ %
+ %scalar_and_dense is of type bool. scalar_and_dense is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(405, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issquare(self,varargin)
+ %Check if the matrix expression is square.
+ %
+ %
+ %Usage: retval = issquare ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(406, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isvector(self,varargin)
+ %Check if the matrix is a row or column vector.
+ %
+ %
+ %Usage: retval = isvector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(407, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isrow(self,varargin)
+ %Check if the matrix is a row vector (i.e. size1()==1)
+ %
+ %
+ %Usage: retval = isrow ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(408, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = iscolumn(self,varargin)
+ %Check if the matrix is a column vector (i.e. size2()==1)
+ %
+ %
+ %Usage: retval = iscolumn ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(409, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istriu(self,varargin)
+ %Check if the matrix is upper triangular.
+ %
+ %
+ %Usage: retval = istriu ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(410, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istril(self,varargin)
+ %Check if the matrix is lower triangular.
+ %
+ %
+ %Usage: retval = istril ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(411, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = row(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = row (el)
+ %
+ %el is of type int. el is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(412, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = colind(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = colind (col)
+ %
+ %col is of type int. col is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(413, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = find(self,varargin)
+ %Get the location of all non-zero elements as they would appear in a Dense
+ %matrix A : DenseMatrix 4 x 3 B : SparseMatrix 4 x 3 , 5 structural non-
+ %zeros.
+ %
+ %k = A.find() A[k] will contain the elements of A that are non-zero in B
+ %
+ %
+ %Usage: retval = find (ind1 = true)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(414, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.GenMX')
+ self = casadi.GenMX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(415, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenMX(varargin)
+ self@casadi.GenericMatrixCommon(SwigRef.Null);
+ self@casadi.SpMX(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(419, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(420, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = sym(varargin)
+ %> static MatType MatType .sym(str name, int nrow=1, int ncol=1)
+ %------------------------------------------------------------------------
+ %
+ %Create an nrow-by-ncol symbolic primitive.
+ %
+ %> static MatType MatType .sym(str name, (int,int) rc)
+ %------------------------------------------------------------------------
+ %
+ %Construct a symbolic primitive with given dimensions.
+ %
+ %> MatType MatType .sym(str name, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Create symbolic primitive with a given sparsity pattern.
+ %
+ %> [MatType ] MatType .sym(str name, Sparsity sp, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with with matrices with symbolic primitives of
+ %given sparsity.
+ %
+ %> static[MatType ] MatType .sym(str name, int nrow, int ncol, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with nrow-by-ncol symbolic primitives.
+ %
+ %> [[MatType ] ] MatType .sym(str name, Sparsity sp, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with symbolic primitives
+ %with given sparsity.
+ %
+ %> static[[MatType] ] MatType .sym(str name, int nrow, int ncol, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with nrow-by-ncol
+ %symbolic primitives.
+ %
+ %
+ %Usage: retval = sym (name, nrow, ncol, p, r)
+ %
+ %name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. retval is of type std::vector< std::vector< casadi::MX,std::allocator< casadi::MX > >,std::allocator< std::vector< casadi::MX,std::allocator< casadi::MX > > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(416, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = zeros(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %zero.
+ %
+ %
+ %Usage: retval = zeros (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(417, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ones(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %one.
+ %
+ %
+ %Usage: retval = ones (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(418, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenSX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenSX.m
new file mode 100755
index 0000000..ab51f26
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenSX.m
@@ -0,0 +1,743 @@
+classdef GenSX < casadi.GenericMatrixCommon & casadi.SpSX
+ %Matrix base class.
+ %
+ %This is a common base class for MX and Matrix<>, introducing a uniform
+ %syntax and implementing common functionality using the curiously recurring
+ %template pattern (CRTP) idiom. The class is designed with the idea that
+ %"everything is a matrix", that is, also scalars and vectors. This
+ %philosophy makes it easy to use and to interface in particularly with Python
+ %and Matlab/Octave. The syntax tries to stay as close as possible to the
+ %ublas syntax when it comes to vector/matrix operations. Index starts with
+ %0. Index vec happens as follows: (rr, cc) -> k = rr+cc*size1() Vectors are
+ %column vectors. The storage format is Compressed Column Storage (CCS),
+ %similar to that used for sparse matrices in Matlab, but unlike this format,
+ %we do allow for elements to be structurally non-zero but numerically zero.
+ %The sparsity pattern, which is reference counted and cached, can be accessed
+ %with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: generic_matrix.hpp
+ %Usage: GenSX ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = nnz(self,varargin)
+ %Get the number of (structural) non-zero elements.
+ %
+ %
+ %Usage: retval = nnz ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(367, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeL(self,varargin)
+ %Get the number of non-zeros in the lower triangular half.
+ %
+ %
+ %Usage: retval = sizeL ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(368, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeU(self,varargin)
+ %Get the number of non-zeros in the upper triangular half.
+ %
+ %
+ %Usage: retval = sizeU ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(369, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeD(self,varargin)
+ %Get get the number of non-zeros on the diagonal.
+ %
+ %
+ %Usage: retval = sizeD ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(370, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numel(self,varargin)
+ %> int MatType .numel() const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements.
+ %
+ %> int MatType .numel(int i) const
+ %------------------------------------------------------------------------
+ %
+ %Get the number of elements in slice (cf. MATLAB)
+ %
+ %
+ %Usage: retval = numel (i)
+ %
+ %i is of type int. i is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(371, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size1(self,varargin)
+ %Get the first dimension (i.e. number of rows)
+ %
+ %
+ %Usage: retval = size1 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(372, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size2(self,varargin)
+ %Get the second dimension (i.e. number of columns)
+ %
+ %
+ %Usage: retval = size2 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(373, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dimString(self,varargin)
+ %Get string representation of dimensions. The representation is (nrow x ncol
+ %= numel | size)
+ %
+ %
+ %Usage: retval = dimString ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(374, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size(self,varargin)
+ %> (int,int) MatType .shape() const
+ %------------------------------------------------------------------------
+ %
+ %Get the shape.
+ %
+ %> int MatType .shape(int axis) const
+ %------------------------------------------------------------------------
+ %
+ %Get the size along a particular dimensions.
+ %
+ %
+ %Usage: retval = size (axis)
+ %
+ %axis is of type int. axis is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ out = casadiMEX(375, self, varargin{:});
+ if nargout>1
+ for i=1:length(out)
+ varargout{i} = out(i);
+ end
+ else
+ varargout{1}=out;
+ end
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isempty(self,varargin)
+ %Check if the sparsity is empty, i.e. if one of the dimensions is zero (or
+ %optionally both dimensions)
+ %
+ %
+ %Usage: retval = isempty (both = false)
+ %
+ %both is of type bool. both is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(376, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isdense(self,varargin)
+ %Check if the matrix expression is dense.
+ %
+ %
+ %Usage: retval = isdense ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(377, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isscalar(self,varargin)
+ %Check if the matrix expression is scalar.
+ %
+ %
+ %Usage: retval = isscalar (scalar_and_dense = false)
+ %
+ %scalar_and_dense is of type bool. scalar_and_dense is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(378, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issquare(self,varargin)
+ %Check if the matrix expression is square.
+ %
+ %
+ %Usage: retval = issquare ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(379, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isvector(self,varargin)
+ %Check if the matrix is a row or column vector.
+ %
+ %
+ %Usage: retval = isvector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(380, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isrow(self,varargin)
+ %Check if the matrix is a row vector (i.e. size1()==1)
+ %
+ %
+ %Usage: retval = isrow ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(381, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = iscolumn(self,varargin)
+ %Check if the matrix is a column vector (i.e. size2()==1)
+ %
+ %
+ %Usage: retval = iscolumn ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(382, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istriu(self,varargin)
+ %Check if the matrix is upper triangular.
+ %
+ %
+ %Usage: retval = istriu ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(383, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istril(self,varargin)
+ %Check if the matrix is lower triangular.
+ %
+ %
+ %Usage: retval = istril ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(384, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = row(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = row (el)
+ %
+ %el is of type int. el is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(385, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = colind(self,varargin)
+ %Get the sparsity pattern. See the Sparsity class for details.
+ %
+ %
+ %Usage: retval = colind (col)
+ %
+ %col is of type int. col is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(386, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = find(self,varargin)
+ %Get the location of all non-zero elements as they would appear in a Dense
+ %matrix A : DenseMatrix 4 x 3 B : SparseMatrix 4 x 3 , 5 structural non-
+ %zeros.
+ %
+ %k = A.find() A[k] will contain the elements of A that are non-zero in B
+ %
+ %
+ %Usage: retval = find (ind1 = true)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(387, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.GenSX')
+ self = casadi.GenSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(388, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenSX(varargin)
+ self@casadi.GenericMatrixCommon(SwigRef.Null);
+ self@casadi.SpSX(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(392, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(393, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = sym(varargin)
+ %> static MatType MatType .sym(str name, int nrow=1, int ncol=1)
+ %------------------------------------------------------------------------
+ %
+ %Create an nrow-by-ncol symbolic primitive.
+ %
+ %> static MatType MatType .sym(str name, (int,int) rc)
+ %------------------------------------------------------------------------
+ %
+ %Construct a symbolic primitive with given dimensions.
+ %
+ %> MatType MatType .sym(str name, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Create symbolic primitive with a given sparsity pattern.
+ %
+ %> [MatType ] MatType .sym(str name, Sparsity sp, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with with matrices with symbolic primitives of
+ %given sparsity.
+ %
+ %> static[MatType ] MatType .sym(str name, int nrow, int ncol, int p)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length p with nrow-by-ncol symbolic primitives.
+ %
+ %> [[MatType ] ] MatType .sym(str name, Sparsity sp, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with symbolic primitives
+ %with given sparsity.
+ %
+ %> static[[MatType] ] MatType .sym(str name, int nrow, int ncol, int p, int r)
+ %------------------------------------------------------------------------
+ %
+ %Create a vector of length r of vectors of length p with nrow-by-ncol
+ %symbolic primitives.
+ %
+ %
+ %Usage: retval = sym (name, nrow, ncol, p, r)
+ %
+ %name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. name is of type std::string const &. nrow is of type int. ncol is of type int. p is of type int. r is of type int. retval is of type std::vector< std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >,std::allocator< std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(389, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = zeros(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %zero.
+ %
+ %
+ %Usage: retval = zeros (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(390, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ones(varargin)
+ %Create a dense matrix or a matrix with specified sparsity with all entries
+ %one.
+ %
+ %
+ %Usage: retval = ones (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(391, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericExpressionCommon.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericExpressionCommon.m
new file mode 100755
index 0000000..fefbccd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericExpressionCommon.m
@@ -0,0 +1,1005 @@
+classdef GenericExpressionCommon < SwigRef
+ %Usage: GenericExpressionCommon ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = plus(varargin)
+ %Usage: retval = plus (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(421, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = minus(varargin)
+ %Usage: retval = minus (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(422, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = times(varargin)
+ %Usage: retval = times (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(423, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = rdivide(varargin)
+ %Usage: retval = rdivide (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(424, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ldivide(varargin)
+ %Usage: retval = ldivide (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(425, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = lt(varargin)
+ %Usage: retval = lt (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(426, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = le(varargin)
+ %Usage: retval = le (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(427, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = gt(varargin)
+ %Usage: retval = gt (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(428, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ge(varargin)
+ %Usage: retval = ge (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(429, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eq(varargin)
+ %Usage: retval = eq (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(430, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ne(varargin)
+ %Usage: retval = ne (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(431, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = and(varargin)
+ %Usage: retval = and (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(432, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = or(varargin)
+ %Usage: retval = or (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(433, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = not(varargin)
+ %Usage: retval = not (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(434, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = abs(varargin)
+ %Absolute value.
+ %
+ %
+ %Usage: retval = abs (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(435, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sqrt(varargin)
+ %Square root.
+ %
+ %
+ %Usage: retval = sqrt (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(436, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sin(varargin)
+ %Sine.
+ %
+ %
+ %Usage: retval = sin (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(437, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = cos(varargin)
+ %Cosine.
+ %
+ %
+ %Usage: retval = cos (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(438, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tan(varargin)
+ %Tangent.
+ %
+ %
+ %Usage: retval = tan (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(439, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = atan(varargin)
+ %Arc tangent.
+ %
+ %
+ %Usage: retval = atan (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(440, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = asin(varargin)
+ %Arc sine.
+ %
+ %
+ %Usage: retval = asin (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(441, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = acos(varargin)
+ %Arc cosine.
+ %
+ %
+ %Usage: retval = acos (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(442, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tanh(varargin)
+ %Hyperbolic tangent.
+ %
+ %
+ %Usage: retval = tanh (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(443, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sinh(varargin)
+ %Hyperbolic sine.
+ %
+ %
+ %Usage: retval = sinh (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(444, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = cosh(varargin)
+ %Hyperbolic cosine.
+ %
+ %
+ %Usage: retval = cosh (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(445, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = atanh(varargin)
+ %Inverse hyperbolic tangent.
+ %
+ %
+ %Usage: retval = atanh (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(446, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = asinh(varargin)
+ %Inverse hyperbolic sine.
+ %
+ %
+ %Usage: retval = asinh (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(447, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = acosh(varargin)
+ %Inverse hyperbolic cosine.
+ %
+ %
+ %Usage: retval = acosh (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(448, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = exp(varargin)
+ %Exponential function.
+ %
+ %
+ %Usage: retval = exp (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(449, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = log(varargin)
+ %Natural logarithm.
+ %
+ %
+ %Usage: retval = log (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(450, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = log10(varargin)
+ %Base-10 logarithm.
+ %
+ %
+ %Usage: retval = log10 (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(451, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = floor(varargin)
+ %Round down to nearest integer.
+ %
+ %
+ %Usage: retval = floor (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(452, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ceil(varargin)
+ %Round up to nearest integer.
+ %
+ %
+ %Usage: retval = ceil (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(453, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erf(varargin)
+ %Error function.
+ %
+ %
+ %Usage: retval = erf (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(454, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erfinv(varargin)
+ %Invers error function.
+ %
+ %
+ %Usage: retval = erfinv (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(455, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sign(varargin)
+ %Sine function sign(x) := -1 for x<0 sign(x) := 1 for x>0, sign(0) := 0
+ %sign(NaN) := NaN
+ %
+ %
+ %Usage: retval = sign (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(456, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = power(varargin)
+ %Usage: retval = power (x, n)
+ %
+ %x is of type SX. n is of type SX. x is of type SX. n is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(457, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mod(varargin)
+ %Usage: retval = mod (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(458, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = atan2(varargin)
+ %Two argument arc tangent.
+ %
+ %
+ %Usage: retval = atan2 (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(459, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = min(varargin)
+ %Usage: retval = min (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(460, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = max(varargin)
+ %Usage: retval = max (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(461, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = simplify(varargin)
+ %Simplify an expression.
+ %
+ %
+ %Usage: retval = simplify (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(462, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isEqual(varargin)
+ %Check if two nodes are equivalent up to a given depth. Depth=0 checks if the
+ %expressions are identical, i.e. points to the same node.
+ %
+ %a = x*x b = x*x
+ %
+ %a.isEqual(b, 0) will return false, but a.isEqual(b, 1) will return true
+ %
+ %
+ %Usage: retval = isEqual (x, y, depth = 0)
+ %
+ %x is of type SX. y is of type SX. depth is of type int. x is of type SX. y is of type SX. depth is of type int. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(463, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = iszero(varargin)
+ %Addition.
+ %
+ %
+ %Usage: retval = iszero (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(464, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = copysign(varargin)
+ %Copy sign.
+ %
+ %
+ %Usage: retval = copysign (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(465, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = constpow(varargin)
+ %Elementwise power with const power.
+ %
+ %
+ %Usage: retval = constpow (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(466, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenericExpressionCommon(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(467, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(468, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericMatrixCommon.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericMatrixCommon.m
new file mode 100755
index 0000000..083ff64
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericMatrixCommon.m
@@ -0,0 +1,976 @@
+classdef GenericMatrixCommon < SwigRef
+ %Usage: GenericMatrixCommon ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = mpower(varargin)
+ %Matrix power x^n.
+ %
+ %
+ %Usage: retval = mpower (x, n)
+ %
+ %x is of type SX. n is of type SX. x is of type SX. n is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(272, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mrdivide(varargin)
+ %Matrix divide (cf. slash '/' in MATLAB)
+ %
+ %
+ %Usage: retval = mrdivide (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(273, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mldivide(varargin)
+ %Matrix divide (cf. backslash '\\' in MATLAB)
+ %
+ %
+ %Usage: retval = mldivide (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(274, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = symvar(varargin)
+ %Get all symbols contained in the supplied expression Get all symbols on
+ %which the supplied expression depends.
+ %
+ %See: SXFunction::getFree(), MXFunction::getFree()
+ %
+ %
+ %Usage: retval = symvar (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(275, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = quad_form(varargin)
+ %> MatType quad_form(MatType X, MatType A)
+ %------------------------------------------------------------------------
+ %
+ %Calculate quadratic form X^T A X.
+ %
+ %> MatType quad_form(MatType X)
+ %------------------------------------------------------------------------
+ %
+ %Calculate quadratic form X^T X.
+ %
+ %
+ %Usage: retval = quad_form (X)
+ %
+ %X is of type SX. X is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(276, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sum_square(varargin)
+ %Calculate some of squares: sum_ij X_ij^2.
+ %
+ %
+ %Usage: retval = sum_square (X)
+ %
+ %X is of type SX. X is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(277, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = linspace(varargin)
+ %Matlab's linspace command.
+ %
+ %
+ %Usage: retval = linspace (a, b, nsteps)
+ %
+ %a is of type SX. b is of type SX. nsteps is of type int. a is of type SX. b is of type SX. nsteps is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(278, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = cross(varargin)
+ %Matlab's cross command.
+ %
+ %
+ %Usage: retval = cross (a, b, dim = -1)
+ %
+ %a is of type SX. b is of type SX. dim is of type int. a is of type SX. b is of type SX. dim is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(279, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = det(varargin)
+ %Matrix determinant (experimental)
+ %
+ %
+ %Usage: retval = det (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(280, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inv(varargin)
+ %Matrix inverse (experimental)
+ %
+ %
+ %Usage: retval = inv (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(281, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = trace(varargin)
+ %Matrix trace.
+ %
+ %
+ %Usage: retval = trace (a)
+ %
+ %a is of type SX. a is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(282, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tril2symm(varargin)
+ %Convert a lower triangular matrix to a symmetric one.
+ %
+ %
+ %Usage: retval = tril2symm (a)
+ %
+ %a is of type SX. a is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(283, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triu2symm(varargin)
+ %Convert a upper triangular matrix to a symmetric one.
+ %
+ %
+ %Usage: retval = triu2symm (a)
+ %
+ %a is of type SX. a is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(284, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = norm_F(varargin)
+ %Frobenius norm.
+ %
+ %
+ %Usage: retval = norm_F (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(285, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = norm_2(varargin)
+ %2-norm
+ %
+ %
+ %Usage: retval = norm_2 (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(286, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = norm_1(varargin)
+ %1-norm
+ %
+ %
+ %Usage: retval = norm_1 (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(287, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = norm_inf(varargin)
+ %Infinity-norm.
+ %
+ %
+ %Usage: retval = norm_inf (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(288, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sumCols(varargin)
+ %Return a col-wise summation of elements.
+ %
+ %
+ %Usage: retval = sumCols (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(289, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sumRows(varargin)
+ %Return a row-wise summation of elements.
+ %
+ %
+ %Usage: retval = sumRows (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(290, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inner_prod(varargin)
+ %Inner product of two matrices with x and y matrices of the same dimension.
+ %
+ %
+ %Usage: retval = inner_prod (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(291, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outer_prod(varargin)
+ %Take the outer product of two vectors Equals.
+ %
+ %with x and y vectors
+ %
+ %
+ %Usage: retval = outer_prod (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(292, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nullspace(varargin)
+ %Computes the nullspace of a matrix A.
+ %
+ %Finds Z m-by-(m-n) such that AZ = 0 with A n-by-m with m > n
+ %
+ %Assumes A is full rank
+ %
+ %Inspired by Numerical Methods in Scientific Computing by Ake Bjorck
+ %
+ %
+ %Usage: retval = nullspace (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(293, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = polyval(varargin)
+ %Evaluate a polynomial with coefficients p in x.
+ %
+ %
+ %Usage: retval = polyval (p, x)
+ %
+ %p is of type SX. x is of type SX. p is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(294, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = diag(varargin)
+ %Get the diagonal of a matrix or construct a diagonal When the input is
+ %square, the diagonal elements are returned. If the input is vector- like, a
+ %diagonal matrix is constructed with it.
+ %
+ %
+ %Usage: retval = diag (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(295, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unite(varargin)
+ %Unite two matrices no overlapping sparsity.
+ %
+ %
+ %Usage: retval = unite (A, B)
+ %
+ %A is of type SX. B is of type SX. A is of type SX. B is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(296, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = densify(varargin)
+ %Make the matrix dense if not already.
+ %
+ %
+ %Usage: retval = densify (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(297, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = project(varargin)
+ %Create a new matrix with a given sparsity pattern but with the nonzeros
+ %taken from an existing matrix.
+ %
+ %
+ %Usage: retval = project (A, sp, intersect = false)
+ %
+ %A is of type SX. sp is of type Sparsity. intersect is of type bool. A is of type SX. sp is of type Sparsity. intersect is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(298, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = if_else(varargin)
+ %Branching on MX nodes Ternary operator, "cond ? if_true : if_false".
+ %
+ %
+ %Usage: retval = if_else (cond, if_true, if_false, short_circuit = true)
+ %
+ %cond is of type SX. if_true is of type SX. if_false is of type SX. short_circuit is of type bool. cond is of type SX. if_true is of type SX. if_false is of type SX. short_circuit is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(299, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = conditional(varargin)
+ %Create a switch.
+ %
+ %If the condition
+ %
+ %Parameters:
+ %-----------
+ %
+ %ind: evaluates to the integer k, where 0<=k,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. x_default is of type SX. short_circuit is of type bool. ind is of type SX. x is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. x_default is of type SX. short_circuit is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(300, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dependsOn(varargin)
+ %Check if expression depends on the argument The argument must be symbolic.
+ %
+ %
+ %Usage: retval = dependsOn (f, arg)
+ %
+ %f is of type SX. arg is of type SX. f is of type SX. arg is of type SX. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(301, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = solve(varargin)
+ %> MatType solve(MatType A, MatType b)
+ %------------------------------------------------------------------------
+ %
+ %Solve a system of equations: A*x = b The solve routine works similar to
+ %Matlab's backslash when A is square and nonsingular. The algorithm used is
+ %the following:
+ %
+ %A simple forward or backward substitution if A is upper or lower triangular
+ %
+ %If the linear system is at most 3-by-3, form the inverse via minor expansion
+ %and multiply
+ %
+ %Permute the variables and equations as to get a (structurally) nonzero
+ %diagonal, then perform a QR factorization without pivoting and solve the
+ %factorized system.
+ %
+ %Note 1: If there are entries of the linear system known to be zero, these
+ %will be removed. Elements that are very small, or will evaluate to be zero,
+ %can still cause numerical errors, due to the lack of pivoting (which is not
+ %possible since cannot compare the size of entries)
+ %
+ %Note 2: When permuting the linear system, a BLT (block lower triangular)
+ %transformation is formed. Only the permutation part of this is however used.
+ %An improvement would be to solve block-by-block if there are multiple BLT
+ %blocks.
+ %
+ %> MatType solve(MatType A, MatType b, str lsolver, Dict dict=Dict())
+ %------------------------------------------------------------------------
+ %
+ %Solve a system of equations: A*x = b.
+ %
+ %
+ %Usage: retval = solve (A, b, lsolver, opts = casadi::Dict())
+ %
+ %A is of type SX. b is of type SX. lsolver is of type std::string const &. opts is of type casadi::Dict const &. A is of type SX. b is of type SX. lsolver is of type std::string const &. opts is of type casadi::Dict const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(302, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = pinv(varargin)
+ %> MatType pinv(MatType A)
+ %------------------------------------------------------------------------
+ %
+ %Computes the Moore-Penrose pseudo-inverse.
+ %
+ %If the matrix A is fat (size1size2), mul(pinv(A), A) is unity.
+ %
+ %pinv(A) = (A'A)^(-1) A'
+ %
+ %> MatType pinv(MatType A, str lsolver, Dict dict=Dict())
+ %------------------------------------------------------------------------
+ %
+ %Computes the Moore-Penrose pseudo-inverse.
+ %
+ %If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
+ %matrix A is slender (size2 > const &. xb is of type SX. args is of type std::vector< std::string,std::allocator< std::string > > const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(309, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = repsum(varargin)
+ %Given a repeated matrix, computes the sum of repeated parts.
+ %
+ %
+ %Usage: retval = repsum (A, n, m = 1)
+ %
+ %A is of type SX. n is of type int. m is of type int. A is of type SX. n is of type int. m is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(310, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenericMatrixCommon(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(311, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(312, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericType.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericType.m
new file mode 100755
index 0000000..3f9c92c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/GenericType.m
@@ -0,0 +1,820 @@
+classdef GenericType < casadi.SharedObject
+ %Generic data type, can hold different types such as bool, int, string etc.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: generic_type.hpp
+ %Usage: GenericType ()
+ %
+ methods
+ function varargout = get_description(self,varargin)
+ %Get a description of the object's type.
+ %
+ %
+ %Usage: retval = get_description ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(74, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getType(self,varargin)
+ %Usage: retval = getType ()
+ %
+ %retval is of type casadi::TypeID.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(76, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = can_cast_to(self,varargin)
+ %Usage: retval = can_cast_to (other)
+ %
+ %other is of type GenericType. other is of type GenericType. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(77, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isBool(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isBool ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(78, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isInt(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isInt ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(79, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isDouble(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isDouble ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(80, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isString(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isString ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(81, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isemptyVector(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isemptyVector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(82, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isIntVector(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isIntVector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(83, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isIntVectorVector(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isIntVectorVector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(84, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isDoubleVector(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isDoubleVector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(85, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isStringVector(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isStringVector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(86, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isDict(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isDict ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(87, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isFunction(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isFunction ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(88, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isVoidPointer(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isVoidPointer ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(89, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isCallback(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isCallback ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(90, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isDerivativeGenerator(self,varargin)
+ %Check if a particular type.
+ %
+ %
+ %Usage: retval = isDerivativeGenerator ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(91, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toBool(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toBool ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(92, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toInt(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toInt ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(93, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toDouble(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toDouble ()
+ %
+ %retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(94, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toString(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toString ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(95, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toIntVector(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toIntVector ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(96, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toIntVectorVector(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toIntVectorVector ()
+ %
+ %retval is of type std::vector< std::vector< int,std::allocator< int > >,std::allocator< std::vector< int,std::allocator< int > > > >.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(97, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toDoubleVector(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toDoubleVector ()
+ %
+ %retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(98, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toStringVector(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toStringVector ()
+ %
+ %retval is of type std::vector< std::string,std::allocator< std::string > >.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(99, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toDict(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toDict ()
+ %
+ %retval is of type casadi::GenericType::Dict.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(100, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toFunction(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toFunction ()
+ %
+ %retval is of type Function.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(101, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toVoidPointer(self,varargin)
+ %Convert to a type.
+ %
+ %
+ %Usage: retval = toVoidPointer ()
+ %
+ %retval is of type void *.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(102, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eq(self,varargin)
+ %Usage: retval = eq (op2)
+ %
+ %op2 is of type GenericType. op2 is of type GenericType. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(103, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ne(self,varargin)
+ %Usage: retval = ne (op2)
+ %
+ %op2 is of type GenericType. op2 is of type GenericType. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.GenericType')
+ self = casadi.GenericType(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(104, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = GenericType(varargin)
+ self@casadi.SharedObject(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(105, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(106, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = get_type_description(varargin)
+ %Usage: retval = get_type_description (type)
+ %
+ %type is of type casadi::TypeID. type is of type casadi::TypeID. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(73, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = from_type(varargin)
+ %Usage: retval = from_type (type)
+ %
+ %type is of type casadi::TypeID. type is of type casadi::TypeID. retval is of type GenericType.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(75, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/HomotopyNlpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/HomotopyNlpSolver.m
new file mode 100755
index 0000000..b0160ea
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/HomotopyNlpSolver.m
@@ -0,0 +1,497 @@
+classdef HomotopyNlpSolver < casadi.Function
+ %Base class for Homotopy NLP Solvers.
+ %
+ %Solves the following parametric nonlinear program (NLP):
+ %
+ %::
+ %
+ % min F(x, p, tau)
+ % x
+ %
+ % subject to
+ % LBX <= x <= UBX
+ % LBG <= G(x, p) <= UBG
+ % p == P
+ %
+ % nx: number of decision variables
+ % ng: number of constraints
+ % np: number of parameters
+ %
+ %
+ %
+ %
+ %In a homotopy from tau = 0 to tau = 1.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::NlpSolverInput (NLP_SOLVER_NUM_IN = 8) [nlpSolverIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X0 | x0 | Decision variables, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_P | p | Value of fixed |
+ %| | | parameters (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBX | lbx | Decision variables |
+ %| | | lower bound (nx x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBX | ubx | Decision variables |
+ %| | | upper bound (nx x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBG | lbg | Constraints lower |
+ %| | | bound (ng x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBG | ubg | Constraints upper |
+ %| | | bound (ng x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X0 | lam_x0 | Lagrange multipliers |
+ %| | | for bounds on X, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G0 | lam_g0 | Lagrange multipliers |
+ %| | | for bounds on G, |
+ %| | | initial guess (ng x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::NlpSolverOutput (NLP_SOLVER_NUM_OUT = 6) [nlpSolverOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X | x | Decision variables at |
+ %| | | the optimal solution |
+ %| | | (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_F | f | Cost function value at |
+ %| | | the optimal solution |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_G | g | Constraints function |
+ %| | | at the optimal |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X | lam_x | Lagrange multipliers |
+ %| | | for bounds on X at the |
+ %| | | solution (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G | lam_g | Lagrange multipliers |
+ %| | | for bounds on G at the |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_P | lam_p | Lagrange multipliers |
+ %| | | for bounds on P at the |
+ %| | | solution (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| expand | OT_BOOLEAN | false | Expand the | casadi::Homo |
+ %| | | | NLP function | topyNLPInter |
+ %| | | | in terms of | nal |
+ %| | | | scalar | |
+ %| | | | operations, | |
+ %| | | | i.e. MX->SX | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- simple
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %HomotopyNlpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %simple
+ %------
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| nlp_solver | OT_STRING | GenericType() | The NLP solver |
+ %| | | | to be used by |
+ %| | | | the Homotopy |
+ %| | | | solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_solver_opti | OT_DICT | GenericType() | Options to be |
+ %| ons | | | passed to the |
+ %| | | | Homotopy solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| num_steps | OT_INTEGER | 10 | Take this many |
+ %| | | | steps to go |
+ %| | | | from tau=0 to |
+ %| | | | tau=1. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: homotopy_nlp_solver.hpp
+ %Usage: HomotopyNlpSolver ()
+ %
+ methods
+ function self = HomotopyNlpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1003, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1004, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(999, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1000, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1001, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1002, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IMatrix.m
new file mode 100755
index 0000000..69191b0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IMatrix.m
@@ -0,0 +1,2017 @@
+classdef IMatrix < casadi.MatrixCommon & casadi.ExpIMatrix & casadi.GenIMatrix & casadi.PrintIMatrix
+ %Sparse matrix class. SX and DMatrix are specializations.
+ %
+ %General sparse matrix class that is designed with the idea that "everything
+ %is a matrix", that is, also scalars and vectors. This philosophy makes it
+ %easy to use and to interface in particularly with Python and Matlab/Octave.
+ %Index starts with 0. Index vec happens as follows: (rr, cc) -> k =
+ %rr+cc*size1() Vectors are column vectors. The storage format is Compressed
+ %Column Storage (CCS), similar to that used for sparse matrices in Matlab,
+ %but unlike this format, we do allow for elements to be structurally non-zero
+ %but numerically zero. Matrix is polymorphic with a
+ %std::vector that contain all non-identical-zero elements. The
+ %sparsity can be accessed with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: casadi_types.hpp
+ %Usage: IMatrix ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = sanityCheck(self,varargin)
+ %Check if the dimensions and colind, row vectors are compatible.
+ %
+ %Parameters:
+ %-----------
+ %
+ %complete: set to true to also check elementwise throws an error as possible
+ %result
+ %
+ %
+ %Usage: sanityCheck (complete = false)
+ %
+ %complete is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(506, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = IMatrix(varargin)
+ self@casadi.MatrixCommon(SwigRef.Null);
+ self@casadi.ExpIMatrix(SwigRef.Null);
+ self@casadi.GenIMatrix(SwigRef.Null);
+ self@casadi.PrintIMatrix(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(507, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function varargout = hasNZ(self,varargin)
+ %Returns true if the matrix has a non-zero at location rr, cc.
+ %
+ %
+ %Usage: retval = hasNZ (rr, cc)
+ %
+ %rr is of type int. cc is of type int. rr is of type int. cc is of type int. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(508, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzero(self,varargin)
+ %Returns the truth value of a Matrix.
+ %
+ %
+ %Usage: retval = nonzero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(509, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSlice(self,varargin)
+ %> bool array(DataType) .isSlice(bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Is the Matrix a Slice (only for IMatrix)
+ %
+ %
+ %Usage: retval = isSlice (ind1 = false)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(510, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toSlice(self,varargin)
+ %> Slice array(DataType) .toSlice(bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Convert to Slice (only for IMatrix)
+ %
+ %
+ %Usage: retval = toSlice (ind1 = false)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type Slice.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(511, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = get(self,varargin)
+ %> void array(DataType) .get([double ] output_m) const
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Sparsity sp) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, single argument
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr, Slice cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr, IMatrix cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr, Slice cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr, IMatrix cc) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, two arguments
+ %
+ %
+ %Usage: get (ind1, rr, cc)
+ %
+ %ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(512, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = set(self,varargin)
+ %> void array(DataType) .set(double val)
+ %
+ %> void array(DataType) .set(const double *val, bool tr=false)
+ %
+ %> void array(DataType) .set([double ] val, bool tr=false)
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, single argument
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr, Slice cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr, IMatrix cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr, Slice cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr, IMatrix cc)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, two arguments
+ %
+ %> void array(DataType) .set(array(DataType) val)
+ %------------------------------------------------------------------------
+ %
+ %Set all the entries without changing sparsity pattern.
+ %
+ %
+ %Usage: set (m, ind1, rr, cc)
+ %
+ %m is of type IMatrix. ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(513, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setSym(self,varargin)
+ %Set upper triangular elements.
+ %
+ %
+ %Usage: setSym (val)
+ %
+ %val is of type std::vector< double,std::allocator< double > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(514, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getSym(self,varargin)
+ %Get upper triangular elements.
+ %
+ %
+ %Usage: getSym ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(515, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNZ(self,varargin)
+ %> void array(DataType) .getNZ([double ] output_m) const
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .getNZ(array(DataType) output_m, bool ind1, Slice k) const
+ %
+ %> void array(DataType) .getNZ(array(DataType) output_m, bool ind1, IMatrix k) const
+ %------------------------------------------------------------------------
+ %
+ %Get a set of nonzeros
+ %
+ %
+ %Usage: getNZ (ind1, k)
+ %
+ %ind1 is of type bool. k is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(516, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setNZ(self,varargin)
+ %> void array(DataType) .setNZ(double val)
+ %
+ %> void array(DataType) .setNZ(const double *val)
+ %
+ %> void array(DataType) .setNZ([double ] val)
+ %------------------------------------------------------------------------
+ %
+ %Set the elements numerically.
+ %
+ %> void array(DataType) .setNZ(array(DataType) m, bool ind1, Slice k)
+ %
+ %> void array(DataType) .setNZ(array(DataType) m, bool ind1, IMatrix k)
+ %------------------------------------------------------------------------
+ %
+ %Set a set of nonzeros
+ %
+ %
+ %Usage: setNZ (m, ind1, k)
+ %
+ %m is of type IMatrix. ind1 is of type bool. k is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(517, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = append(self,varargin)
+ %[DEPRECATED] Append a matrix vertically (NOTE: only efficient if vector)
+ %
+ %
+ %Usage: append (y)
+ %
+ %y is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(518, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = appendColumns(self,varargin)
+ %[DEPRECATED] Append a matrix horizontally
+ %
+ %
+ %Usage: appendColumns (y)
+ %
+ %y is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(519, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setZero(self,varargin)
+ %[DEPRECATED] Set all elements to zero
+ %
+ %
+ %Usage: setZero ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(520, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeSparse(self,varargin)
+ %[DEPRECATED: use sparsify instead] Make a matrix sparse by removing
+ %numerical zeros smaller in absolute value than a specified tolerance
+ %
+ %
+ %Usage: makeSparse (tol = 0)
+ %
+ %tol is of type double.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(521, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uplus(self,varargin)
+ %Usage: retval = uplus ()
+ %
+ %retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(522, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uminus(self,varargin)
+ %Usage: retval = uminus ()
+ %
+ %retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(523, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printme(self,varargin)
+ %Usage: retval = printme (y)
+ %
+ %y is of type IMatrix. y is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(529, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = T(self,varargin)
+ %Transpose the matrix.
+ %
+ %
+ %Usage: retval = T ()
+ %
+ %retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(530, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print a description of the object.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(534, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printSplit(self,varargin)
+ %Get strings corresponding to the nonzeros and the interdependencies.
+ %
+ %
+ %Usage: printSplit ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(535, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Print a representation of the object.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(536, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printScalar(self,varargin)
+ %Print scalar.
+ %
+ %
+ %Usage: printScalar (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(537, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printVector(self,varargin)
+ %Print vector-style.
+ %
+ %
+ %Usage: printVector (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(538, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printDense(self,varargin)
+ %Print dense matrix-stype.
+ %
+ %
+ %Usage: printDense (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(539, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printSparse(self,varargin)
+ %Print sparse matrix style.
+ %
+ %
+ %Usage: printSparse (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(540, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = clear(self,varargin)
+ %Usage: clear ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(541, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resize(self,varargin)
+ %Usage: resize (nrow, ncol)
+ %
+ %nrow is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(542, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = reserve(self,varargin)
+ %Usage: reserve (nnz, ncol)
+ %
+ %nnz is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(543, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erase(self,varargin)
+ %> void array(DataType) .erase([int ] rr, [int ] cc, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase rows and/or
+ %columns of a matrix.
+ %
+ %> void array(DataType) .erase([int ] rr, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase elements of
+ %a matrix.
+ %
+ %
+ %Usage: erase (rr, ind1 = false)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(544, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = remove(self,varargin)
+ %Remove columns and rows Remove/delete rows and/or columns of a matrix.
+ %
+ %
+ %Usage: remove (rr, cc)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(545, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlarge(self,varargin)
+ %Enlarge matrix Make the matrix larger by inserting empty rows and columns,
+ %keeping the existing non-zeros.
+ %
+ %
+ %Usage: enlarge (nrow, ncol, rr, cc, ind1 = false)
+ %
+ %nrow is of type int. ncol is of type int. rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(546, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get an owning reference to the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(547, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getElementHash(self,varargin)
+ %Returns a number that is unique for a given symbolic scalar.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = getElementHash ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(552, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isRegular(self,varargin)
+ %Checks if expression does not contain NaN or Inf.
+ %
+ %
+ %Usage: retval = isRegular ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(553, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSmooth(self,varargin)
+ %Check if smooth.
+ %
+ %
+ %Usage: retval = isSmooth ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(554, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isLeaf(self,varargin)
+ %Check if SX is a leaf of the SX graph.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = isLeaf ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(555, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isCommutative(self,varargin)
+ %Check whether a binary SX is commutative.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = isCommutative ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(556, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSymbolic(self,varargin)
+ %Check if symbolic (Dense) Sparse matrices invariable return false.
+ %
+ %
+ %Usage: retval = isSymbolic ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(557, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isValidInput(self,varargin)
+ %Check if matrix can be used to define function inputs. Sparse matrices can
+ %return true if all non-zero elements are symbolic.
+ %
+ %
+ %Usage: retval = isValidInput ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(558, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasDuplicates(self,varargin)
+ %[INTERNAL] Detect
+ %duplicate symbolic expressions If there are symbolic primitives appearing
+ %more than once, the function will return true and the names of the duplicate
+ %expressions will be printed to userOut(). Note: Will mark the
+ %node using SXElement::setTemp. Make sure to call resetInput() after usage.
+ %
+ %
+ %Usage: retval = hasDuplicates ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(559, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resetInput(self,varargin)
+ %[INTERNAL] Reset the
+ %marker for an input expression.
+ %
+ %
+ %Usage: resetInput ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(560, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isConstant(self,varargin)
+ %Check if the matrix is constant (note that false negative answers are
+ %possible)
+ %
+ %
+ %Usage: retval = isConstant ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(561, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isInteger(self,varargin)
+ %Check if the matrix is integer-valued (note that false negative answers are
+ %possible)
+ %
+ %
+ %Usage: retval = isInteger ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(562, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isZero(self,varargin)
+ %check if the matrix is 0 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isZero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(563, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isOne(self,varargin)
+ %check if the matrix is 1 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(564, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isMinusOne(self,varargin)
+ %check if the matrix is -1 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isMinusOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(565, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isIdentity(self,varargin)
+ %check if the matrix is an identity matrix (note that false negative answers
+ %are possible)
+ %
+ %
+ %Usage: retval = isIdentity ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(566, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasNonStructuralZeros(self,varargin)
+ %Check if the matrix has any zero entries which are not structural zeros.
+ %
+ %
+ %Usage: retval = hasNonStructuralZeros ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(567, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getValue(self,varargin)
+ %> double array(DataType) .getValue() const
+ %------------------------------------------------------------------------
+ %
+ %Get double value (only if constant)
+ %
+ %> double array(DataType) .getValue(int k) const
+ %------------------------------------------------------------------------
+ %
+ %Get double value (particular nonzero)
+ %
+ %
+ %Usage: retval = getValue (k)
+ %
+ %k is of type int. k is of type int. retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(568, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setValue(self,varargin)
+ %> void array(DataType) .setValue(double m)
+ %------------------------------------------------------------------------
+ %
+ %Set double value (only if constant)
+ %
+ %> void array(DataType) .setValue(double m, int k)
+ %------------------------------------------------------------------------
+ %
+ %Set double value (particular nonzero)
+ %
+ %
+ %Usage: setValue (m, k)
+ %
+ %m is of type double. k is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(569, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getIntValue(self,varargin)
+ %Get double value (only if integer constant)
+ %
+ %
+ %Usage: retval = getIntValue ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(570, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzeros(self,varargin)
+ %Get all nonzeros.
+ %
+ %
+ %Usage: retval = nonzeros ()
+ %
+ %retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(571, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzeros_int(self,varargin)
+ %Get all nonzeros.
+ %
+ %
+ %Usage: retval = nonzeros_int ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(572, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getName(self,varargin)
+ %Get name (only if symbolic scalar)
+ %
+ %
+ %Usage: retval = getName ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(573, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getDep(self,varargin)
+ %Get expressions of the children of the expression Only defined if symbolic
+ %scalar. Wraps SXElement SXElement::getDep(int ch=0) const.
+ %
+ %
+ %Usage: retval = getDep (ch = 0)
+ %
+ %ch is of type int. ch is of type int. retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(574, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNdeps(self,varargin)
+ %Get the number of dependencies of a binary SXElement Only defined if
+ %symbolic scalar.
+ %
+ %
+ %Usage: retval = getNdeps ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(575, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = assign(self,varargin)
+ %Usage: assign (rhs)
+ %
+ %rhs is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(579, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (rr, cc)
+ %
+ %rr is of type IMatrix. cc is of type IMatrix. rr is of type IMatrix. cc is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(580, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren_asgn(self,varargin)
+ %Usage: paren_asgn (m, rr, cc)
+ %
+ %m is of type IMatrix. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(581, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = brace(self,varargin)
+ %Usage: retval = brace (rr)
+ %
+ %rr is of type IMatrix. rr is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(582, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setbrace(self,varargin)
+ %Usage: setbrace (m, rr)
+ %
+ %m is of type IMatrix. rr is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(583, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = end(self,varargin)
+ %Usage: retval = end (i, n)
+ %
+ %i is of type int. n is of type int. i is of type int. n is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(584, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ctranspose(self,varargin)
+ %Usage: retval = ctranspose ()
+ %
+ %retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IMatrix')
+ self = casadi.IMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(585, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(586, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = binary(varargin)
+ %[INTERNAL] Create nodes by
+ %their ID.
+ %
+ %
+ %Usage: retval = binary (op, x, y)
+ %
+ %op is of type int. x is of type IMatrix. y is of type IMatrix. op is of type int. x is of type IMatrix. y is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(524, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unary(varargin)
+ %[INTERNAL] Create nodes by
+ %their ID.
+ %
+ %
+ %Usage: retval = unary (op, x)
+ %
+ %op is of type int. x is of type IMatrix. op is of type int. x is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(525, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = scalar_matrix(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = scalar_matrix (op, x, y)
+ %
+ %op is of type int. x is of type IMatrix. y is of type IMatrix. op is of type int. x is of type IMatrix. y is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(526, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = matrix_scalar(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = matrix_scalar (op, x, y)
+ %
+ %op is of type int. x is of type IMatrix. y is of type IMatrix. op is of type int. x is of type IMatrix. y is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(527, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = matrix_matrix(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = matrix_matrix (op, x, y)
+ %
+ %op is of type int. x is of type IMatrix. y is of type IMatrix. op is of type int. x is of type IMatrix. y is of type IMatrix. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(528, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setEqualityCheckingDepth(varargin)
+ %Usage: setEqualityCheckingDepth (eq_depth = 1)
+ %
+ %eq_depth is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(531, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getEqualityCheckingDepth(varargin)
+ %Usage: retval = getEqualityCheckingDepth ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(532, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = className(varargin)
+ %Usage: retval = className ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(533, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triplet(varargin)
+ %Usage: retval = triplet (row, col, d, rc)
+ %
+ %row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. d is of type IMatrix. rc is of type std::pair< int,int > const &. row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. d is of type IMatrix. rc is of type std::pair< int,int > const &. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(548, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inf(varargin)
+ %create a matrix with all inf
+ %
+ %
+ %Usage: retval = inf (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(549, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nan(varargin)
+ %create a matrix with all nan
+ %
+ %
+ %Usage: retval = nan (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(550, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eye(varargin)
+ %Usage: retval = eye (ncol)
+ %
+ %ncol is of type int. ncol is of type int. retval is of type IMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(551, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setPrecision(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setPrecision (precision)
+ %
+ %precision is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(576, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setWidth(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setWidth (width)
+ %
+ %width is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(577, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setScientific(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setScientific (scientific)
+ %
+ %scientific is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(578, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/INPUT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/INPUT.m
new file mode 100755
index 0000000..de390af
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/INPUT.m
@@ -0,0 +1,7 @@
+function v = INPUT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 159);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/INTERNAL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/INTERNAL.m
new file mode 100755
index 0000000..f62254f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/INTERNAL.m
@@ -0,0 +1,7 @@
+function v = INTERNAL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 161);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IOInterfaceFunction.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IOInterfaceFunction.m
new file mode 100755
index 0000000..61c6e35
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IOInterfaceFunction.m
@@ -0,0 +1,161 @@
+classdef IOInterfaceFunction < SwigRef
+ %Usage: IOInterfaceFunction ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getInput(self,varargin)
+ %Usage: retval = getInput (iname)
+ %
+ %iname is of type std::string const &. iname is of type std::string const &. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IOInterfaceFunction')
+ self = casadi.IOInterfaceFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(823, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOutput(self,varargin)
+ %Usage: retval = getOutput (oname)
+ %
+ %oname is of type std::string const &. oname is of type std::string const &. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.IOInterfaceFunction')
+ self = casadi.IOInterfaceFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(824, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setInput(self,varargin)
+ %Usage: setInput (val, iname)
+ %
+ %val is of type DMatrix. iname is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(825, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOutput(self,varargin)
+ %Usage: setOutput (val, oname)
+ %
+ %val is of type DMatrix. oname is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(826, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setInputNZ(self,varargin)
+ %Usage: setInputNZ (val, iname)
+ %
+ %val is of type DMatrix. iname is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(827, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOutputNZ(self,varargin)
+ %Usage: setOutputNZ (val, oname)
+ %
+ %val is of type DMatrix. oname is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(828, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = IOInterfaceFunction(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(829, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(830, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IOScheme.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IOScheme.m
new file mode 100755
index 0000000..17e5f30
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IOScheme.m
@@ -0,0 +1,19 @@
+function varargout = IOScheme(varargin)
+ %Usage: retval = IOScheme (arg_s0, arg_s1 = "", arg_s2 = "", arg_s3 = "", arg_s4 = "", arg_s5 = "", arg_s6 = "", arg_s7 = "", arg_s8 = "", arg_s9 = "", arg_s10 = "", arg_s11 = "", arg_s12 = "", arg_s13 = "", arg_s14 = "", arg_s15 = "", arg_s16 = "", arg_s17 = "", arg_s18 = "", arg_s19 = "")
+ %
+ %arg_s0 is of type std::string const &. arg_s1 is of type std::string const &. arg_s2 is of type std::string const &. arg_s3 is of type std::string const &. arg_s4 is of type std::string const &. arg_s5 is of type std::string const &. arg_s6 is of type std::string const &. arg_s7 is of type std::string const &. arg_s8 is of type std::string const &. arg_s9 is of type std::string const &. arg_s10 is of type std::string const &. arg_s11 is of type std::string const &. arg_s12 is of type std::string const &. arg_s13 is of type std::string const &. arg_s14 is of type std::string const &. arg_s15 is of type std::string const &. arg_s16 is of type std::string const &. arg_s17 is of type std::string const &. arg_s18 is of type std::string const &. arg_s19 is of type std::string const &. arg_s0 is of type std::string const &. arg_s1 is of type std::string const &. arg_s2 is of type std::string const &. arg_s3 is of type std::string const &. arg_s4 is of type std::string const &. arg_s5 is of type std::string const &. arg_s6 is of type std::string const &. arg_s7 is of type std::string const &. arg_s8 is of type std::string const &. arg_s9 is of type std::string const &. arg_s10 is of type std::string const &. arg_s11 is of type std::string const &. arg_s12 is of type std::string const &. arg_s13 is of type std::string const &. arg_s14 is of type std::string const &. arg_s15 is of type std::string const &. arg_s16 is of type std::string const &. arg_s17 is of type std::string const &. arg_s18 is of type std::string const &. arg_s19 is of type std::string const &. retval is of type std::vector< std::string,std::allocator< std::string > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(831,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_DMATRIX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_DMATRIX.m
new file mode 100755
index 0000000..dab6542
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_DMATRIX.m
@@ -0,0 +1,7 @@
+function v = IS_DMATRIX()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 148);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_GLOBAL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_GLOBAL.m
new file mode 100755
index 0000000..afdde3c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_GLOBAL.m
@@ -0,0 +1,7 @@
+function v = IS_GLOBAL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 145);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_IMATRIX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_IMATRIX.m
new file mode 100755
index 0000000..d666603
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_IMATRIX.m
@@ -0,0 +1,7 @@
+function v = IS_IMATRIX()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 149);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_MEMBER.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_MEMBER.m
new file mode 100755
index 0000000..71239f4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_MEMBER.m
@@ -0,0 +1,7 @@
+function v = IS_MEMBER()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 146);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_MX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_MX.m
new file mode 100755
index 0000000..23983fc
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_MX.m
@@ -0,0 +1,7 @@
+function v = IS_MX()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 151);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_SPARSITY.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_SPARSITY.m
new file mode 100755
index 0000000..bd9df7d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_SPARSITY.m
@@ -0,0 +1,7 @@
+function v = IS_SPARSITY()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 147);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_SX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_SX.m
new file mode 100755
index 0000000..5175a27
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IS_SX.m
@@ -0,0 +1,7 @@
+function v = IS_SX()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 150);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ImplicitFunction.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ImplicitFunction.m
new file mode 100755
index 0000000..7e76c54
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/ImplicitFunction.m
@@ -0,0 +1,688 @@
+classdef ImplicitFunction < casadi.Function
+ %Abstract base class for the implicit function classes.
+ %
+ %Mathematically, the equation:
+ %
+ %F(z, x1, x2, ..., xn) == 0
+ %
+ %where d_F/dz is invertible, implicitly defines the equation:
+ %
+ %z := G(x1, x2, ..., xn)
+ %
+ %In CasADi, F is a Function. The first input presents the variables that need
+ %to be solved for. The first output is the residual that needs to attain
+ %zero. Optional remaining outputs can be supplied; they are output
+ %expressions.
+ %
+ %In pseudo-code, we can write:
+ %
+ %G* = ImplicitFunction('solver',F)
+ %
+ %Here, G* is a Function with one extra input over the pure mathematical G:
+ %
+ %z := G*(z0, x1, x2, ..., xn)
+ %
+ %The first input to the ImplicitFunction is the intial guess for z.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| constraints | OT_INTEGERVE | GenericType( | Constrain | casadi::Impl |
+ %| | CTOR | ) | the | icitFunction |
+ %| | | | unknowns. 0 | Internal |
+ %| | | | (default): | |
+ %| | | | no | |
+ %| | | | constraint | |
+ %| | | | on ui, 1: ui | |
+ %| | | | >= 0.0, -1: | |
+ %| | | | ui <= 0.0, | |
+ %| | | | 2: ui > 0.0, | |
+ %| | | | -2: ui < | |
+ %| | | | 0.0. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| implicit_inp | OT_INTEGER | 0 | Index of the | casadi::Impl |
+ %| ut | | | input that | icitFunction |
+ %| | | | corresponds | Internal |
+ %| | | | to the | |
+ %| | | | actual root- | |
+ %| | | | finding | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| implicit_out | OT_INTEGER | 0 | Index of the | casadi::Impl |
+ %| put | | | output that | icitFunction |
+ %| | | | corresponds | Internal |
+ %| | | | to the | |
+ %| | | | actual root- | |
+ %| | | | finding | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jacobian_fun | OT_FUNCTION | GenericType( | Function | casadi::Impl |
+ %| ction | | ) | object for | icitFunction |
+ %| | | | calculating | Internal |
+ %| | | | the Jacobian | |
+ %| | | | (autogenerat | |
+ %| | | | ed by | |
+ %| | | | default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| linear_solve | OT_STRING | "csparse" | User-defined | casadi::Impl |
+ %| r | | | linear | icitFunction |
+ %| | | | solver | Internal |
+ %| | | | class. | |
+ %| | | | Needed for s | |
+ %| | | | ensitivities | |
+ %| | | | . | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| linear_solve | OT_FUNCTION | GenericType( | Function | casadi::Impl |
+ %| r_function | | ) | object for | icitFunction |
+ %| | | | solving the | Internal |
+ %| | | | linearized | |
+ %| | | | problem (aut | |
+ %| | | | ogenerated | |
+ %| | | | by default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| linear_solve | OT_DICT | GenericType( | Options to | casadi::Impl |
+ %| r_options | | ) | be passed to | icitFunction |
+ %| | | | the linear | Internal |
+ %| | | | solver. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- kinsol
+ %
+ %- nlp
+ %
+ %- newton
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %ImplicitFunction.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %kinsol
+ %------
+ %
+ %
+ %
+ %KINSOL interface from the Sundials suite
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| abstol | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| disable_interna | OT_BOOLEAN | false | Disable KINSOL |
+ %| l_warnings | | | internal |
+ %| | | | warning |
+ %| | | | messages |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| exact_jacobian | OT_BOOLEAN | true | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| f_scale | OT_REALVECTOR | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| iterative_solve | OT_STRING | "gmres" | gmres|bcgstab|t |
+ %| r | | | fqmr |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_t | OT_STRING | "dense" | dense|banded|it |
+ %| ype | | | erative|user_de |
+ %| | | | fined |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lower_bandwidth | OT_INTEGER | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter | OT_INTEGER | 0 | Maximum number |
+ %| | | | of Newton |
+ %| | | | iterations. |
+ %| | | | Putting 0 sets |
+ %| | | | the default |
+ %| | | | value of |
+ %| | | | KinSol. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_krylov | OT_INTEGER | 0 | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pretype | OT_STRING | "none" | (none|left|righ |
+ %| | | | t|both) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| strategy | OT_STRING | "none" | Globalization |
+ %| | | | strategy (none| |
+ %| | | | linesearch) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| u_scale | OT_REALVECTOR | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| upper_bandwidth | OT_INTEGER | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| use_preconditio | OT_BOOLEAN | false | precondition an |
+ %| ner | | | iterative |
+ %| | | | solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-----------+
+ %| Id |
+ %+===========+
+ %| eval_djac |
+ %+-----------+
+ %| eval_f |
+ %+-----------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %nlp
+ %---
+ %
+ %
+ %
+ %Use an NlpSolver as ImplicitFunction solver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+--------------+
+ %| Id |
+ %+==============+
+ %| solver_stats |
+ %+--------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %newton
+ %------
+ %
+ %
+ %
+ %Implements simple newton iterations to solve an implicit function.
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| abstol | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion |
+ %| | | | tolerance on |
+ %| | | | max(|F|) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| abstolStep | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion |
+ %| | | | tolerance on |
+ %| | | | step size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter | OT_INTEGER | 1000 | Maximum number |
+ %| | | | of Newton |
+ %| | | | iterations to |
+ %| | | | perform before |
+ %| | | | returning. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_iteration | OT_BOOLEAN | false | Print |
+ %| | | | information |
+ %| | | | about each |
+ %| | | | iteration |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+----------+
+ %| Id |
+ %+==========+
+ %| F |
+ %+----------+
+ %| J |
+ %+----------+
+ %| normF |
+ %+----------+
+ %| step |
+ %+----------+
+ %| stepsize |
+ %+----------+
+ %
+ %>List of available stats
+ %
+ %+---------------+
+ %| Id |
+ %+===============+
+ %| iter |
+ %+---------------+
+ %| return_status |
+ %+---------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: implicit_function.hpp
+ %Usage: ImplicitFunction ()
+ %
+ methods
+ function varargout = getF(self,varargin)
+ %Access F.
+ %
+ %
+ %Usage: retval = getF ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(956, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getJac(self,varargin)
+ %Access Jacobian.
+ %
+ %
+ %Usage: retval = getJac ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(957, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getLinsol(self,varargin)
+ %Access linear solver.
+ %
+ %
+ %Usage: retval = getLinsol ()
+ %
+ %retval is of type LinearSolver.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(958, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = ImplicitFunction(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(959, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(960, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(952, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(953, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(954, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(955, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Integrator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Integrator.m
new file mode 100755
index 0000000..7f00f91
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Integrator.m
@@ -0,0 +1,1467 @@
+classdef Integrator < casadi.Function
+ %Base class for integrators.
+ %
+ %Integrator abstract base class
+ %
+ %Solves an initial value problem (IVP) coupled to a terminal value problem
+ %with differential equation given as an implicit ODE coupled to an algebraic
+ %equation and a set of quadratures:
+ %
+ %::
+ %
+ % Initial conditions at t=t0
+ % x(t0) = x0
+ % q(t0) = 0
+ %
+ % Forward integration from t=t0 to t=tf
+ % der(x) = function(x, z, p, t) Forward ODE
+ % 0 = fz(x, z, p, t) Forward algebraic equations
+ % der(q) = fq(x, z, p, t) Forward quadratures
+ %
+ % Terminal conditions at t=tf
+ % rx(tf) = rx0
+ % rq(tf) = 0
+ %
+ % Backward integration from t=tf to t=t0
+ % der(rx) = gx(rx, rz, rp, x, z, p, t) Backward ODE
+ % 0 = gz(rx, rz, rp, x, z, p, t) Backward algebraic equations
+ % der(rq) = gq(rx, rz, rp, x, z, p, t) Backward quadratures
+ %
+ % where we assume that both the forward and backwards integrations are index-1
+ % (i.e. dfz/dz, dgz/drz are invertible) and furthermore that
+ % gx, gz and gq have a linear dependency on rx, rz and rp.
+ %
+ %
+ %
+ %The Integrator class provides some additional functionality, such as getting
+ %the value of the state and/or sensitivities at certain time points.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 6) [integratorIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| INTEGRATOR_X0 | x0 | Differential state at |
+ %| | | the initial time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_P | p | Parameters . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_Z0 | z0 | Initial guess for the |
+ %| | | algebraic variable . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RX0 | rx0 | Backward differential |
+ %| | | state at the final |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RP | rp | Backward parameter |
+ %| | | vector . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RZ0 | rz0 | Initial guess for the |
+ %| | | backwards algebraic |
+ %| | | variable . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::IntegratorOutput (INTEGRATOR_NUM_OUT = 6) [integratorOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| INTEGRATOR_XF | xf | Differential state at |
+ %| | | the final time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_QF | qf | Quadrature state at |
+ %| | | the final time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_ZF | zf | Algebraic variable at |
+ %| | | the final time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RXF | rxf | Backward differential |
+ %| | | state at the initial |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RQF | rqf | Backward quadrature |
+ %| | | state at the initial |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RZF | rzf | Backward algebraic |
+ %| | | variable at the |
+ %| | | initial time . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| augmented_op | OT_DICT | GenericType( | Options to | casadi::Inte |
+ %| tions | | ) | be passed | gratorIntern |
+ %| | | | down to the | al |
+ %| | | | augmented | |
+ %| | | | integrator, | |
+ %| | | | if one is | |
+ %| | | | constructed. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| expand_augme | OT_BOOLEAN | true | If DAE | casadi::Inte |
+ %| nted | | | callback | gratorIntern |
+ %| | | | functions | al |
+ %| | | | are | |
+ %| | | | SXFunction , | |
+ %| | | | have | |
+ %| | | | augmented | |
+ %| | | | DAE callback | |
+ %| | | | function | |
+ %| | | | also be | |
+ %| | | | SXFunction . | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| print_stats | OT_BOOLEAN | false | Print out | casadi::Inte |
+ %| | | | statistics | gratorIntern |
+ %| | | | after | al |
+ %| | | | integration | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| t0 | OT_REAL | 0 | Beginning of | casadi::Inte |
+ %| | | | the time | gratorIntern |
+ %| | | | horizon | al |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| tf | OT_REAL | 1 | End of the | casadi::Inte |
+ %| | | | time horizon | gratorIntern |
+ %| | | | | al |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- cvodes
+ %
+ %- idas
+ %
+ %- collocation
+ %
+ %- oldcollocation
+ %
+ %- rk
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %Integrator.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %cvodes
+ %------
+ %
+ %
+ %
+ %Interface to CVodes from the Sundials suite.
+ %
+ %A call to evaluate will integrate to the end.
+ %
+ %You can retrieve the entire state trajectory as follows, after the evaluate
+ %call: Call reset. Then call integrate(t_i) and getOuput for a series of
+ %times t_i.
+ %
+ %Note: depending on the dimension and structure of your problem, you may
+ %experience a dramatic speed-up by using a sparse linear solver:
+ %
+ %
+ %
+ %::
+ %
+ % intg.setOption("linear_solver","csparse")
+ % intg.setOption("linear_solver_type","user_defined")
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| abstol | OT_REAL | 0.000 | Absolute |
+ %| | | | tolerence for |
+ %| | | | the IVP |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| abstolB | OT_REAL | GenericType() | Absolute |
+ %| | | | tolerence for |
+ %| | | | the adjoint |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to abstol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| disable_interna | OT_BOOLEAN | false | Disable CVodes |
+ %| l_warnings | | | internal |
+ %| | | | warning |
+ %| | | | messages |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| exact_jacobian | OT_BOOLEAN | true | Use exact |
+ %| | | | Jacobian |
+ %| | | | information for |
+ %| | | | the forward |
+ %| | | | integration |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| exact_jacobianB | OT_BOOLEAN | GenericType() | Use exact |
+ %| | | | Jacobian |
+ %| | | | information for |
+ %| | | | the backward |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to |
+ %| | | | exact_jacobian] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| finite_differen | OT_BOOLEAN | false | Use finite |
+ %| ce_fsens | | | differences to |
+ %| | | | approximate the |
+ %| | | | forward |
+ %| | | | sensitivity |
+ %| | | | equations (if |
+ %| | | | AD is not |
+ %| | | | available) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_abstol | OT_REAL | GenericType() | Absolute |
+ %| | | | tolerence for |
+ %| | | | the forward |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to abstol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_all_at_on | OT_BOOLEAN | true | Calculate all |
+ %| ce | | | right hand |
+ %| | | | sides of the |
+ %| | | | sensitivity |
+ %| | | | equations at |
+ %| | | | once |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_err_con | OT_BOOLEAN | true | include the |
+ %| | | | forward |
+ %| | | | sensitivities |
+ %| | | | in all error |
+ %| | | | controls |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_reltol | OT_REAL | GenericType() | Relative |
+ %| | | | tolerence for |
+ %| | | | the forward |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to reltol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_scaling_f | OT_REALVECTOR | GenericType() | Scaling factor |
+ %| actors | | | for the |
+ %| | | | components if |
+ %| | | | finite |
+ %| | | | differences is |
+ %| | | | used |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_sensitivi | OT_INTEGERVECTO | GenericType() | Specifies which |
+ %| y_parameters | R | | components will |
+ %| | | | be used when |
+ %| | | | estimating the |
+ %| | | | sensitivity |
+ %| | | | equations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| interpolation_t | OT_STRING | "hermite" | Type of |
+ %| ype | | | interpolation |
+ %| | | | for the adjoint |
+ %| | | | sensitivities ( |
+ %| | | | hermite|polynom |
+ %| | | | ial) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| iterative_solve | OT_STRING | "gmres" | (gmres|bcgstab| |
+ %| r | | | tfqmr) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| iterative_solve | OT_STRING | GenericType() | (gmres|bcgstab| |
+ %| rB | | | tfqmr) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_multiste | OT_STRING | "bdf" | Integrator |
+ %| p_method | | | scheme |
+ %| | | | (bdf|adams) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver | OT_STRING | GenericType() | A custom linear |
+ %| | | | solver creator |
+ %| | | | function |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solverB | OT_STRING | GenericType() | A custom linear |
+ %| | | | solver creator |
+ %| | | | function for |
+ %| | | | backwards |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to |
+ %| | | | linear_solver] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptions | | | passed to the |
+ %| | | | linear solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptionsB | | | passed to the |
+ %| | | | linear solver |
+ %| | | | for backwards |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to linear_solve |
+ %| | | | r_options] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_t | OT_STRING | "dense" | (user_defined|d |
+ %| ype | | | ense|banded|ite |
+ %| | | | rative) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_t | OT_STRING | GenericType() | (user_defined|d |
+ %| ypeB | | | ense|banded|ite |
+ %| | | | rative) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lower_bandwidth | OT_INTEGER | GenericType() | Lower band- |
+ %| | | | width of banded |
+ %| | | | Jacobian |
+ %| | | | (estimations) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lower_bandwidth | OT_INTEGER | GenericType() | lower band- |
+ %| B | | | width of banded |
+ %| | | | jacobians for |
+ %| | | | backward |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to lower_bandwi |
+ %| | | | dth] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_krylov | OT_INTEGER | 10 | Maximum Krylov |
+ %| | | | subspace size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_krylovB | OT_INTEGER | GenericType() | Maximum krylov |
+ %| | | | subspace size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_multistep_o | OT_INTEGER | 5 | |
+ %| rder | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_num_steps | OT_INTEGER | 10000 | Maximum number |
+ %| | | | of integrator |
+ %| | | | steps |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nonlinear_solve | OT_STRING | "newton" | (newton|functio |
+ %| r_iteration | | | nal) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pretype | OT_STRING | "none" | (none|left|righ |
+ %| | | | t|both) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pretypeB | OT_STRING | GenericType() | (none|left|righ |
+ %| | | | t|both) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quad_err_con | OT_BOOLEAN | false | Should the |
+ %| | | | quadratures |
+ %| | | | affect the step |
+ %| | | | size control |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reltol | OT_REAL | 0.000 | Relative |
+ %| | | | tolerence for |
+ %| | | | the IVP |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reltolB | OT_REAL | GenericType() | Relative |
+ %| | | | tolerence for |
+ %| | | | the adjoint |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to reltol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| sensitivity_met | OT_STRING | "simultaneous" | (simultaneous|s |
+ %| hod | | | taggered) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| steps_per_check | OT_INTEGER | 20 | Number of steps |
+ %| point | | | between two |
+ %| | | | consecutive |
+ %| | | | checkpoints |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| stop_at_end | OT_BOOLEAN | true | Stop the |
+ %| | | | integrator at |
+ %| | | | the end of the |
+ %| | | | interval |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| upper_bandwidth | OT_INTEGER | GenericType() | Upper band- |
+ %| | | | width of banded |
+ %| | | | Jacobian |
+ %| | | | (estimations) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| upper_bandwidth | OT_INTEGER | GenericType() | Upper band- |
+ %| B | | | width of banded |
+ %| | | | jacobians for |
+ %| | | | backward |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to upper_bandwi |
+ %| | | | dth] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| use_preconditio | OT_BOOLEAN | false | Precondition an |
+ %| ner | | | iterative |
+ %| | | | solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| use_preconditio | OT_BOOLEAN | GenericType() | Precondition an |
+ %| nerB | | | iterative |
+ %| | | | solver for the |
+ %| | | | backwards |
+ %| | | | problem |
+ %| | | | [default: equal |
+ %| | | | to use_precondi |
+ %| | | | tioner] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+---------+
+ %| Id |
+ %+=========+
+ %| djacB |
+ %+---------+
+ %| psetupB |
+ %+---------+
+ %| res |
+ %+---------+
+ %| resB |
+ %+---------+
+ %| resQB |
+ %+---------+
+ %| reset |
+ %+---------+
+ %
+ %>List of available stats
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| nlinsetups |
+ %+-------------+
+ %| nlinsetupsB |
+ %+-------------+
+ %| nsteps |
+ %+-------------+
+ %| nstepsB |
+ %+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %idas
+ %----
+ %
+ %
+ %
+ %Interface to IDAS from the Sundials suite.
+ %
+ %Note: depending on the dimension and structure of your problem, you may
+ %experience a dramatic speed-up by using a sparse linear solver:
+ %
+ %
+ %
+ %::
+ %
+ % intg.setOption("linear_solver","csparse")
+ % intg.setOption("linear_solver_type","user_defined")
+ %
+ %
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| abstol | OT_REAL | 0.000 | Absolute |
+ %| | | | tolerence for |
+ %| | | | the IVP |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| abstolB | OT_REAL | GenericType() | Absolute |
+ %| | | | tolerence for |
+ %| | | | the adjoint |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to abstol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| abstolv | OT_REALVECTOR | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| calc_ic | OT_BOOLEAN | true | Use IDACalcIC |
+ %| | | | to get |
+ %| | | | consistent |
+ %| | | | initial |
+ %| | | | conditions. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| calc_icB | OT_BOOLEAN | GenericType() | Use IDACalcIC |
+ %| | | | to get |
+ %| | | | consistent |
+ %| | | | initial |
+ %| | | | conditions for |
+ %| | | | backwards |
+ %| | | | system |
+ %| | | | [default: equal |
+ %| | | | to calc_ic]. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| cj_scaling | OT_BOOLEAN | false | IDAS scaling on |
+ %| | | | cj for the |
+ %| | | | user-defined |
+ %| | | | linear solver |
+ %| | | | module |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| disable_interna | OT_BOOLEAN | false | Disable IDAS |
+ %| l_warnings | | | internal |
+ %| | | | warning |
+ %| | | | messages |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| exact_jacobian | OT_BOOLEAN | true | Use exact |
+ %| | | | Jacobian |
+ %| | | | information for |
+ %| | | | the forward |
+ %| | | | integration |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| exact_jacobianB | OT_BOOLEAN | GenericType() | Use exact |
+ %| | | | Jacobian |
+ %| | | | information for |
+ %| | | | the backward |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to |
+ %| | | | exact_jacobian] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| extra_fsens_cal | OT_BOOLEAN | false | Call calc ic an |
+ %| c_ic | | | extra time, |
+ %| | | | with fsens=0 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| finite_differen | OT_BOOLEAN | false | Use finite |
+ %| ce_fsens | | | differences to |
+ %| | | | approximate the |
+ %| | | | forward |
+ %| | | | sensitivity |
+ %| | | | equations (if |
+ %| | | | AD is not |
+ %| | | | available) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| first_time | OT_REAL | GenericType() | First requested |
+ %| | | | time as a |
+ %| | | | fraction of the |
+ %| | | | time interval |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_abstol | OT_REAL | GenericType() | Absolute |
+ %| | | | tolerence for |
+ %| | | | the forward |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to abstol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_abstolv | OT_REALVECTOR | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_err_con | OT_BOOLEAN | true | include the |
+ %| | | | forward |
+ %| | | | sensitivities |
+ %| | | | in all error |
+ %| | | | controls |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_reltol | OT_REAL | GenericType() | Relative |
+ %| | | | tolerence for |
+ %| | | | the forward |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to reltol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_scaling_f | OT_REALVECTOR | GenericType() | Scaling factor |
+ %| actors | | | for the |
+ %| | | | components if |
+ %| | | | finite |
+ %| | | | differences is |
+ %| | | | used |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fsens_sensitivi | OT_INTEGERVECTO | GenericType() | Specifies which |
+ %| y_parameters | R | | components will |
+ %| | | | be used when |
+ %| | | | estimating the |
+ %| | | | sensitivity |
+ %| | | | equations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| init_xdot | OT_REALVECTOR | GenericType() | Initial values |
+ %| | | | for the state |
+ %| | | | derivatives |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| interpolation_t | OT_STRING | "hermite" | Type of |
+ %| ype | | | interpolation |
+ %| | | | for the adjoint |
+ %| | | | sensitivities ( |
+ %| | | | hermite|polynom |
+ %| | | | ial) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| iterative_solve | OT_STRING | "gmres" | (gmres|bcgstab| |
+ %| r | | | tfqmr) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| iterative_solve | OT_STRING | GenericType() | (gmres|bcgstab| |
+ %| rB | | | tfqmr) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver | OT_STRING | GenericType() | A custom linear |
+ %| | | | solver creator |
+ %| | | | function |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solverB | OT_STRING | GenericType() | A custom linear |
+ %| | | | solver creator |
+ %| | | | function for |
+ %| | | | backwards |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to |
+ %| | | | linear_solver] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptions | | | passed to the |
+ %| | | | linear solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_o | OT_DICT | GenericType() | Options to be |
+ %| ptionsB | | | passed to the |
+ %| | | | linear solver |
+ %| | | | for backwards |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to linear_solve |
+ %| | | | r_options] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_t | OT_STRING | "dense" | (user_defined|d |
+ %| ype | | | ense|banded|ite |
+ %| | | | rative) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver_t | OT_STRING | GenericType() | (user_defined|d |
+ %| ypeB | | | ense|banded|ite |
+ %| | | | rative) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lower_bandwidth | OT_INTEGER | GenericType() | Lower band- |
+ %| | | | width of banded |
+ %| | | | Jacobian |
+ %| | | | (estimations) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lower_bandwidth | OT_INTEGER | GenericType() | lower band- |
+ %| B | | | width of banded |
+ %| | | | jacobians for |
+ %| | | | backward |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to lower_bandwi |
+ %| | | | dth] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_krylov | OT_INTEGER | 10 | Maximum Krylov |
+ %| | | | subspace size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_krylovB | OT_INTEGER | GenericType() | Maximum krylov |
+ %| | | | subspace size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_multistep_o | OT_INTEGER | 5 | |
+ %| rder | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_num_steps | OT_INTEGER | 10000 | Maximum number |
+ %| | | | of integrator |
+ %| | | | steps |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_step_size | OT_REAL | 0 | Maximim step |
+ %| | | | size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pretype | OT_STRING | "none" | (none|left|righ |
+ %| | | | t|both) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pretypeB | OT_STRING | GenericType() | (none|left|righ |
+ %| | | | t|both) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quad_err_con | OT_BOOLEAN | false | Should the |
+ %| | | | quadratures |
+ %| | | | affect the step |
+ %| | | | size control |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reltol | OT_REAL | 0.000 | Relative |
+ %| | | | tolerence for |
+ %| | | | the IVP |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reltolB | OT_REAL | GenericType() | Relative |
+ %| | | | tolerence for |
+ %| | | | the adjoint |
+ %| | | | sensitivity |
+ %| | | | solution |
+ %| | | | [default: equal |
+ %| | | | to reltol] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| sensitivity_met | OT_STRING | "simultaneous" | (simultaneous|s |
+ %| hod | | | taggered) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| steps_per_check | OT_INTEGER | 20 | Number of steps |
+ %| point | | | between two |
+ %| | | | consecutive |
+ %| | | | checkpoints |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| stop_at_end | OT_BOOLEAN | true | Stop the |
+ %| | | | integrator at |
+ %| | | | the end of the |
+ %| | | | interval |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| suppress_algebr | OT_BOOLEAN | false | Suppress |
+ %| aic | | | algebraic |
+ %| | | | variables in |
+ %| | | | the error |
+ %| | | | testing |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| upper_bandwidth | OT_INTEGER | GenericType() | Upper band- |
+ %| | | | width of banded |
+ %| | | | Jacobian |
+ %| | | | (estimations) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| upper_bandwidth | OT_INTEGER | GenericType() | Upper band- |
+ %| B | | | width of banded |
+ %| | | | jacobians for |
+ %| | | | backward |
+ %| | | | integration |
+ %| | | | [default: equal |
+ %| | | | to upper_bandwi |
+ %| | | | dth] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| use_preconditio | OT_BOOLEAN | false | Precondition an |
+ %| ner | | | iterative |
+ %| | | | solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| use_preconditio | OT_BOOLEAN | GenericType() | Precondition an |
+ %| nerB | | | iterative |
+ %| | | | solver for the |
+ %| | | | backwards |
+ %| | | | problem |
+ %| | | | [default: equal |
+ %| | | | to use_precondi |
+ %| | | | tioner] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+--------------------------+
+ %| Id |
+ %+==========================+
+ %| bjacB |
+ %+--------------------------+
+ %| correctInitialConditions |
+ %+--------------------------+
+ %| jtimesB |
+ %+--------------------------+
+ %| psetup |
+ %+--------------------------+
+ %| psetupB |
+ %+--------------------------+
+ %| psolveB |
+ %+--------------------------+
+ %| res |
+ %+--------------------------+
+ %| resB |
+ %+--------------------------+
+ %| resS |
+ %+--------------------------+
+ %| rhsQB |
+ %+--------------------------+
+ %
+ %>List of available stats
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| nlinsetups |
+ %+-------------+
+ %| nlinsetupsB |
+ %+-------------+
+ %| nsteps |
+ %+-------------+
+ %| nstepsB |
+ %+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %collocation
+ %-----------
+ %
+ %
+ %
+ %Fixed-step implicit Runge-Kutta integrator ODE/DAE integrator based on
+ %collocation schemes
+ %
+ %The method is still under development
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| collocation_sch | OT_STRING | "radau" | Collocation |
+ %| eme | | | scheme (radau|l |
+ %| | | | egendre) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| implicit_solver | OT_STRING | GenericType() | An implicit |
+ %| | | | function solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| implicit_solver | OT_DICT | GenericType() | Options to be |
+ %| _options | | | passed to the |
+ %| | | | NLP Solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| interpolation_o | OT_INTEGER | 3 | Order of the |
+ %| rder | | | interpolating |
+ %| | | | polynomials |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| number_of_finit | OT_INTEGER | 20 | Number of |
+ %| e_elements | | | finite elements |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %oldcollocation
+ %--------------
+ %
+ %
+ %
+ %Collocation integrator ODE/DAE integrator based on collocation
+ %
+ %The method is still under development
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| collocation_sch | OT_STRING | "radau" | Collocation |
+ %| eme | | | scheme (radau|l |
+ %| | | | egendre) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| expand_f | OT_BOOLEAN | false | Expand the |
+ %| | | | ODE/DAE |
+ %| | | | residual |
+ %| | | | function in an |
+ %| | | | SX graph |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| expand_q | OT_BOOLEAN | false | Expand the |
+ %| | | | quadrature |
+ %| | | | function in an |
+ %| | | | SX graph |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hotstart | OT_BOOLEAN | true | Initialize the |
+ %| | | | trajectory at |
+ %| | | | the previous |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| implicit_solver | OT_STRING | GenericType() | An implicit |
+ %| | | | function solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| implicit_solver | OT_DICT | GenericType() | Options to be |
+ %| _options | | | passed to the |
+ %| | | | implicit solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| interpolation_o | OT_INTEGER | 3 | Order of the |
+ %| rder | | | interpolating |
+ %| | | | polynomials |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| number_of_finit | OT_INTEGER | 20 | Number of |
+ %| e_elements | | | finite elements |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| startup_integra | OT_STRING | GenericType() | An ODE/DAE |
+ %| tor | | | integrator that |
+ %| | | | can be used to |
+ %| | | | generate a |
+ %| | | | startup |
+ %| | | | trajectory |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| startup_integra | OT_DICT | GenericType() | Options to be |
+ %| tor_options | | | passed to the |
+ %| | | | startup |
+ %| | | | integrator |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %rk --
+ %
+ %
+ %
+ %Fixed-step explicit Runge-Kutta integrator for ODEs Currently implements
+ %RK4.
+ %
+ %The method is still under development
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| number_of_finit | OT_INTEGER | 20 | Number of |
+ %| e_elements | | | finite elements |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: integrator.hpp
+ %Usage: Integrator ()
+ %
+ methods
+ function varargout = clone(self,varargin)
+ %Clone.
+ %
+ %
+ %Usage: retval = clone ()
+ %
+ %retval is of type Integrator.
+
+ try
+
+ if ~isa(self,'casadi.Integrator')
+ self = casadi.Integrator(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(961, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printStats(self,varargin)
+ %Print solver statistics.
+ %
+ %
+ %Usage: printStats ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Integrator')
+ self = casadi.Integrator(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(962, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = reset(self,varargin)
+ %Reset the forward problem Time will be set to t0 and state to
+ %input(INTEGRATOR_X0)
+ %
+ %
+ %Usage: reset ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(963, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = integrate(self,varargin)
+ %Integrate forward until a specified time point.
+ %
+ %
+ %Usage: integrate (t_out)
+ %
+ %t_out is of type double.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(964, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resetB(self,varargin)
+ %Reset the backward problem.
+ %
+ %Time will be set to tf and backward state to input(INTEGRATOR_RX0)
+ %
+ %
+ %Usage: resetB ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(965, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = integrateB(self,varargin)
+ %Integrate backward until a specified time point.
+ %
+ %
+ %Usage: integrateB (t_out)
+ %
+ %t_out is of type double.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(966, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAugmented(self,varargin)
+ %Generate a augmented DAE system with nfwd forward sensitivities and nadj
+ %adjoint sensitivities.
+ %
+ %
+ %Usage: retval = getAugmented (nfwd, nadj)
+ %
+ %nfwd is of type int. nadj is of type int. nfwd is of type int. nadj is of type int. retval is of type std::pair< casadi::Function,casadi::Function >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(970, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getDAE(self,varargin)
+ %Get the DAE.
+ %
+ %
+ %Usage: retval = getDAE ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(971, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setStopTime(self,varargin)
+ %Set a stop time for the forward integration.
+ %
+ %
+ %Usage: setStopTime (tf)
+ %
+ %tf is of type double.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(972, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = Integrator(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(974, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(975, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(967, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(968, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(969, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(973, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IterationCallback.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IterationCallback.m
new file mode 100755
index 0000000..cb321da
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/IterationCallback.m
@@ -0,0 +1,66 @@
+classdef IterationCallback < SwigRef
+ %C++ includes: functor.hpp
+ %
+ %Usage: IterationCallback ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (fcn)
+ %
+ %fcn is of type Function. fcn is of type Function. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1083, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1084, self);
+ self.swigPtr=[];
+ end
+ end
+ function self = IterationCallback(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ if strcmp(class(self),'director_basic.IterationCallback')
+ tmp = casadiMEX(1085, 0, varargin{:});
+ else
+ tmp = casadiMEX(1085, self, varargin{:});
+ end
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/KernelSum2D.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/KernelSum2D.m
new file mode 100755
index 0000000..1df38a9
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/KernelSum2D.m
@@ -0,0 +1,316 @@
+classdef KernelSum2D < casadi.Function
+ %KernelSum2D
+ %
+ %Consider a dense matrix V.
+ %
+ %KernelSum computes
+ %
+ %F(V,X) = sum_i sum_j f ( [i;j], V(i,j), X)
+ %
+ %with X: [x;y]
+ %
+ %where the summation is taken for all entries (i,j) that are a distance r
+ %away from X.
+ %
+ %This function assumes that V is fixed: sensitivities with respect to it are
+ %not computed.
+ %
+ %This allows for improved speed of evaluation.
+ %
+ %Having V fixed is a common use case: V may be a large bitmap (observation),
+ %onto which a kernel is fitted.
+ %
+ %Summation does not occur outside the image. Runtime will not grow after
+ %distance r grows large enough to contian the whole image.
+ %
+ %Joris Gillis
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: kernel_sum_2d.hpp
+ %Usage: KernelSum2D ()
+ %
+ methods
+ function self = KernelSum2D(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1142, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1143, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1141, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LEGENDRE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LEGENDRE.m
new file mode 100755
index 0000000..fd8aca8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LEGENDRE.m
@@ -0,0 +1,7 @@
+function v = LEGENDRE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 153);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LinearSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LinearSolver.m
new file mode 100755
index 0000000..0089759
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LinearSolver.m
@@ -0,0 +1,637 @@
+classdef LinearSolver < casadi.Function
+ %Base class for the linear solver classes.
+ %
+ %Solves the linear system A*X = B or A^T*X = B for X with A square and non-
+ %singular
+ %
+ %If A is structurally singular, an error will be thrown during init. If A is
+ %numerically singular, the prepare step will fail.
+ %
+ %The usual procedure to use LinearSolver is: init()
+ %
+ %set the first input (A)
+ %
+ %prepare()
+ %
+ %set the second input (b)
+ %
+ %solve()
+ %
+ %Repeat steps 4 and 5 to work with other b vectors.
+ %
+ %The method evaluate() combines the prepare() and solve() step and is
+ %therefore more expensive if A is invariant.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::LinsolInput (LINSOL_NUM_IN = 2) [linsolIn]
+ %
+ %+-----------+-------+------------------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+================================================+
+ %| LINSOL_A | A | The square matrix A: sparse, (n x n). . |
+ %+-----------+-------+------------------------------------------------+
+ %| LINSOL_B | B | The right-hand-side matrix b: dense, (n x m) . |
+ %+-----------+-------+------------------------------------------------+
+ %
+ %>Output scheme: casadi::LinsolOutput (LINSOL_NUM_OUT = 1) [linsolOut]
+ %
+ %+-----------+-------+----------------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+==============================================+
+ %| LINSOL_X | X | Solution to the linear system of equations . |
+ %+-----------+-------+----------------------------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- csparsecholesky
+ %
+ %- csparse
+ %
+ %- lapacklu
+ %
+ %- lapackqr
+ %
+ %- symbolicqr
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %LinearSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %csparsecholesky
+ %---------------
+ %
+ %
+ %
+ %LinearSolver with CSparseCholesky Interface
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %csparse
+ %-------
+ %
+ %
+ %
+ %LinearSolver with CSparse Interface
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lapacklu
+ %--------
+ %
+ %
+ %
+ %This class solves the linear system A.x=b by making an LU factorization of
+ %A: A = L.U, with L lower and U upper triangular
+ %
+ %>List of available options
+ %
+ %+-----------------------------+------------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+=============================+============+=========+=============+
+ %| allow_equilibration_failure | OT_BOOLEAN | false | |
+ %+-----------------------------+------------+---------+-------------+
+ %| equilibration | OT_BOOLEAN | true | |
+ %+-----------------------------+------------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lapackqr
+ %--------
+ %
+ %
+ %
+ %This class solves the linear system A.x=b by making an QR factorization of
+ %A: A = Q.R, with Q orthogonal and R upper triangular
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %symbolicqr
+ %----------
+ %
+ %
+ %
+ %LinearSolver based on QR factorization with sparsity pattern based
+ %reordering without partial pivoting
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| codegen | OT_BOOLEAN | false | C-code |
+ %| | | | generation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| compiler | OT_STRING | "gcc -fPIC -O2" | Compiler |
+ %| | | | command to be |
+ %| | | | used for |
+ %| | | | compiling |
+ %| | | | generated code |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: linear_solver.hpp
+ %Usage: LinearSolver ()
+ %
+ methods
+ function varargout = prepare(self,varargin)
+ %Factorize the matrix.
+ %
+ %
+ %Usage: prepare ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(942, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = solve(self,varargin)
+ %> void LinearSolver.solve(bool transpose=false)
+ %------------------------------------------------------------------------
+ %
+ %Solve the system of equations, internal vector.
+ %
+ %> MX LinearSolver.solve(MX A, MX B, bool transpose=false)
+ %------------------------------------------------------------------------
+ %
+ %Create a solve node.
+ %
+ %
+ %Usage: retval = solve (A, B, transpose = false)
+ %
+ %A is of type MX. B is of type MX. transpose is of type bool. A is of type MX. B is of type MX. transpose is of type bool. retval is of type MX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(943, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = prepared(self,varargin)
+ %Check if prepared.
+ %
+ %
+ %Usage: retval = prepared ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.LinearSolver')
+ self = casadi.LinearSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(944, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getFactorizationSparsity(self,varargin)
+ %Obtain a symbolic Cholesky factorization Only for Cholesky solvers.
+ %
+ %
+ %Usage: retval = getFactorizationSparsity (transpose = false)
+ %
+ %transpose is of type bool. transpose is of type bool. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.LinearSolver')
+ self = casadi.LinearSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(945, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getFactorization(self,varargin)
+ %Obtain a numeric Cholesky factorization Only for Cholesky solvers.
+ %
+ %
+ %Usage: retval = getFactorization (transpose = false)
+ %
+ %transpose is of type bool. transpose is of type bool. retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.LinearSolver')
+ self = casadi.LinearSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(946, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = LinearSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(950, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(951, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(947, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(948, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(949, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LpSolver.m
new file mode 100755
index 0000000..8e69fe6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LpSolver.m
@@ -0,0 +1,460 @@
+classdef LpSolver < casadi.Function
+ %LpSolver.
+ %
+ %Solves the following linear problem:
+ %
+ %
+ %
+ %::
+ %
+ % min c' x
+ % x
+ %
+ % subject to
+ % LBA <= A x <= UBA
+ % LBX <= x <= UBX
+ %
+ % with x ( n x 1)
+ % c ( n x 1 )
+ % A sparse matrix ( nc x n)
+ % LBA, UBA dense vector (nc x 1)
+ % LBX, UBX dense vector (n x 1)
+ %
+ % n: number of decision variables (x)
+ % nc: number of constraints (A)
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::LpSolverInput (LP_SOLVER_NUM_IN = 6) [lpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LP_SOLVER_C | c | The vector c: dense (n |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LBA | lba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_UBA | uba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LBX | lbx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_UBX | ubx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::LpSolverOutput (LP_SOLVER_NUM_OUT = 4) [lpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- qp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %LpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %qp --
+ %
+ %
+ %
+ %Solve LPs using a QpSolver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+-----------------+
+ %| Id |
+ %+=================+
+ %| qp_solver_stats |
+ %+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: lp_solver.hpp
+ %Usage: LpSolver ()
+ %
+ methods
+ function self = LpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1023, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1024, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1019, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1020, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1021, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1022, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LrDleSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LrDleSolver.m
new file mode 100755
index 0000000..9bc6ed3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LrDleSolver.m
@@ -0,0 +1,583 @@
+classdef LrDleSolver < casadi.Function
+ %Base class for Low-rank Discrete Lyapunov Equation Solvers.
+ %
+ %
+ %
+ %::
+ %
+ % A in R^(n x n)
+ % V in S^m
+ % C in R^(n x m)
+ % Hi in R^(n x Hsi)
+ %
+ %
+ %
+ %
+ %finds $P$ that satisfies:
+ %
+ %
+ %
+ %::
+ %
+ % P = A P A' + C V C'
+ %
+ %
+ %
+ %
+ %and outputs
+ %
+ %Yi = Hi^T P Hi
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::LR_DLEInput (LR_DLE_NUM_IN = 4) [lrdleIn]
+ %
+ %+-----------+-------+----------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+========================================+
+ %| LR_DLE_A | a | A matrix . |
+ %+-----------+-------+----------------------------------------+
+ %| LR_DLE_V | v | V matrix . |
+ %+-----------+-------+----------------------------------------+
+ %| LR_DLE_C | c | C matrix . |
+ %+-----------+-------+----------------------------------------+
+ %| LR_DLE_H | h | H matrix: horizontal stack of all Hi . |
+ %+-----------+-------+----------------------------------------+
+ %
+ %>Output scheme: casadi::LR_DLEOutput (LR_DLE_NUM_OUT = 1) [lrdleOut]
+ %
+ %+-----------+-------+---------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=================================+
+ %| LR_DLE_Y | y | Y matrix, block diagonal form . |
+ %+-----------+-------+---------------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| eps_unstable | OT_REAL | 0.000 | A margin for | casadi::LrDl |
+ %| | | | unstability | eInternal |
+ %| | | | detection | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| error_unstab | OT_BOOLEAN | false | Throw an | casadi::LrDl |
+ %| le | | | exception | eInternal |
+ %| | | | when it is | |
+ %| | | | detected | |
+ %| | | | that | |
+ %| | | | Product(A_i, | |
+ %| | | | i=N..1) has | |
+ %| | | | eigenvalues | |
+ %| | | | greater than | |
+ %| | | | 1-eps_unstab | |
+ %| | | | le | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| pos_def | OT_BOOLEAN | false | Assume P | casadi::LrDl |
+ %| | | | positive | eInternal |
+ %| | | | definite | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- fixed_smith
+ %
+ %- dle
+ %
+ %- lrdple
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %LrDleSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %fixed_smith
+ %-----------
+ %
+ %
+ %
+ %Solving the Discrete Lyapunov Equations with a regular LinearSolver
+ %
+ %>List of available options
+ %
+ %+------+------------+---------+----------------------------+
+ %| Id | Type | Default | Description |
+ %+======+============+=========+============================+
+ %| iter | OT_INTEGER | 100 | Number of Smith iterations |
+ %+------+------------+---------+----------------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %dle
+ %---
+ %
+ %
+ %
+ %Solving the Discrete Lyapunov Equations with a Low-rank Discrete Lyapunov
+ %Equations solver
+ %
+ %Solving the Low-Rank Discrete Lyapunov Equations with a regular Discrete
+ %Lyapunov Equations solver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lrdple
+ %------
+ %
+ %
+ %
+ %Solving the low-rank Periodic Discrete Lyapunov Equations with a low- rank
+ %discrete Lyapunov solver
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| dple | OT_DICT | GenericType() | Options to be |
+ %| | | | passed to the |
+ %| | | | DPLE solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dple_solver | OT_STRING | GenericType() | User-defined |
+ %| | | | DPLE solver |
+ %| | | | class. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: lr_dle_solver.hpp
+ %Usage: LrDleSolver ()
+ %
+ methods
+ function varargout = clone(self,varargin)
+ %Clone.
+ %
+ %
+ %Usage: retval = clone ()
+ %
+ %retval is of type LrDleSolver.
+
+ try
+
+ if ~isa(self,'casadi.LrDleSolver')
+ self = casadi.LrDleSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1118, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printStats(self,varargin)
+ %Print solver statistics.
+ %
+ %
+ %Usage: printStats ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.LrDleSolver')
+ self = casadi.LrDleSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1119, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = LrDleSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1125, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1126, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1120, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1121, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1122, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1123, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(varargin)
+ %Usage: retval = sparsity (st, Hs = std::vector< int >())
+ %
+ %st is of type std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > > const &. Hs is of type std::vector< int,std::allocator< int > > const &. st is of type std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > > const &. Hs is of type std::vector< int,std::allocator< int > > const &. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1124, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LrDpleSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LrDpleSolver.m
new file mode 100755
index 0000000..982251e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/LrDpleSolver.m
@@ -0,0 +1,543 @@
+classdef LrDpleSolver < casadi.Function
+ %Base class for Discrete Periodic Lyapunov Equation Solvers.
+ %
+ %Given matrices $A_k$ and symmetric $V_k, k = 0..K-1$
+ %
+ %
+ %
+ %::
+ %
+ % A_k in R^(n x n)
+ % V_k in R^n
+ %
+ %
+ %
+ %
+ %provides all of $P_k$ that satisfy:
+ %
+ %
+ %
+ %::
+ %
+ % P_0 = A_(K-1)*P_(K-1)*A_(K-1)' + V_k
+ % P_k+1 = A_k*P_k*A_k' + V_k for k = 1..K-1
+ %
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::LR_DPLEInput (LR_DPLE_NUM_IN = 4) [lrdpleIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LR_DPLE_A | a | A matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %| LR_DPLE_V | v | V matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %| LR_DPLE_C | c | C matrix . |
+ %+------------------------+------------------------+------------------------+
+ %| LR_DPLE_H | h | H matrix: horizontal |
+ %| | | stack of all Hi . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::LR_DPLEOutput (LR_DPLE_NUM_OUT = 1) [lrdpleOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LR_DPLE_Y | y | Lyapunov matrix |
+ %| | | (horzcat when |
+ %| | | const_dim, diagcat |
+ %| | | otherwise) (Cholesky |
+ %| | | of P if pos_def) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| const_dim | OT_BOOLEAN | true | Assume | casadi::LrDp |
+ %| | | | constant | leInternal |
+ %| | | | dimension of | |
+ %| | | | P | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| eps_unstable | OT_REAL | 0.000 | A margin for | casadi::LrDp |
+ %| | | | unstability | leInternal |
+ %| | | | detection | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| error_unstab | OT_BOOLEAN | false | Throw an | casadi::LrDp |
+ %| le | | | exception | leInternal |
+ %| | | | when it is | |
+ %| | | | detected | |
+ %| | | | that | |
+ %| | | | Product(A_i, | |
+ %| | | | i=N..1) has | |
+ %| | | | eigenvalues | |
+ %| | | | greater than | |
+ %| | | | 1-eps_unstab | |
+ %| | | | le | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| pos_def | OT_BOOLEAN | false | Assume P | casadi::LrDp |
+ %| | | | positive | leInternal |
+ %| | | | definite | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- lifting
+ %
+ %- dple
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %LrDpleSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %lifting
+ %-------
+ %
+ %
+ %
+ %Solving the Discrete Periodic Lyapunov Equations by lifting the entire
+ %period to a single Discrete Lyapunov Equation
+ %
+ %>List of available options
+ %
+ %+------+-----------+---------+-----------------------------------+
+ %| Id | Type | Default | Description |
+ %+======+===========+=========+===================================+
+ %| form | OT_STRING | "A" | The form of the lifting (A:0|B:1) |
+ %+------+-----------+---------+-----------------------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %dple
+ %----
+ %
+ %
+ %
+ %Solving the Low-Rank Discrete Lyapunov Equations with a Low-Rank Discrete
+ %Lyapunov Equations Solver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: lr_dple_solver.hpp
+ %Usage: LrDpleSolver ()
+ %
+ methods
+ function varargout = clone(self,varargin)
+ %Clone.
+ %
+ %
+ %Usage: retval = clone ()
+ %
+ %retval is of type LrDpleSolver.
+
+ try
+
+ if ~isa(self,'casadi.LrDpleSolver')
+ self = casadi.LrDpleSolver(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1110, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printStats(self,varargin)
+ %Print solver statistics.
+ %
+ %
+ %Usage: printStats ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.LrDpleSolver')
+ self = casadi.LrDpleSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1111, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = LrDpleSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1116, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1117, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1112, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1113, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1114, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1115, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MX.m
new file mode 100755
index 0000000..75c0b93
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MX.m
@@ -0,0 +1,1732 @@
+classdef MX < casadi.ExpMX & casadi.GenMX & casadi.SharedObject
+ %MX - Matrix expression.
+ %
+ %The MX class is used to build up trees made up from MXNodes. It is a more
+ %general graph representation than the scalar expression, SX, and much less
+ %efficient for small objects. On the other hand, the class allows much more
+ %general operations than does SX, in particular matrix valued operations and
+ %calls to arbitrary differentiable functions.
+ %
+ %The MX class is designed to have identical syntax with the Matrix<> template
+ %class, and uses Matrix as its internal representation of the values
+ %at a node. By keeping the syntaxes identical, it is possible to switch from
+ %one class to the other, as well as inlining MX functions to SXElement
+ %functions.
+ %
+ %Note that an operation is always "lazy", making a matrix multiplication
+ %will create a matrix multiplication node, not perform the actual
+ %multiplication.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: mx.hpp
+ %Usage: MX ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function self = MX(varargin)
+ self@casadi.ExpMX(SwigRef.Null);
+ self@casadi.GenMX(SwigRef.Null);
+ self@casadi.SharedObject(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(752, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(753, self);
+ self.swigPtr=[];
+ end
+ end
+ function varargout = nonzero(self,varargin)
+ %Returns the truth value of an MX expression.
+ %
+ %
+ %Usage: retval = nonzero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(754, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get an owning reference to the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(755, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erase(self,varargin)
+ %> void MX.erase([int ] rr, [int ] cc, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase rows and/or
+ %columns of a matrix.
+ %
+ %> void MX.erase([int ] rr, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase elements of
+ %a matrix.
+ %
+ %
+ %Usage: erase (rr, ind1 = false)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(756, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlarge(self,varargin)
+ %Enlarge matrix Make the matrix larger by inserting empty rows and columns,
+ %keeping the existing non-zeros.
+ %
+ %
+ %Usage: enlarge (nrow, ncol, rr, cc, ind1 = false)
+ %
+ %nrow is of type int. ncol is of type int. rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(757, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uminus(self,varargin)
+ %Usage: retval = uminus ()
+ %
+ %retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(758, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getDep(self,varargin)
+ %Get the nth dependency as MX.
+ %
+ %
+ %Usage: retval = getDep (ch = 0)
+ %
+ %ch is of type int. ch is of type int. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(759, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nOut(self,varargin)
+ %Number of outputs.
+ %
+ %
+ %Usage: retval = nOut ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(760, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOutput(self,varargin)
+ %Get an output.
+ %
+ %
+ %Usage: retval = getOutput (oind = 0)
+ %
+ %oind is of type int. oind is of type int. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(761, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNdeps(self,varargin)
+ %Get the number of dependencies of a binary SXElement.
+ %
+ %
+ %Usage: retval = getNdeps ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(762, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getName(self,varargin)
+ %Get the name.
+ %
+ %
+ %Usage: retval = getName ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(763, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getValue(self,varargin)
+ %Get the value (only for scalar constant nodes)
+ %
+ %
+ %Usage: retval = getValue ()
+ %
+ %retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(764, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getMatrixValue(self,varargin)
+ %Get the value (only for constant nodes)
+ %
+ %
+ %Usage: retval = getMatrixValue ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(765, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSymbolic(self,varargin)
+ %Check if symbolic.
+ %
+ %
+ %Usage: retval = isSymbolic ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(766, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isConstant(self,varargin)
+ %Check if constant.
+ %
+ %
+ %Usage: retval = isConstant ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(767, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isEvaluation(self,varargin)
+ %Check if evaluation.
+ %
+ %
+ %Usage: retval = isEvaluation ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(768, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isEvaluationOutput(self,varargin)
+ %Check if evaluation output.
+ %
+ %
+ %Usage: retval = isEvaluationOutput ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(769, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getEvaluationOutput(self,varargin)
+ %Get the index of evaluation output - only valid when isEvaluationoutput() is
+ %true.
+ %
+ %
+ %Usage: retval = getEvaluationOutput ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(770, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isOperation(self,varargin)
+ %Is it a certain operation.
+ %
+ %
+ %Usage: retval = isOperation (op)
+ %
+ %op is of type int. op is of type int. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(771, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isMultiplication(self,varargin)
+ %Check if multiplication.
+ %
+ %
+ %Usage: retval = isMultiplication ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(772, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isCommutative(self,varargin)
+ %Check if commutative operation.
+ %
+ %
+ %Usage: retval = isCommutative ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(773, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isNorm(self,varargin)
+ %Check if norm.
+ %
+ %
+ %Usage: retval = isNorm ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(774, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isValidInput(self,varargin)
+ %Check if matrix can be used to define function inputs. Valid inputs for
+ %MXFunctions are combinations of Reshape, concatenations and SymbolicMX.
+ %
+ %
+ %Usage: retval = isValidInput ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(775, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numPrimitives(self,varargin)
+ %Get the number of symbolic primitive Assumes isValidInput() returns true.
+ %
+ %
+ %Usage: retval = numPrimitives ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(776, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getPrimitives(self,varargin)
+ %Get symbolic primitives.
+ %
+ %
+ %Usage: retval = getPrimitives ()
+ %
+ %retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(777, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = splitPrimitives(self,varargin)
+ %Split up an expression along symbolic primitives.
+ %
+ %
+ %Usage: retval = splitPrimitives (x)
+ %
+ %x is of type MX. x is of type MX. retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(778, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = joinPrimitives(self,varargin)
+ %Join an expression along symbolic primitives.
+ %
+ %
+ %Usage: retval = joinPrimitives (v)
+ %
+ %v is of type std::vector< casadi::MX,std::allocator< casadi::MX > > &. v is of type std::vector< casadi::MX,std::allocator< casadi::MX > > &. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(779, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasDuplicates(self,varargin)
+ %[INTERNAL] Detect
+ %duplicate symbolic expressions If there are symbolic primitives appearing
+ %more than once, the function will return true and the names of the duplicate
+ %expressions will be printed to userOut(). Note: Will mark the
+ %node using MX::setTemp. Make sure to call resetInput() after usage.
+ %
+ %
+ %Usage: retval = hasDuplicates ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(780, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resetInput(self,varargin)
+ %[INTERNAL] Reset the marker
+ %for an input expression.
+ %
+ %
+ %Usage: resetInput ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(781, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isIdentity(self,varargin)
+ %check if identity
+ %
+ %
+ %Usage: retval = isIdentity ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(782, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isZero(self,varargin)
+ %check if zero (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isZero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(783, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isOne(self,varargin)
+ %check if zero (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(784, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isMinusOne(self,varargin)
+ %check if zero (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isMinusOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(785, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isTranspose(self,varargin)
+ %Is the expression a transpose?
+ %
+ %
+ %Usage: retval = isTranspose ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(786, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isRegular(self,varargin)
+ %Checks if expression does not contain NaN or Inf.
+ %
+ %
+ %Usage: retval = isRegular ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(787, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numFunctions(self,varargin)
+ %Number of functions.
+ %
+ %
+ %Usage: retval = numFunctions ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(788, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getFunction(self,varargin)
+ %Get function.
+ %
+ %
+ %Usage: retval = getFunction (i = 0)
+ %
+ %i is of type int. i is of type int. retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(789, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isBinary(self,varargin)
+ %Is binary operation.
+ %
+ %
+ %Usage: retval = isBinary ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(790, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isUnary(self,varargin)
+ %Is unary operation.
+ %
+ %
+ %Usage: retval = isUnary ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(791, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOp(self,varargin)
+ %Get operation type.
+ %
+ %
+ %Usage: retval = getOp ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(792, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getTemp(self,varargin)
+ %[INTERNAL] Get the temporary
+ %variable
+ %
+ %
+ %Usage: retval = getTemp ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(793, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setTemp(self,varargin)
+ %[INTERNAL] Set the temporary
+ %variable.
+ %
+ %
+ %Usage: setTemp (t)
+ %
+ %t is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(794, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = get(self,varargin)
+ %> void MX.get(MX &output_m, bool ind1, Slice rr) const
+ %
+ %> void MX.get(MX &output_m, bool ind1, IMatrix rr) const
+ %
+ %> void MX.get(MX &output_m, bool ind1, Sparsity sp) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, single argument
+ %
+ %> void MX.get(MX &output_m, bool ind1, Slice rr, Slice cc) const
+ %
+ %> void MX.get(MX &output_m, bool ind1, Slice rr, IMatrix cc) const
+ %
+ %> void MX.get(MX &output_m, bool ind1, IMatrix rr, Slice cc) const
+ %
+ %> void MX.get(MX &output_m, bool ind1, IMatrix rr, IMatrix cc) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, two arguments
+ %
+ %
+ %Usage: get (ind1, rr, cc)
+ %
+ %ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(800, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = set(self,varargin)
+ %> void MX.set(MX m, bool ind1, Slice rr)
+ %
+ %> void MX.set(MX m, bool ind1, IMatrix rr)
+ %
+ %> void MX.set(MX m, bool ind1, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, single argument
+ %
+ %
+ %Usage: set (m, ind1, rr, cc)
+ %
+ %m is of type MX. ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(801, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNZ(self,varargin)
+ %Get a set of nonzeros
+ %
+ %
+ %Usage: getNZ (ind1, kk)
+ %
+ %ind1 is of type bool. kk is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(802, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setNZ(self,varargin)
+ %Set a set of nonzeros
+ %
+ %
+ %Usage: setNZ (m, ind1, kk)
+ %
+ %m is of type MX. ind1 is of type bool. kk is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(803, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = append(self,varargin)
+ %[DEPRECATED] Append a matrix vertically (NOTE: only efficient if vector)
+ %
+ %
+ %Usage: append (y)
+ %
+ %y is of type MX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(804, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = appendColumns(self,varargin)
+ %[DEPRECATED] Append a matrix horizontally
+ %
+ %
+ %Usage: appendColumns (y)
+ %
+ %y is of type MX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(805, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printme(self,varargin)
+ %Usage: retval = printme (y)
+ %
+ %y is of type MX. y is of type MX. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(806, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = attachAssert(self,varargin)
+ %returns itself, but with an assertion attached
+ %
+ %If y does not evaluate to 1, a runtime error is raised
+ %
+ %
+ %Usage: retval = attachAssert (y, fail_message = "")
+ %
+ %y is of type MX. fail_message is of type std::string const &. y is of type MX. fail_message is of type std::string const &. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(807, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = monitor(self,varargin)
+ %Monitor an expression Returns itself, but with the side effect of printing
+ %the nonzeros along with a comment.
+ %
+ %
+ %Usage: retval = monitor (comment)
+ %
+ %comment is of type std::string const &. comment is of type std::string const &. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(808, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeDense(self,varargin)
+ %[DEPRECATED: Use densify instead] Make the matrix dense
+ %
+ %
+ %Usage: makeDense (val = 0)
+ %
+ %val is of type MX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(809, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = lift(self,varargin)
+ %[DEPRECATED] Lift an expression
+ %
+ %
+ %Usage: lift (x_guess)
+ %
+ %x_guess is of type MX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(810, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = T(self,varargin)
+ %Transpose the matrix.
+ %
+ %
+ %Usage: retval = T ()
+ %
+ %retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(811, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mapping(self,varargin)
+ %Get an IMatrix representation of a GetNonzeros or SetNonzeros node.
+ %
+ %
+ %Usage: retval = mapping ()
+ %
+ %retval is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(812, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (rr, cc)
+ %
+ %rr is of type IMatrix. cc is of type IMatrix. rr is of type IMatrix. cc is of type IMatrix. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(816, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren_asgn(self,varargin)
+ %Usage: paren_asgn (m, rr, cc)
+ %
+ %m is of type MX. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(817, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = brace(self,varargin)
+ %Usage: retval = brace (rr)
+ %
+ %rr is of type IMatrix. rr is of type IMatrix. retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(818, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setbrace(self,varargin)
+ %Usage: setbrace (m, rr)
+ %
+ %m is of type MX. rr is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(819, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = end(self,varargin)
+ %Usage: retval = end (i, n)
+ %
+ %i is of type int. n is of type int. i is of type int. n is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(820, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ctranspose(self,varargin)
+ %Usage: retval = ctranspose ()
+ %
+ %retval is of type MX.
+
+ try
+
+ if ~isa(self,'casadi.MX')
+ self = casadi.MX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(821, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = find(varargin)
+ %Find first nonzero If failed, returns the number of rows.
+ %
+ %
+ %Usage: retval = find (x)
+ %
+ %x is of type MX. x is of type MX. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(822, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ methods(Static)
+ function varargout = binary(varargin)
+ %Create nodes by their ID.
+ %
+ %
+ %Usage: retval = binary (op, x, y)
+ %
+ %op is of type int. x is of type MX. y is of type MX. op is of type int. x is of type MX. y is of type MX. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(795, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unary(varargin)
+ %Create nodes by their ID.
+ %
+ %
+ %Usage: retval = unary (op, x)
+ %
+ %op is of type int. x is of type MX. op is of type int. x is of type MX. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(796, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inf(varargin)
+ %create a matrix with all inf
+ %
+ %
+ %Usage: retval = inf (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(797, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nan(varargin)
+ %create a matrix with all nan
+ %
+ %
+ %Usage: retval = nan (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(798, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eye(varargin)
+ %Usage: retval = eye (ncol)
+ %
+ %ncol is of type int. ncol is of type int. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(799, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setEqualityCheckingDepth(varargin)
+ %Usage: setEqualityCheckingDepth (eq_depth = 1)
+ %
+ %eq_depth is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(813, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getEqualityCheckingDepth(varargin)
+ %Usage: retval = getEqualityCheckingDepth ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(814, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(815, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MXFunction.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MXFunction.m
new file mode 100755
index 0000000..ff51390
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MXFunction.m
@@ -0,0 +1,520 @@
+classdef MXFunction < casadi.Function
+ %General function mapping from/to MX.
+ %
+ %Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: mx_function.hpp
+ %Usage: MXFunction ()
+ %
+ methods
+ function varargout = inputExpr(self,varargin)
+ %> const MX MXFunction.inputExpr(int ind) const
+ %------------------------------------------------------------------------
+ %
+ %Get function input.
+ %
+ %> [MX] MXFunction.inputExpr() const
+ %------------------------------------------------------------------------
+ %
+ %Get all function inputs.
+ %
+ %
+ %Usage: retval = inputExpr ()
+ %
+ %retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const.
+
+ try
+
+ if ~isa(self,'casadi.MXFunction')
+ self = casadi.MXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(923, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputExpr(self,varargin)
+ %> const MX MXFunction.outputExpr(int ind) const
+ %------------------------------------------------------------------------
+ %
+ %Get function output.
+ %
+ %> [MX] MXFunction.outputExpr() const
+ %------------------------------------------------------------------------
+ %
+ %Get all function outputs.
+ %
+ %
+ %Usage: retval = outputExpr ()
+ %
+ %retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const.
+
+ try
+
+ if ~isa(self,'casadi.MXFunction')
+ self = casadi.MXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(924, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = countNodes(self,varargin)
+ %Number of nodes in the algorithm.
+ %
+ %
+ %Usage: retval = countNodes ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.MXFunction')
+ self = casadi.MXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(925, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = jac(self,varargin)
+ %Jacobian via source code transformation.
+ %
+ %
+ %Usage: retval = jac (iname, oname, compact = false, symmetric = false)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. compact is of type bool. symmetric is of type bool. iname is of type std::string const &. oname is of type std::string const &. compact is of type bool. symmetric is of type bool. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(927, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = grad(self,varargin)
+ %Gradient via source code transformation.
+ %
+ %
+ %Usage: retval = grad (iname, oname)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. iname is of type std::string const &. oname is of type std::string const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(928, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tang(self,varargin)
+ %Tangent via source code transformation.
+ %
+ %
+ %Usage: retval = tang (iname, oname)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. iname is of type std::string const &. oname is of type std::string const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(929, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = expand(self,varargin)
+ %Expand the matrix valued graph into a scalar valued graph.
+ %
+ %
+ %Usage: retval = expand (inputv = std::vector< casadi::SX >())
+ %
+ %inputv is of type std::vector< casadi::SX,std::allocator< casadi::SX > > const &. inputv is of type std::vector< casadi::SX,std::allocator< casadi::SX > > const &. retval is of type SXFunction.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(930, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getFree(self,varargin)
+ %Get all the free variables of the function.
+ %
+ %
+ %Usage: retval = getFree ()
+ %
+ %retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ if ~isa(self,'casadi.MXFunction')
+ self = casadi.MXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(931, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = generateLiftingFunctions(self,varargin)
+ %[INTERNAL] Extract the functions needed for the Lifted Newton method.
+ %
+ %
+ %Usage: generateLiftingFunctions (OUTPUT, OUTPUT)
+ %
+ %OUTPUT is of type MXFunction. OUTPUT is of type MXFunction.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(932, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = MXFunction(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(933, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(934, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(926, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/M_PI.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/M_PI.m
new file mode 100755
index 0000000..9b95dc1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/M_PI.m
@@ -0,0 +1,7 @@
+function v = M_PI()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 62);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Map.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Map.m
new file mode 100755
index 0000000..a4f228b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Map.m
@@ -0,0 +1,306 @@
+classdef Map < casadi.Function
+ %Map Joris Gillis
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| parallelizat | OT_STRING | "serial" | Computationa | casadi::MapR |
+ %| ion | | | l strategy | educe |
+ %| | | | for parallel | |
+ %| | | | ization (ser | |
+ %| | | | ial|openmp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| reduced_inpu | OT_INTEGERVE | GenericType( | Reduction | casadi::MapR |
+ %| ts | CTOR | ) | for certain | educe |
+ %| | | | inputs | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| reduced_outp | OT_INTEGERVE | GenericType( | Reduction | casadi::MapR |
+ %| uts | CTOR | ) | for certain | educe |
+ %| | | | outputs | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: map.hpp
+ %Usage: Map ()
+ %
+ methods
+ function self = Map(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1136, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1137, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1135, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MapAccum.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MapAccum.m
new file mode 100755
index 0000000..7543fc1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MapAccum.m
@@ -0,0 +1,337 @@
+classdef MapAccum < casadi.Function
+ %MapAccum class.
+ %
+ %Consider a function: f(x, u) -> xp, y
+ %
+ %MapAccum will evaluate this function repeatedly, feeding the output back to
+ %the input:
+ %
+ %
+ %
+ %::
+ %
+ % x1, y0 <- f(x0, u0)
+ % x2, y1 <- f(x1, u1)
+ % x3, y2 <- f(x2, u2)
+ %
+ %
+ %
+ %
+ %The inputs to MapAccum(f) are in this case: x0
+ %
+ %[u0 u1 u2] The outputs are:
+ %
+ %[x1 x2 x3]
+ %
+ %[y0 y1 y2]
+ %
+ %This class treats the general case: n repetitions
+ %
+ %any number of accumulated inputs (x)
+ %
+ %any number of regular inputs (u)
+ %
+ %a boolean list input_accum flags which inputs are accumalated.
+ %
+ %An index list output_accum indicates the indices of the outputs that are fed
+ %back to the inputs.
+ %
+ %This implementation is optimized for speed. There is a penalty in memory:
+ %the entire accumulator history is an output. This allows the forward mode to
+ %use this history, instead of recreating the accumulator.
+ %
+ %In reverse mode, you would need the history anyway.
+ %
+ %For a memory-optimized implementation, see Fold.
+ %
+ %Joris Gillis
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: mapaccum.hpp
+ %Usage: MapAccum ()
+ %
+ methods
+ function self = MapAccum(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1139, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1140, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1138, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MatlabSwigIterator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MatlabSwigIterator.m
new file mode 100755
index 0000000..0fd0a2f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MatlabSwigIterator.m
@@ -0,0 +1,311 @@
+classdef MatlabSwigIterator < SwigRef
+ %Usage: MatlabSwigIterator ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(5, self);
+ self.swigPtr=[];
+ end
+ end
+ function varargout = value(self,varargin)
+ %Usage: retval = value ()
+ %
+ %retval is of type mxArray *.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(6, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = incr(self,varargin)
+ %Usage: retval = incr (n = 1)
+ %
+ %n is of type size_t. n is of type size_t. retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(7, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = decr(self,varargin)
+ %Usage: retval = decr (n = 1)
+ %
+ %n is of type size_t. n is of type size_t. retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(8, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = distance(self,varargin)
+ %Usage: retval = distance (x)
+ %
+ %x is of type MatlabSwigIterator. x is of type MatlabSwigIterator. retval is of type ptrdiff_t.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(9, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = equal(self,varargin)
+ %Usage: retval = equal (x)
+ %
+ %x is of type MatlabSwigIterator. x is of type MatlabSwigIterator. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(10, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = copy(self,varargin)
+ %Usage: retval = copy ()
+ %
+ %retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(11, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = next(self,varargin)
+ %Usage: retval = next ()
+ %
+ %retval is of type mxArray *.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(12, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = previous(self,varargin)
+ %Usage: retval = previous ()
+ %
+ %retval is of type mxArray *.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(13, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = advance(self,varargin)
+ %Usage: retval = advance (n)
+ %
+ %n is of type ptrdiff_t. n is of type ptrdiff_t. retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(14, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eq(self,varargin)
+ %Usage: retval = eq (x)
+ %
+ %x is of type MatlabSwigIterator. x is of type MatlabSwigIterator. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(15, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ne(self,varargin)
+ %Usage: retval = ne (x)
+ %
+ %x is of type MatlabSwigIterator. x is of type MatlabSwigIterator. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(16, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = TODOincr(self,varargin)
+ %Usage: retval = TODOincr ()
+ %
+ %retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(17, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = TODOdecr(self,varargin)
+ %Usage: retval = TODOdecr ()
+ %
+ %retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(18, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = plus(self,varargin)
+ %Usage: retval = plus (n)
+ %
+ %n is of type ptrdiff_t. n is of type ptrdiff_t. retval is of type MatlabSwigIterator.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(19, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = minus(self,varargin)
+ %Usage: retval = minus (x)
+ %
+ %x is of type MatlabSwigIterator. x is of type MatlabSwigIterator. retval is of type ptrdiff_t.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(20, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = MatlabSwigIterator(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+ error('No matching constructor');
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MatrixCommon.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MatrixCommon.m
new file mode 100755
index 0000000..49ec4bd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/MatrixCommon.m
@@ -0,0 +1,651 @@
+classdef MatrixCommon < SwigRef
+ %Usage: MatrixCommon ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = all(varargin)
+ %Returns true only if every element in the matrix is true.
+ %
+ %
+ %Usage: retval = all (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(481, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = any(varargin)
+ %Returns true only if any element in the matrix is true.
+ %
+ %
+ %Usage: retval = any (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(482, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = adj(varargin)
+ %Matrix adjoint.
+ %
+ %
+ %Usage: retval = adj (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(483, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getMinor(varargin)
+ %Get the (i,j) minor matrix.
+ %
+ %
+ %Usage: retval = getMinor (x, i, j)
+ %
+ %x is of type SX. i is of type int. j is of type int. x is of type SX. i is of type int. j is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(484, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = cofactor(varargin)
+ %Get the (i,j) cofactor matrix.
+ %
+ %
+ %Usage: retval = cofactor (x, i, j)
+ %
+ %x is of type SX. i is of type int. j is of type int. x is of type SX. i is of type int. j is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(485, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = qr(varargin)
+ %QR factorization using the modified Gram-Schmidt algorithm More stable than
+ %the classical Gram-Schmidt, but may break down if the rows of A are nearly
+ %linearly dependent See J. Demmel: Applied Numerical Linear Algebra
+ %(algorithm 3.1.). Note that in SWIG, Q and R are returned by value.
+ %
+ %
+ %Usage: qr (A, output_Q, output_R)
+ %
+ %A is of type SX. output_Q is of type SX. output_R is of type SX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(486, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = chol(varargin)
+ %Obtain a Cholesky factorisation of a matrix Returns an upper triangular R
+ %such that R'R = A. Matrix A must be positive definite.
+ %
+ %At the moment, the algorithm is dense (Cholesky-Banachiewicz). There is an
+ %open ticket #1212 to make it sparse.
+ %
+ %
+ %Usage: retval = chol (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(487, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = norm_inf_mul(varargin)
+ %Inf-norm of a Matrix-Matrix product.
+ %
+ %
+ %Usage: retval = norm_inf_mul (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(488, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsify(varargin)
+ %Make a matrix sparse by removing numerical zeros.
+ %
+ %
+ %Usage: retval = sparsify (A, tol = 0)
+ %
+ %A is of type SX. tol is of type double. A is of type SX. tol is of type double. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(489, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = expand(varargin)
+ %Expand the expression as a weighted sum (with constant weights)
+ %
+ %
+ %Usage: expand (ex, output_weights, output_terms)
+ %
+ %ex is of type SX. output_weights is of type SX. output_terms is of type SX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(490, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = pw_const(varargin)
+ %Create a piecewise constant function Create a piecewise constant function
+ %with n=val.size() intervals.
+ %
+ %Inputs:
+ %
+ %Parameters:
+ %-----------
+ %
+ %t: a scalar variable (e.g. time)
+ %
+ %tval: vector with the discrete values of t at the interval transitions
+ %(length n-1)
+ %
+ %val: vector with the value of the function for each interval (length n)
+ %
+ %
+ %Usage: retval = pw_const (t, tval, val)
+ %
+ %t is of type SX. tval is of type SX. val is of type SX. t is of type SX. tval is of type SX. val is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(491, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = pw_lin(varargin)
+ %t a scalar variable (e.g. time)
+ %
+ %Create a piecewise linear function Create a piecewise linear function:
+ %
+ %Inputs: tval vector with the the discrete values of t (monotonically
+ %increasing) val vector with the corresponding function values (same length
+ %as tval)
+ %
+ %
+ %Usage: retval = pw_lin (t, tval, val)
+ %
+ %t is of type SX. tval is of type SX. val is of type SX. t is of type SX. tval is of type SX. val is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(492, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = heaviside(varargin)
+ %Heaviside function.
+ %
+ %\\[ \\begin {cases} H(x) = 0 & x<0 \\\\ H(x) = 1/2 & x=0 \\\\
+ %H(x) = 1 & x>0 \\\\ \\end {cases} \\]
+ %
+ %
+ %Usage: retval = heaviside (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(493, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = rectangle(varargin)
+ %rectangle function
+ %
+ %\\[ \\begin {cases} \\Pi(x) = 1 & |x| < 1/2 \\\\ \\Pi(x) = 1/2 &
+ %|x| = 1/2 \\\\ \\Pi(x) = 0 & |x| > 1/2 \\\\ \\end {cases} \\]
+ %
+ %Also called: gate function, block function, band function, pulse function,
+ %window function
+ %
+ %
+ %Usage: retval = rectangle (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(494, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triangle(varargin)
+ %triangle function
+ %
+ %\\[ \\begin {cases} \\Lambda(x) = 0 & |x| >= 1 \\\\ \\Lambda(x)
+ %= 1-|x| & |x| < 1 \\end {cases} \\]
+ %
+ %
+ %Usage: retval = triangle (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(495, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ramp(varargin)
+ %ramp function
+ %
+ %\\[ \\begin {cases} R(x) = 0 & x <= 1 \\\\ R(x) = x & x > 1 \\\\
+ %\\end {cases} \\]
+ %
+ %Also called: slope function
+ %
+ %
+ %Usage: retval = ramp (x)
+ %
+ %x is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(496, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = gauss_quadrature(varargin)
+ %> array(DataType) gauss_quadrature(array(DataType) f, array(DataType) x, array(DataType) a, array(DataType) b, int order=5)
+ %------------------------------------------------------------------------
+ %
+ %Integrate f from a to b using Gaussian quadrature with n points.
+ %
+ %> array(DataType) gauss_quadrature(array(DataType) f, array(DataType) x, array(DataType) a, array(DataType) b, int order, array(DataType) w)
+ %------------------------------------------------------------------------
+ %
+ %Matrix adjoint.
+ %
+ %
+ %Usage: retval = gauss_quadrature (f, x, a, b, order, w)
+ %
+ %f is of type SX. x is of type SX. a is of type SX. b is of type SX. order is of type int. w is of type SX. f is of type SX. x is of type SX. a is of type SX. b is of type SX. order is of type int. w is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(497, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = jacobianTimesVector(varargin)
+ %Calculate the Jacobian and multiply by a vector from the right This is
+ %equivalent to mul(jacobian(ex, arg), v) or mul(jacobian(ex, arg).T, v) for
+ %transpose_jacobian set to false and true respectively. If contrast to these
+ %expressions, it will use directional derivatives which is typically (but not
+ %necessarily) more efficient if the complete Jacobian is not needed and v has
+ %few rows.
+ %
+ %
+ %Usage: retval = jacobianTimesVector (ex, arg, v, transpose_jacobian = false)
+ %
+ %ex is of type SX. arg is of type SX. v is of type SX. transpose_jacobian is of type bool. ex is of type SX. arg is of type SX. v is of type SX. transpose_jacobian is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(498, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = taylor(varargin)
+ %univariate Taylor series expansion
+ %
+ %Calculate the Taylor expansion of expression 'ex' up to order 'order' with
+ %respect to variable 'x' around the point 'a'
+ %
+ %$(x)=f(a)+f'(a)(x-a)+f''(a)\\frac
+ %{(x-a)^2}{2!}+f'''(a)\\frac{(x-a)^3}{3!}+\\ldots$
+ %
+ %Example usage:
+ %
+ %::
+ %
+ %>> x
+ %
+ %
+ %
+ %
+ %Usage: retval = taylor (ex, x, a = 0, order = 1)
+ %
+ %ex is of type SX. x is of type SX. a is of type SX. order is of type int. ex is of type SX. x is of type SX. a is of type SX. order is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(499, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mtaylor(varargin)
+ %> array(DataType) mtaylor(array(DataType) ex, array(DataType) x, array(DataType) a, int order=1)
+ %------------------------------------------------------------------------
+ %
+ %multivariate Taylor series expansion
+ %
+ %Do Taylor expansions until the aggregated order of a term is equal to
+ %'order'. The aggregated order of $x^n y^m$ equals $n+m$.
+ %
+ %> array(DataType) mtaylor(array(DataType) ex, array(DataType) x, array(DataType) a, int order, [int ] order_contributions)
+ %------------------------------------------------------------------------
+ %
+ %multivariate Taylor series expansion
+ %
+ %Do Taylor expansions until the aggregated order of a term is equal to
+ %'order'. The aggregated order of $x^n y^m$ equals $n+m$.
+ %
+ %The argument order_contributions can denote how match each variable
+ %contributes to the aggregated order. If x=[x, y] and order_contributions=[1,
+ %2], then the aggregated order of $x^n y^m$ equals $1n+2m$.
+ %
+ %Example usage
+ %
+ %$ \\sin(b+a)+\\cos(b+a)(x-a)+\\cos(b+a)(y-b) $ $ y+x-(x^3+3y x^2+3 y^2
+ %x+y^3)/6 $ $ (-3 x^2 y-x^3)/6+y+x $
+ %
+ %
+ %Usage: retval = mtaylor (ex, x, a, order, order_contributions)
+ %
+ %ex is of type SX. x is of type SX. a is of type SX. order is of type int. order_contributions is of type std::vector< int,std::allocator< int > > const &. ex is of type SX. x is of type SX. a is of type SX. order is of type int. order_contributions is of type std::vector< int,std::allocator< int > > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(500, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = poly_coeff(varargin)
+ %extracts polynomial coefficients from an expression
+ %
+ %Parameters:
+ %-----------
+ %
+ %ex: Scalar expression that represents a polynomial
+ %
+ %x: Scalar symbol that the polynomial is build up with
+ %
+ %
+ %Usage: retval = poly_coeff (ex, x)
+ %
+ %ex is of type SX. x is of type SX. ex is of type SX. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(501, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = poly_roots(varargin)
+ %Attempts to find the roots of a polynomial.
+ %
+ %This will only work for polynomials up to order 3 It is assumed that the
+ %roots are real.
+ %
+ %
+ %Usage: retval = poly_roots (p)
+ %
+ %p is of type SX. p is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(502, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eig_symbolic(varargin)
+ %Attempts to find the eigenvalues of a symbolic matrix This will only work
+ %for up to 3x3 matrices.
+ %
+ %
+ %Usage: retval = eig_symbolic (m)
+ %
+ %m is of type SX. m is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(503, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = MatrixCommon(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(504, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(505, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NEGATED_ALIAS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NEGATED_ALIAS.m
new file mode 100755
index 0000000..d2501c0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NEGATED_ALIAS.m
@@ -0,0 +1,7 @@
+function v = NEGATED_ALIAS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 166);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NO_ALIAS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NO_ALIAS.m
new file mode 100755
index 0000000..f2e5543
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NO_ALIAS.m
@@ -0,0 +1,7 @@
+function v = NO_ALIAS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 164);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NUM_BUILT_IN_OPS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NUM_BUILT_IN_OPS.m
new file mode 100755
index 0000000..7609136
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NUM_BUILT_IN_OPS.m
@@ -0,0 +1,7 @@
+function v = NUM_BUILT_IN_OPS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 144);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NlpBuilder.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NlpBuilder.m
new file mode 100755
index 0000000..5637f70
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NlpBuilder.m
@@ -0,0 +1,143 @@
+classdef NlpBuilder < casadi.PrintNlpBuilder
+ %A symbolic NLP representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: nlp_builder.hpp
+ %Usage: NlpBuilder ()
+ %
+ methods
+ function v = x(self)
+ v = casadiMEX(1224, self);
+ end
+ function v = f(self)
+ v = casadiMEX(1225, self);
+ end
+ function v = g(self)
+ v = casadiMEX(1226, self);
+ end
+ function v = x_lb(self)
+ v = casadiMEX(1227, self);
+ end
+ function v = x_ub(self)
+ v = casadiMEX(1228, self);
+ end
+ function v = g_lb(self)
+ v = casadiMEX(1229, self);
+ end
+ function v = g_ub(self)
+ v = casadiMEX(1230, self);
+ end
+ function v = x_init(self)
+ v = casadiMEX(1231, self);
+ end
+ function v = lambda_init(self)
+ v = casadiMEX(1232, self);
+ end
+ function varargout = parseNL(self,varargin)
+ %Parse an AMPL och PyOmo NL-file.
+ %
+ %
+ %Usage: parseNL (filename, options = casadi::Dict())
+ %
+ %filename is of type std::string const &. options is of type casadi::Dict const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1233, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print a description of the object.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.NlpBuilder')
+ self = casadi.NlpBuilder(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1234, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Print a representation of the object.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.NlpBuilder')
+ self = casadi.NlpBuilder(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1235, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = NlpBuilder(varargin)
+ self@casadi.PrintNlpBuilder(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1236, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1237, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NlpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NlpSolver.m
new file mode 100755
index 0000000..c617f7b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/NlpSolver.m
@@ -0,0 +1,4936 @@
+classdef NlpSolver < casadi.Function
+ %NlpSolver.
+ %
+ %Solves the following parametric nonlinear program (NLP):
+ %
+ %::
+ %
+ % min F(x, p)
+ % x
+ %
+ % subject to
+ % LBX <= x <= UBX
+ % LBG <= G(x, p) <= UBG
+ % p == P
+ %
+ % nx: number of decision variables
+ % ng: number of constraints
+ % np: number of parameters
+ %
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::NlpSolverInput (NLP_SOLVER_NUM_IN = 8) [nlpSolverIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X0 | x0 | Decision variables, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_P | p | Value of fixed |
+ %| | | parameters (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBX | lbx | Decision variables |
+ %| | | lower bound (nx x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBX | ubx | Decision variables |
+ %| | | upper bound (nx x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBG | lbg | Constraints lower |
+ %| | | bound (ng x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBG | ubg | Constraints upper |
+ %| | | bound (ng x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X0 | lam_x0 | Lagrange multipliers |
+ %| | | for bounds on X, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G0 | lam_g0 | Lagrange multipliers |
+ %| | | for bounds on G, |
+ %| | | initial guess (ng x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::NlpSolverOutput (NLP_SOLVER_NUM_OUT = 6) [nlpSolverOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X | x | Decision variables at |
+ %| | | the optimal solution |
+ %| | | (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_F | f | Cost function value at |
+ %| | | the optimal solution |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_G | g | Constraints function |
+ %| | | at the optimal |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X | lam_x | Lagrange multipliers |
+ %| | | for bounds on X at the |
+ %| | | solution (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G | lam_g | Lagrange multipliers |
+ %| | | for bounds on G at the |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_P | lam_p | Lagrange multipliers |
+ %| | | for bounds on P at the |
+ %| | | solution (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode c |
+ %| | | | according to | asadi::NlpSo |
+ %| | | | a given | lverInternal |
+ %| | | | recipe (low- | |
+ %| | | | level) (qp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| eval_errors_ | OT_BOOLEAN | false | When errors | casadi::NlpS |
+ %| fatal | | | occur during | olverInterna |
+ %| | | | evaluation | l |
+ %| | | | of | |
+ %| | | | f,g,...,stop | |
+ %| | | | the | |
+ %| | | | iterations | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| expand | OT_BOOLEAN | false | Expand the | casadi::NlpS |
+ %| | | | NLP function | olverInterna |
+ %| | | | in terms of | l |
+ %| | | | scalar | |
+ %| | | | operations, | |
+ %| | | | i.e. MX->SX | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| grad_f | OT_FUNCTION | GenericType( | Function for | casadi::NlpS |
+ %| | | ) | calculating | olverInterna |
+ %| | | | the gradient | l |
+ %| | | | of the | |
+ %| | | | objective | |
+ %| | | | (column, aut | |
+ %| | | | ogenerated | |
+ %| | | | by default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| grad_f_optio | OT_DICT | GenericType( | Options for | casadi::NlpS |
+ %| ns | | ) | the autogene | olverInterna |
+ %| | | | rated | l |
+ %| | | | gradient of | |
+ %| | | | the | |
+ %| | | | objective. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| grad_lag | OT_FUNCTION | GenericType( | Function for | casadi::NlpS |
+ %| | | ) | calculating | olverInterna |
+ %| | | | the gradient | l |
+ %| | | | of the | |
+ %| | | | Lagrangian ( | |
+ %| | | | autogenerate | |
+ %| | | | d by | |
+ %| | | | default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| grad_lag_opt | OT_DICT | GenericType( | Options for | casadi::NlpS |
+ %| ions | | ) | the autogene | olverInterna |
+ %| | | | rated | l |
+ %| | | | gradient of | |
+ %| | | | the | |
+ %| | | | Lagrangian. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| hess_lag | OT_FUNCTION | GenericType( | Function for | casadi::NlpS |
+ %| | | ) | calculating | olverInterna |
+ %| | | | the Hessian | l |
+ %| | | | of the | |
+ %| | | | Lagrangian ( | |
+ %| | | | autogenerate | |
+ %| | | | d by | |
+ %| | | | default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| hess_lag_opt | OT_DICT | GenericType( | Options for | casadi::NlpS |
+ %| ions | | ) | the autogene | olverInterna |
+ %| | | | rated | l |
+ %| | | | Hessian of | |
+ %| | | | the | |
+ %| | | | Lagrangian. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ignore_check | OT_BOOLEAN | false | If set to | casadi::NlpS |
+ %| _vec | | | true, the | olverInterna |
+ %| | | | input shape | l |
+ %| | | | of F will | |
+ %| | | | not be | |
+ %| | | | checked. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| iteration_ca | OT_CALLBACK | GenericType( | A function | casadi::NlpS |
+ %| llback | | ) | that will be | olverInterna |
+ %| | | | called at | l |
+ %| | | | each | |
+ %| | | | iteration | |
+ %| | | | with the | |
+ %| | | | solver as | |
+ %| | | | input. Check | |
+ %| | | | documentatio | |
+ %| | | | n of | |
+ %| | | | Callback . | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| iteration_ca | OT_BOOLEAN | false | If set to | casadi::NlpS |
+ %| llback_ignor | | | true, errors | olverInterna |
+ %| e_errors | | | thrown by it | l |
+ %| | | | eration_call | |
+ %| | | | back will be | |
+ %| | | | ignored. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| iteration_ca | OT_INTEGER | 1 | Only call | casadi::NlpS |
+ %| llback_step | | | the callback | olverInterna |
+ %| | | | function | l |
+ %| | | | every few | |
+ %| | | | iterations. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_f | OT_FUNCTION | GenericType( | Function for | casadi::NlpS |
+ %| | | ) | calculating | olverInterna |
+ %| | | | the Jacobian | l |
+ %| | | | of the | |
+ %| | | | objective | |
+ %| | | | (sparse row, | |
+ %| | | | autogenerate | |
+ %| | | | d by | |
+ %| | | | default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_f_option | OT_DICT | GenericType( | Options for | casadi::NlpS |
+ %| s | | ) | the autogene | olverInterna |
+ %| | | | rated | l |
+ %| | | | Jacobian of | |
+ %| | | | the | |
+ %| | | | objective. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_g | OT_FUNCTION | GenericType( | Function for | casadi::NlpS |
+ %| | | ) | calculating | olverInterna |
+ %| | | | the Jacobian | l |
+ %| | | | of the | |
+ %| | | | constraints | |
+ %| | | | (autogenerat | |
+ %| | | | ed by | |
+ %| | | | default) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_g_option | OT_DICT | GenericType( | Options for | casadi::NlpS |
+ %| s | | ) | the autogene | olverInterna |
+ %| | | | rated | l |
+ %| | | | Jacobian of | |
+ %| | | | the | |
+ %| | | | constraints. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| warn_initial | OT_BOOLEAN | false | Warn if the | casadi::NlpS |
+ %| _bounds | | | initial | olverInterna |
+ %| | | | guess does | l |
+ %| | | | not satisfy | |
+ %| | | | LBX and UBX | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- ipopt
+ %
+ %- knitro
+ %
+ %- snopt
+ %
+ %- worhp
+ %
+ %- scpgen
+ %
+ %- sqpmethod
+ %
+ %- stabilizedsqp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %NlpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %ipopt
+ %-----
+ %
+ %
+ %
+ %When in warmstart mode, output NLP_SOLVER_LAM_X may be used as input
+ %
+ %NOTE: Even when max_iter == 0, it is not guaranteed that
+ %input(NLP_SOLVER_X0) == output(NLP_SOLVER_X). Indeed if bounds on X or
+ %constraints are unmet, they will differ.
+ %
+ %For a good tutorial on IPOPT,
+ %seehttp://drops.dagstuhl.de/volltexte/2009/2089/pdf/09061.WaechterAndreas.Paper.2089.pdf
+ %
+ %A good resource about the algorithms in IPOPT is: Wachter and L. T. Biegler,
+ %On the Implementation of an Interior-Point Filter Line-Search Algorithm for
+ %Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp.
+ %25-57, 2006 (As Research Report RC 23149, IBM T. J. Watson Research Center,
+ %Yorktown, USA
+ %
+ %Caveats: with default options, multipliers for the decision variables are
+ %wrong for equality constraints. Change the 'fixed_variable_treatment' to
+ %'make_constraint' or 'relax_bounds' to obtain correct results.
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| accept_after_ma | OT_INTEGER | -1 | Accept a trial |
+ %| x_steps | | | point after |
+ %| | | | maximal this |
+ %| | | | number of |
+ %| | | | steps. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| accept_every_tr | OT_STRING | no | Always accept |
+ %| ial_step | | | the first trial |
+ %| | | | step. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| acceptable_comp | OT_REAL | 0.010 | "Acceptance" |
+ %| l_inf_tol | | | threshold for |
+ %| | | | the |
+ %| | | | complementarity |
+ %| | | | conditions. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| acceptable_cons | OT_REAL | 0.010 | "Acceptance" |
+ %| tr_viol_tol | | | threshold for |
+ %| | | | the constraint |
+ %| | | | violation. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| acceptable_dual | OT_REAL | 1.000e+10 | "Acceptance" |
+ %| _inf_tol | | | threshold for |
+ %| | | | the dual |
+ %| | | | infeasibility. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| acceptable_iter | OT_INTEGER | 15 | Number of |
+ %| | | | "acceptable" |
+ %| | | | iterates before |
+ %| | | | triggering |
+ %| | | | termination. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| acceptable_obj_ | OT_REAL | 1.000e+20 | "Acceptance" |
+ %| change_tol | | | stopping |
+ %| | | | criterion based |
+ %| | | | on objective |
+ %| | | | function |
+ %| | | | change. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| acceptable_tol | OT_REAL | 0.000 | "Acceptable" |
+ %| | | | convergence |
+ %| | | | tolerance |
+ %| | | | (relative). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_glo | OT_STRING | obj-constr- | Globalization |
+ %| balization | | filter | strategy for |
+ %| | | | the adaptive mu |
+ %| | | | selection mode. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_kkt | OT_STRING | 2-norm-squared | Norm used for |
+ %| _norm_type | | | the KKT error |
+ %| | | | in the adaptive |
+ %| | | | mu |
+ %| | | | globalization |
+ %| | | | strategies. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_kkt | OT_REAL | 1.000 | Sufficient |
+ %| error_red_fact | | | decrease factor |
+ %| | | | for "kkt-error" |
+ %| | | | globalization |
+ %| | | | strategy. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_kkt | OT_INTEGER | 4 | Maximum number |
+ %| error_red_iters | | | of iterations |
+ %| | | | requiring |
+ %| | | | sufficient |
+ %| | | | progress. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_mon | OT_REAL | 0.800 | Determines the |
+ %| otone_init_fact | | | initial value |
+ %| or | | | of the barrier |
+ %| | | | parameter when |
+ %| | | | switching to |
+ %| | | | the monotone |
+ %| | | | mode. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_res | OT_STRING | no | Indicates if |
+ %| tore_previous_i | | | the previous |
+ %| terate | | | iterate should |
+ %| | | | be restored if |
+ %| | | | the monotone |
+ %| | | | mode is |
+ %| | | | entered. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| adaptive_mu_saf | OT_REAL | 0 | (see IPOPT |
+ %| eguard_factor | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| alpha_for_y | OT_STRING | primal | Method to |
+ %| | | | determine the |
+ %| | | | step size for |
+ %| | | | constraint |
+ %| | | | multipliers. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| alpha_for_y_tol | OT_REAL | 10 | Tolerance for |
+ %| | | | switching to |
+ %| | | | full equality |
+ %| | | | multiplier |
+ %| | | | steps. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| alpha_min_frac | OT_REAL | 0.050 | Safety factor |
+ %| | | | for the minimal |
+ %| | | | step size |
+ %| | | | (before |
+ %| | | | switching to |
+ %| | | | restoration |
+ %| | | | phase). (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| alpha_red_facto | OT_REAL | 0.500 | Fractional |
+ %| r | | | reduction of |
+ %| | | | the trial step |
+ %| | | | size in the |
+ %| | | | backtracking |
+ %| | | | line search. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| barrier_tol_fac | OT_REAL | 10 | Factor for mu |
+ %| tor | | | in barrier stop |
+ %| | | | test. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| bound_frac | OT_REAL | 0.010 | Desired minimum |
+ %| | | | relative |
+ %| | | | distance from |
+ %| | | | the initial |
+ %| | | | point to bound. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| bound_mult_init | OT_STRING | constant | Initialization |
+ %| _method | | | method for |
+ %| | | | bound |
+ %| | | | multipliers |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| bound_mult_init | OT_REAL | 1 | Initial value |
+ %| _val | | | for the bound |
+ %| | | | multipliers. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| bound_mult_rese | OT_REAL | 1000 | Threshold for |
+ %| t_threshold | | | resetting bound |
+ %| | | | multipliers |
+ %| | | | after the |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| bound_push | OT_REAL | 0.010 | Desired minimum |
+ %| | | | absolute |
+ %| | | | distance from |
+ %| | | | the initial |
+ %| | | | point to bound. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| bound_relax_fac | OT_REAL | 0.000 | Factor for |
+ %| tor | | | initial |
+ %| | | | relaxation of |
+ %| | | | the bounds. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| check_derivativ | OT_STRING | no | Indicates |
+ %| es_for_naninf | | | whether it is |
+ %| | | | desired to |
+ %| | | | check for |
+ %| | | | Nan/Inf in |
+ %| | | | derivative |
+ %| | | | matrices (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| chi_cup | OT_REAL | 1.500 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| chi_hat | OT_REAL | 2 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| chi_tilde | OT_REAL | 5 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| compl_inf_tol | OT_REAL | 0.000 | Desired |
+ %| | | | threshold for |
+ %| | | | the |
+ %| | | | complementarity |
+ %| | | | conditions. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| con_integer_md | OT_DICT | None | Integer |
+ %| | | | metadata (a |
+ %| | | | dictionary with |
+ %| | | | lists of |
+ %| | | | integers) about |
+ %| | | | constraints to |
+ %| | | | be passed to |
+ %| | | | IPOPT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| con_numeric_md | OT_DICT | None | Numeric |
+ %| | | | metadata (a |
+ %| | | | dictionary with |
+ %| | | | lists of reals) |
+ %| | | | about |
+ %| | | | constraints to |
+ %| | | | be passed to |
+ %| | | | IPOPT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| con_string_md | OT_DICT | None | String metadata |
+ %| | | | (a dictionary |
+ %| | | | with lists of |
+ %| | | | strings) about |
+ %| | | | constraints to |
+ %| | | | be passed to |
+ %| | | | IPOPT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| constr_mult_ini | OT_REAL | 1000 | Maximum allowed |
+ %| t_max | | | least-square |
+ %| | | | guess of |
+ %| | | | constraint |
+ %| | | | multipliers. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| constr_mult_res | OT_REAL | 0 | Threshold for |
+ %| et_threshold | | | resetting |
+ %| | | | equality and |
+ %| | | | inequality |
+ %| | | | multipliers |
+ %| | | | after |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| constr_viol_tol | OT_REAL | 0.000 | Desired |
+ %| | | | threshold for |
+ %| | | | the constraint |
+ %| | | | violation. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| constraint_viol | OT_STRING | 1-norm | Norm to be used |
+ %| ation_norm_type | | | for the |
+ %| | | | constraint |
+ %| | | | violation in |
+ %| | | | the line |
+ %| | | | search. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| corrector_compl | OT_REAL | 1 | Complementarity |
+ %| _avrg_red_fact | | | tolerance |
+ %| | | | factor for |
+ %| | | | accepting |
+ %| | | | corrector step |
+ %| | | | (unsupported!). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| corrector_type | OT_STRING | none | The type of |
+ %| | | | corrector steps |
+ %| | | | that should be |
+ %| | | | taken |
+ %| | | | (unsupported!). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| delta | OT_REAL | 1 | Multiplier for |
+ %| | | | constraint |
+ %| | | | violation in |
+ %| | | | the switching |
+ %| | | | rule. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| delta_y_max | OT_REAL | 1.000e+12 | a parameter |
+ %| | | | used to check |
+ %| | | | if the fast |
+ %| | | | direction can |
+ %| | | | be used asthe |
+ %| | | | line search |
+ %| | | | direction (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dependency_dete | OT_STRING | no | Indicates if |
+ %| ction_with_rhs | | | the right hand |
+ %| | | | sides of the |
+ %| | | | constraints |
+ %| | | | should be |
+ %| | | | considered |
+ %| | | | during |
+ %| | | | dependency |
+ %| | | | detection (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dependency_dete | OT_STRING | none | Indicates which |
+ %| ctor | | | linear solver |
+ %| | | | should be used |
+ %| | | | to detect |
+ %| | | | linearly |
+ %| | | | dependent |
+ %| | | | equality |
+ %| | | | constraints. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| derivative_test | OT_STRING | none | Enable |
+ %| | | | derivative |
+ %| | | | checker (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| derivative_test | OT_INTEGER | -2 | Index of first |
+ %| _first_index | | | quantity to be |
+ %| | | | checked by |
+ %| | | | derivative |
+ %| | | | checker (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| derivative_test | OT_REAL | 0.000 | Size of the |
+ %| _perturbation | | | finite |
+ %| | | | difference |
+ %| | | | perturbation in |
+ %| | | | derivative |
+ %| | | | test. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| derivative_test | OT_STRING | no | Indicates |
+ %| _print_all | | | whether |
+ %| | | | information for |
+ %| | | | all estimated |
+ %| | | | derivatives |
+ %| | | | should be |
+ %| | | | printed. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| derivative_test | OT_REAL | 0.000 | Threshold for |
+ %| _tol | | | indicating |
+ %| | | | wrong |
+ %| | | | derivative. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| diverging_itera | OT_REAL | 1.000e+20 | Threshold for |
+ %| tes_tol | | | maximal value |
+ %| | | | of primal |
+ %| | | | iterates. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dual_inf_tol | OT_REAL | 1 | Desired |
+ %| | | | threshold for |
+ %| | | | the dual |
+ %| | | | infeasibility. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsilon_c | OT_REAL | 0.010 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eta_min | OT_REAL | 10 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eta_penalty | OT_REAL | 0.000 | Relaxation |
+ %| | | | factor in the |
+ %| | | | Armijo |
+ %| | | | condition for |
+ %| | | | the penalty |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eta_phi | OT_REAL | 0.000 | Relaxation |
+ %| | | | factor in the |
+ %| | | | Armijo |
+ %| | | | condition. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| evaluate_orig_o | OT_STRING | yes | Determines if |
+ %| bj_at_resto_tri | | | the original |
+ %| al | | | objective |
+ %| | | | function should |
+ %| | | | be evaluated at |
+ %| | | | restoration |
+ %| | | | phase trial |
+ %| | | | points. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| expect_infeasib | OT_STRING | no | Enable |
+ %| le_problem | | | heuristics to |
+ %| | | | quickly detect |
+ %| | | | an infeasible |
+ %| | | | problem. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| expect_infeasib | OT_REAL | 0.001 | Threshold for |
+ %| le_problem_ctol | | | disabling "expe |
+ %| | | | ct_infeasible_p |
+ %| | | | roblem" option. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| expect_infeasib | OT_REAL | 100000000 | Multiplier |
+ %| le_problem_ytol | | | threshold for |
+ %| | | | activating "exp |
+ %| | | | ect_infeasible_ |
+ %| | | | problem" |
+ %| | | | option. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fast_des_fact | OT_REAL | 0.100 | a parameter |
+ %| | | | used to check |
+ %| | | | if the fast |
+ %| | | | direction can |
+ %| | | | be used asthe |
+ %| | | | line search |
+ %| | | | direction (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fast_step_compu | OT_STRING | no | Indicates if |
+ %| tation | | | the linear |
+ %| | | | system should |
+ %| | | | be solved |
+ %| | | | quickly. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| file_print_leve | OT_INTEGER | 5 | Verbosity level |
+ %| l | | | for output |
+ %| | | | file. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| filter_margin_f | OT_REAL | 0.000 | Factor |
+ %| act | | | determining |
+ %| | | | width of margin |
+ %| | | | for obj-constr- |
+ %| | | | filter adaptive |
+ %| | | | globalization |
+ %| | | | strategy. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| filter_max_marg | OT_REAL | 1 | Maximum width |
+ %| in | | | of margin in |
+ %| | | | obj-constr- |
+ %| | | | filter adaptive |
+ %| | | | globalization |
+ %| | | | strategy. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| filter_reset_tr | OT_INTEGER | 5 | Number of |
+ %| igger | | | iterations that |
+ %| | | | trigger the |
+ %| | | | filter reset. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| findiff_perturb | OT_REAL | 0.000 | Size of the |
+ %| ation | | | finite |
+ %| | | | difference |
+ %| | | | perturbation |
+ %| | | | for derivative |
+ %| | | | approximation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| first_hessian_p | OT_REAL | 0.000 | Size of first |
+ %| erturbation | | | x-s |
+ %| | | | perturbation |
+ %| | | | tried. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fixed_mu_oracle | OT_STRING | average_compl | Oracle for the |
+ %| | | | barrier |
+ %| | | | parameter when |
+ %| | | | switching to |
+ %| | | | fixed mode. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| fixed_variable_ | OT_STRING | make_parameter | Determines how |
+ %| treatment | | | fixed variables |
+ %| | | | should be |
+ %| | | | handled. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma_hat | OT_REAL | 0.040 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma_phi | OT_REAL | 0.000 | Relaxation |
+ %| | | | factor in the |
+ %| | | | filter margin |
+ %| | | | for the barrier |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma_theta | OT_REAL | 0.000 | Relaxation |
+ %| | | | factor in the |
+ %| | | | filter margin |
+ %| | | | for the |
+ %| | | | constraint |
+ %| | | | violation. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma_tilde | OT_REAL | 4 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hessian_approxi | OT_STRING | exact | Indicates what |
+ %| mation | | | Hessian |
+ %| | | | information is |
+ %| | | | to be used. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hessian_approxi | OT_STRING | nonlinear- | Indicates in |
+ %| mation_space | | variables | which subspace |
+ %| | | | the Hessian |
+ %| | | | information is |
+ %| | | | to be |
+ %| | | | approximated. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hessian_constan | OT_STRING | no | Indicates |
+ %| t | | | whether the |
+ %| | | | problem is a |
+ %| | | | quadratic |
+ %| | | | problem (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| honor_original_ | OT_STRING | yes | Indicates |
+ %| bounds | | | whether final |
+ %| | | | points should |
+ %| | | | be projected |
+ %| | | | into original |
+ %| | | | bounds. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| inf_pr_output | OT_STRING | original | Determines what |
+ %| | | | value is |
+ %| | | | printed in the |
+ %| | | | "inf_pr" output |
+ %| | | | column. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| jac_c_constant | OT_STRING | no | Indicates |
+ %| | | | whether all |
+ %| | | | equality |
+ %| | | | constraints are |
+ %| | | | linear (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| jac_d_constant | OT_STRING | no | Indicates |
+ %| | | | whether all |
+ %| | | | inequality |
+ %| | | | constraints are |
+ %| | | | linear (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| jacobian_approx | OT_STRING | exact | Specifies |
+ %| imation | | | technique to |
+ %| | | | compute |
+ %| | | | constraint |
+ %| | | | Jacobian (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| jacobian_regula | OT_REAL | 0.250 | Exponent for mu |
+ %| rization_expone | | | in the |
+ %| nt | | | regularization |
+ %| | | | for rank- |
+ %| | | | deficient |
+ %| | | | constraint |
+ %| | | | Jacobians. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| jacobian_regula | OT_REAL | 0.000 | Size of the |
+ %| rization_value | | | regularization |
+ %| | | | for rank- |
+ %| | | | deficient |
+ %| | | | constraint |
+ %| | | | Jacobians. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| kappa_d | OT_REAL | 0.000 | Weight for |
+ %| | | | linear damping |
+ %| | | | term (to handle |
+ %| | | | one-sided |
+ %| | | | bounds). (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| kappa_sigma | OT_REAL | 1.000e+10 | Factor limiting |
+ %| | | | the deviation |
+ %| | | | of dual |
+ %| | | | variables from |
+ %| | | | primal |
+ %| | | | estimates. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| kappa_soc | OT_REAL | 0.990 | Factor in the |
+ %| | | | sufficient |
+ %| | | | reduction rule |
+ %| | | | for second |
+ %| | | | order |
+ %| | | | correction. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| kappa_x_dis | OT_REAL | 100 | a parameter |
+ %| | | | used to check |
+ %| | | | if the fast |
+ %| | | | direction can |
+ %| | | | be used asthe |
+ %| | | | line search |
+ %| | | | direction (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| kappa_y_dis | OT_REAL | 10000 | a parameter |
+ %| | | | used to check |
+ %| | | | if the fast |
+ %| | | | direction can |
+ %| | | | be used asthe |
+ %| | | | line search |
+ %| | | | direction (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| least_square_in | OT_STRING | no | Least square |
+ %| it_duals | | | initialization |
+ %| | | | of all dual |
+ %| | | | variables (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| least_square_in | OT_STRING | no | Least square |
+ %| it_primal | | | initialization |
+ %| | | | of the primal |
+ %| | | | variables (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_STRING | sherman- | Strategy for |
+ %| aug_solver | | morrison | solving the |
+ %| | | | augmented |
+ %| | | | system for low- |
+ %| | | | rank Hessian. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_REAL | 1 | Value for B0 in |
+ %| init_val | | | low-rank |
+ %| | | | update. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_REAL | 100000000 | Upper bound on |
+ %| init_val_max | | | value for B0 in |
+ %| | | | low-rank |
+ %| | | | update. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_REAL | 0.000 | Lower bound on |
+ %| init_val_min | | | value for B0 in |
+ %| | | | low-rank |
+ %| | | | update. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_STRING | scalar1 | Initialization |
+ %| initialization | | | strategy for |
+ %| | | | the limited |
+ %| | | | memory quasi- |
+ %| | | | Newton |
+ %| | | | approximation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_INTEGER | 6 | Maximum size of |
+ %| max_history | | | the history for |
+ %| | | | the limited |
+ %| | | | quasi-Newton |
+ %| | | | Hessian |
+ %| | | | approximation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_INTEGER | 2 | Threshold for |
+ %| max_skipping | | | successive |
+ %| | | | iterations |
+ %| | | | where update is |
+ %| | | | skipped. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_STRING | no | Determines if |
+ %| special_for_res | | | the quasi- |
+ %| to | | | Newton updates |
+ %| | | | should be |
+ %| | | | special during |
+ %| | | | the restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| limited_memory_ | OT_STRING | bfgs | Quasi-Newton |
+ %| update_type | | | update formula |
+ %| | | | for the limited |
+ %| | | | memory |
+ %| | | | approximation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| line_search_met | OT_STRING | filter | Globalization |
+ %| hod | | | method used in |
+ %| | | | backtracking |
+ %| | | | line search |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_scaling_ | OT_STRING | yes | Flag indicating |
+ %| on_demand | | | that linear |
+ %| | | | scaling is only |
+ %| | | | done if it |
+ %| | | | seems required. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_solver | OT_STRING | mumps | Linear solver |
+ %| | | | used for step |
+ %| | | | computations. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| linear_system_s | OT_STRING | none | Method for |
+ %| caling | | | scaling the |
+ %| | | | linear system. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_ignore_sin | OT_STRING | no | Enables MA27's |
+ %| gularity | | | ability to |
+ %| | | | solve a linear |
+ %| | | | system even if |
+ %| | | | the matrix is |
+ %| | | | singular. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_la_init_fa | OT_REAL | 5 | Real workspace |
+ %| ctor | | | memory for |
+ %| | | | MA27. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_liw_init_f | OT_REAL | 5 | Integer |
+ %| actor | | | workspace |
+ %| | | | memory for |
+ %| | | | MA27. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_meminc_fac | OT_REAL | 10 | Increment |
+ %| tor | | | factor for |
+ %| | | | workspace size |
+ %| | | | for MA27. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_pivtol | OT_REAL | 0.000 | Pivot tolerance |
+ %| | | | for the linear |
+ %| | | | solver MA27. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_pivtolmax | OT_REAL | 0.000 | Maximum pivot |
+ %| | | | tolerance for |
+ %| | | | the linear |
+ %| | | | solver MA27. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma27_skip_inert | OT_STRING | no | Always pretend |
+ %| ia_check | | | inertia is |
+ %| | | | correct. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma28_pivtol | OT_REAL | 0.010 | Pivot tolerance |
+ %| | | | for linear |
+ %| | | | solver MA28. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_automatic_ | OT_STRING | yes | Controls MA57 |
+ %| scaling | | | automatic |
+ %| | | | scaling (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_block_size | OT_INTEGER | 16 | Controls block |
+ %| | | | size used by |
+ %| | | | Level 3 BLAS in |
+ %| | | | MA57BD (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_node_amalg | OT_INTEGER | 16 | Node |
+ %| amation | | | amalgamation |
+ %| | | | parameter (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_pivot_orde | OT_INTEGER | 5 | Controls pivot |
+ %| r | | | order in MA57 |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_pivtol | OT_REAL | 0.000 | Pivot tolerance |
+ %| | | | for the linear |
+ %| | | | solver MA57. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_pivtolmax | OT_REAL | 0.000 | Maximum pivot |
+ %| | | | tolerance for |
+ %| | | | the linear |
+ %| | | | solver MA57. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_pre_alloc | OT_REAL | 1.050 | Safety factor |
+ %| | | | for work space |
+ %| | | | memory |
+ %| | | | allocation for |
+ %| | | | the linear |
+ %| | | | solver MA57. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma57_small_pivo | OT_INTEGER | 0 | If set to 1, |
+ %| t_flag | | | then when small |
+ %| | | | entries defined |
+ %| | | | by CNTL(2) are |
+ %| | | | detected they |
+ %| | | | are removed and |
+ %| | | | the |
+ %| | | | corresponding |
+ %| | | | pivots placed |
+ %| | | | at the end of |
+ %| | | | the |
+ %| | | | factorization. |
+ %| | | | This can be |
+ %| | | | particularly |
+ %| | | | efficient if |
+ %| | | | the matrix is |
+ %| | | | highly rank |
+ %| | | | deficient. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma86_nemin | OT_INTEGER | 32 | Node |
+ %| | | | Amalgamation |
+ %| | | | parameter (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma86_print_leve | OT_INTEGER | 0 | Debug printing |
+ %| l | | | level for the |
+ %| | | | linear solver |
+ %| | | | MA86 (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma86_small | OT_REAL | 0.000 | Zero Pivot |
+ %| | | | Threshold (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma86_static | OT_REAL | 0 | Static Pivoting |
+ %| | | | Threshold (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma86_u | OT_REAL | 0.000 | Pivoting |
+ %| | | | Threshold (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ma86_umax | OT_REAL | 0.000 | Maximum |
+ %| | | | Pivoting |
+ %| | | | Threshold (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| magic_steps | OT_STRING | no | Enables magic |
+ %| | | | steps. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_cpu_time | OT_REAL | 1000000 | Maximum number |
+ %| | | | of CPU seconds. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_filter_rese | OT_INTEGER | 5 | Maximal allowed |
+ %| ts | | | number of |
+ %| | | | filter resets |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_hessian_per | OT_REAL | 1.000e+20 | Maximum value |
+ %| turbation | | | of |
+ %| | | | regularization |
+ %| | | | parameter for |
+ %| | | | handling |
+ %| | | | negative |
+ %| | | | curvature. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter | OT_INTEGER | 3000 | Maximum number |
+ %| | | | of iterations. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_refinement_ | OT_INTEGER | 10 | Maximum number |
+ %| steps | | | of iterative |
+ %| | | | refinement |
+ %| | | | steps per |
+ %| | | | linear system |
+ %| | | | solve. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_resto_iter | OT_INTEGER | 3000000 | Maximum number |
+ %| | | | of successive |
+ %| | | | iterations in |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_soc | OT_INTEGER | 4 | Maximum number |
+ %| | | | of second order |
+ %| | | | correction |
+ %| | | | trial steps at |
+ %| | | | each iteration. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_soft_resto_ | OT_INTEGER | 10 | Maximum number |
+ %| iters | | | of iterations |
+ %| | | | performed |
+ %| | | | successively in |
+ %| | | | soft |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mehrotra_algori | OT_STRING | no | Indicates if we |
+ %| thm | | | want to do |
+ %| | | | Mehrotra's |
+ %| | | | algorithm. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| min_alpha_prima | OT_REAL | 0.000 | LIFENG WRITES |
+ %| l | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| min_hessian_per | OT_REAL | 0.000 | Smallest |
+ %| turbation | | | perturbation of |
+ %| | | | the Hessian |
+ %| | | | block. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| min_refinement_ | OT_INTEGER | 1 | Minimum number |
+ %| steps | | | of iterative |
+ %| | | | refinement |
+ %| | | | steps per |
+ %| | | | linear system |
+ %| | | | solve. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_allow_fast_m | OT_STRING | yes | Allow skipping |
+ %| onotone_decreas | | | of barrier |
+ %| e | | | problem if |
+ %| | | | barrier test is |
+ %| | | | already met. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_init | OT_REAL | 0.100 | Initial value |
+ %| | | | for the barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_linear_decre | OT_REAL | 0.200 | Determines |
+ %| ase_factor | | | linear decrease |
+ %| | | | rate of barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_max | OT_REAL | 100000 | Maximum value |
+ %| | | | for barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_max_fact | OT_REAL | 1000 | Factor for |
+ %| | | | initialization |
+ %| | | | of maximum |
+ %| | | | value for |
+ %| | | | barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_min | OT_REAL | 0.000 | Minimum value |
+ %| | | | for barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_oracle | OT_STRING | quality- | Oracle for a |
+ %| | | function | new barrier |
+ %| | | | parameter in |
+ %| | | | the adaptive |
+ %| | | | strategy. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_strategy | OT_STRING | monotone | Update strategy |
+ %| | | | for barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_superlinear_ | OT_REAL | 1.500 | Determines |
+ %| decrease_power | | | superlinear |
+ %| | | | decrease rate |
+ %| | | | of barrier |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mu_target | OT_REAL | 0 | Desired value |
+ %| | | | of complementar |
+ %| | | | ity. (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mult_diverg_fea | OT_REAL | 0.000 | tolerance for |
+ %| sibility_tol | | | deciding if the |
+ %| | | | multipliers are |
+ %| | | | diverging (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mult_diverg_y_t | OT_REAL | 100000000 | tolerance for |
+ %| ol | | | deciding if the |
+ %| | | | multipliers are |
+ %| | | | diverging (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_dep_tol | OT_REAL | -1 | Pivot threshold |
+ %| | | | for detection |
+ %| | | | of linearly |
+ %| | | | dependent |
+ %| | | | constraints in |
+ %| | | | MUMPS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_mem_perce | OT_INTEGER | 1000 | Percentage |
+ %| nt | | | increase in the |
+ %| | | | estimated |
+ %| | | | working space |
+ %| | | | for MUMPS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_permuting | OT_INTEGER | 7 | Controls |
+ %| _scaling | | | permuting and |
+ %| | | | scaling in |
+ %| | | | MUMPS (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_pivot_ord | OT_INTEGER | 7 | Controls pivot |
+ %| er | | | order in MUMPS |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_pivtol | OT_REAL | 0.000 | Pivot tolerance |
+ %| | | | for the linear |
+ %| | | | solver MUMPS. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_pivtolmax | OT_REAL | 0.100 | Maximum pivot |
+ %| | | | tolerance for |
+ %| | | | the linear |
+ %| | | | solver MUMPS. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mumps_scaling | OT_INTEGER | 77 | Controls |
+ %| | | | scaling in |
+ %| | | | MUMPS (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| neg_curv_test_t | OT_REAL | 0 | Tolerance for |
+ %| ol | | | heuristic to |
+ %| | | | ignore wrong |
+ %| | | | inertia. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| never_use_fact_ | OT_STRING | no | Toggle to |
+ %| cgpen_direction | | | switch off the |
+ %| | | | fast Chen- |
+ %| | | | Goldfarb |
+ %| | | | direction (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| never_use_piece | OT_STRING | no | Toggle to |
+ %| wise_penalty_ls | | | switch off the |
+ %| | | | piecewise |
+ %| | | | penalty method |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_lower_bound | OT_REAL | -1.000e+19 | any bound less |
+ %| _inf | | | or equal this |
+ %| | | | value will be |
+ %| | | | considered -inf |
+ %| | | | (i.e. not lower |
+ %| | | | bounded). (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_scaling_con | OT_REAL | 0 | Target value |
+ %| str_target_grad | | | for constraint |
+ %| ient | | | function |
+ %| | | | gradient size. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_scaling_max | OT_REAL | 100 | Maximum |
+ %| _gradient | | | gradient after |
+ %| | | | NLP scaling. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_scaling_met | OT_STRING | gradient-based | Select the |
+ %| hod | | | technique used |
+ %| | | | for scaling the |
+ %| | | | NLP. (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_scaling_min | OT_REAL | 0.000 | Minimum value |
+ %| _value | | | of gradient- |
+ %| | | | based scaling |
+ %| | | | values. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_scaling_obj | OT_REAL | 0 | Target value |
+ %| _target_gradien | | | for objective |
+ %| t | | | function |
+ %| | | | gradient size. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nlp_upper_bound | OT_REAL | 1.000e+19 | any bound |
+ %| _inf | | | greater or this |
+ %| | | | value will be |
+ %| | | | considered +inf |
+ %| | | | (i.e. not upper |
+ %| | | | bounded). (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nu_inc | OT_REAL | 0.000 | Increment of |
+ %| | | | the penalty |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nu_init | OT_REAL | 0.000 | Initial value |
+ %| | | | of the penalty |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| num_linear_vari | OT_INTEGER | 0 | Number of |
+ %| ables | | | linear |
+ %| | | | variables (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| obj_max_inc | OT_REAL | 5 | Determines the |
+ %| | | | upper bound on |
+ %| | | | the acceptable |
+ %| | | | increase of |
+ %| | | | barrier |
+ %| | | | objective |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| obj_scaling_fac | OT_REAL | 1 | Scaling factor |
+ %| tor | | | for the |
+ %| | | | objective |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| option_file_nam | OT_STRING | | File name of |
+ %| e | | | options file |
+ %| | | | (to overwrite |
+ %| | | | default). (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| output_file | OT_STRING | | File name of |
+ %| | | | desired output |
+ %| | | | file (leave |
+ %| | | | unset for no |
+ %| | | | file output). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_co | OT_INTEGER | 5000 | Maximum Size of |
+ %| arse_size | | | Coarse Grid |
+ %| | | | Matrix (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_dr | OT_REAL | 0.500 | dropping value |
+ %| opping_factor | | | for incomplete |
+ %| | | | factor (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_dr | OT_REAL | 0.100 | dropping value |
+ %| opping_schur | | | for sparsify |
+ %| | | | schur |
+ %| | | | complement |
+ %| | | | factor (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_in | OT_REAL | 5000000 | (see IPOPT |
+ %| verse_norm_fact | | | documentation) |
+ %| or | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_ma | OT_INTEGER | 10 | Maximum Size of |
+ %| x_levels | | | Grid Levels |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_ma | OT_INTEGER | 10000000 | max fill for |
+ %| x_row_fill | | | each row (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iter_re | OT_REAL | 0.000 | Relative |
+ %| lative_tol | | | Residual |
+ %| | | | Convergence |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_iterati | OT_STRING | no | Switch on |
+ %| ve | | | iterative |
+ %| | | | solver in |
+ %| | | | Pardiso library |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_matchin | OT_STRING | complete+2x2 | Matching |
+ %| g_strategy | | | strategy to be |
+ %| | | | used by Pardiso |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_max_dro | OT_INTEGER | 4 | Maximal number |
+ %| ptol_correction | | | of decreases of |
+ %| s | | | drop tolerance |
+ %| | | | during one |
+ %| | | | solve. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_max_ite | OT_INTEGER | 500 | Maximum number |
+ %| r | | | of Krylov- |
+ %| | | | Subspace |
+ %| | | | Iteration (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_msglvl | OT_INTEGER | 0 | Pardiso message |
+ %| | | | level (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_out_of_ | OT_INTEGER | 0 | Enables out-of- |
+ %| core_power | | | core variant of |
+ %| | | | Pardiso (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_redo_sy | OT_STRING | no | Toggle for |
+ %| mbolic_fact_onl | | | handling case |
+ %| y_if_inertia_wr | | | when elements |
+ %| ong | | | were perturbed |
+ %| | | | by Pardiso. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_repeate | OT_STRING | no | Interpretation |
+ %| d_perturbation_ | | | of perturbed |
+ %| means_singular | | | elements. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pardiso_skip_in | OT_STRING | no | Always pretend |
+ %| ertia_check | | | inertia is |
+ %| | | | correct. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pass_nonlinear_ | OT_BOOLEAN | False | n/a |
+ %| variables | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pen_des_fact | OT_REAL | 0.200 | a parameter |
+ %| | | | used in penalty |
+ %| | | | parameter |
+ %| | | | computation |
+ %| | | | (for Chen- |
+ %| | | | Goldfarb line |
+ %| | | | search). (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pen_init_fac | OT_REAL | 50 | a parameter |
+ %| | | | used to choose |
+ %| | | | initial penalty |
+ %| | | | parameterswhen |
+ %| | | | the regularized |
+ %| | | | Newton method |
+ %| | | | is used. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| pen_theta_max_f | OT_REAL | 10000 | Determines |
+ %| act | | | upper bound for |
+ %| | | | constraint |
+ %| | | | violation in |
+ %| | | | the filter. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| penalty_init_ma | OT_REAL | 100000 | Maximal value |
+ %| x | | | for the intial |
+ %| | | | penalty |
+ %| | | | parameter (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| penalty_init_mi | OT_REAL | 1 | Minimal value |
+ %| n | | | for the intial |
+ %| | | | penalty |
+ %| | | | parameter for |
+ %| | | | line search(for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| penalty_max | OT_REAL | 1.000e+30 | Maximal value |
+ %| | | | for the penalty |
+ %| | | | parameter (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| penalty_update_ | OT_REAL | 10 | LIFENG WRITES |
+ %| compl_tol | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| penalty_update_ | OT_REAL | 0.000 | Threshold for |
+ %| infeasibility_t | | | infeasibility |
+ %| ol | | | in penalty |
+ %| | | | parameter |
+ %| | | | update test. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| perturb_always_ | OT_STRING | no | Active |
+ %| cd | | | permanent |
+ %| | | | perturbation of |
+ %| | | | constraint |
+ %| | | | linearization. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| perturb_dec_fac | OT_REAL | 0.333 | Decrease factor |
+ %| t | | | for x-s |
+ %| | | | perturbation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| perturb_inc_fac | OT_REAL | 8 | Increase factor |
+ %| t | | | for x-s |
+ %| | | | perturbation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| perturb_inc_fac | OT_REAL | 100 | Increase factor |
+ %| t_first | | | for x-s |
+ %| | | | perturbation |
+ %| | | | for very first |
+ %| | | | perturbation. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| piecewisepenalt | OT_REAL | 0.000 | LIFENG WRITES |
+ %| y_gamma_infeasi | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| piecewisepenalt | OT_REAL | 0.000 | LIFENG WRITES |
+ %| y_gamma_obj | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| point_perturbat | OT_REAL | 10 | Maximal |
+ %| ion_radius | | | perturbation of |
+ %| | | | an evaluation |
+ %| | | | point. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_info_stri | OT_STRING | no | Enables |
+ %| ng | | | printing of |
+ %| | | | additional info |
+ %| | | | string at end |
+ %| | | | of iteration |
+ %| | | | output. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_level | OT_INTEGER | 5 | Output |
+ %| | | | verbosity |
+ %| | | | level. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_options_d | OT_STRING | no | Switch to print |
+ %| ocumentation | | | all algorithmic |
+ %| | | | options. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_options_l | OT_STRING | no | Undocumented |
+ %| atex_mode | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_time | OT_BOOLEAN | True | print |
+ %| | | | information |
+ %| | | | about execution |
+ %| | | | time |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_timing_st | OT_STRING | no | Switch to print |
+ %| atistics | | | timing |
+ %| | | | statistics. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_user_opti | OT_STRING | no | Print all |
+ %| ons | | | options set by |
+ %| | | | the user. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quality_functio | OT_STRING | none | The balancing |
+ %| n_balancing_ter | | | term included |
+ %| m | | | in the quality |
+ %| | | | function for |
+ %| | | | centrality. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quality_functio | OT_STRING | none | The penalty |
+ %| n_centrality | | | term for |
+ %| | | | centrality that |
+ %| | | | is included in |
+ %| | | | quality |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quality_functio | OT_INTEGER | 8 | Maximum number |
+ %| n_max_section_s | | | of search steps |
+ %| teps | | | during direct |
+ %| | | | search |
+ %| | | | procedure |
+ %| | | | determining the |
+ %| | | | optimal |
+ %| | | | centering |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quality_functio | OT_STRING | 2-norm-squared | Norm used for |
+ %| n_norm_type | | | components of |
+ %| | | | the quality |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quality_functio | OT_REAL | 0 | Tolerance for |
+ %| n_section_qf_to | | | the golden |
+ %| l | | | section search |
+ %| | | | procedure |
+ %| | | | determining the |
+ %| | | | optimal |
+ %| | | | centering |
+ %| | | | parameter (in |
+ %| | | | the function |
+ %| | | | value space). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| quality_functio | OT_REAL | 0.010 | Tolerance for |
+ %| n_section_sigma | | | the section |
+ %| _tol | | | search |
+ %| | | | procedure |
+ %| | | | determining the |
+ %| | | | optimal |
+ %| | | | centering |
+ %| | | | parameter (in |
+ %| | | | sigma space). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| recalc_y | OT_STRING | no | Tells the |
+ %| | | | algorithm to |
+ %| | | | recalculate the |
+ %| | | | equality and |
+ %| | | | inequality |
+ %| | | | multipliers as |
+ %| | | | least square |
+ %| | | | estimates. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| recalc_y_feas_t | OT_REAL | 0.000 | Feasibility |
+ %| ol | | | threshold for |
+ %| | | | recomputation |
+ %| | | | of multipliers. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| replace_bounds | OT_STRING | no | Indicates if |
+ %| | | | all variable |
+ %| | | | bounds should |
+ %| | | | be replaced by |
+ %| | | | inequality |
+ %| | | | constraints |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| required_infeas | OT_REAL | 0.900 | Required |
+ %| ibility_reducti | | | reduction of |
+ %| on | | | infeasibility |
+ %| | | | before leaving |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| residual_improv | OT_REAL | 1.000 | Minimal |
+ %| ement_factor | | | required |
+ %| | | | reduction of |
+ %| | | | residual test |
+ %| | | | ratio in |
+ %| | | | iterative |
+ %| | | | refinement. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| residual_ratio_ | OT_REAL | 0.000 | Iterative |
+ %| max | | | refinement |
+ %| | | | tolerance (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| residual_ratio_ | OT_REAL | 0.000 | Threshold for |
+ %| singular | | | declaring |
+ %| | | | linear system |
+ %| | | | singular after |
+ %| | | | failed |
+ %| | | | iterative |
+ %| | | | refinement. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| resto_failure_f | OT_REAL | 0 | Threshold for |
+ %| easibility_thre | | | primal |
+ %| shold | | | infeasibility |
+ %| | | | to declare |
+ %| | | | failure of |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| resto_penalty_p | OT_REAL | 1000 | Penalty |
+ %| arameter | | | parameter in |
+ %| | | | the restoration |
+ %| | | | phase objective |
+ %| | | | function. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| resto_proximity | OT_REAL | 1 | Weighting |
+ %| _weight | | | factor for the |
+ %| | | | proximity term |
+ %| | | | in restoration |
+ %| | | | phase |
+ %| | | | objective. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| rho | OT_REAL | 0.100 | Value in |
+ %| | | | penalty |
+ %| | | | parameter |
+ %| | | | update formula. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| s_max | OT_REAL | 100 | Scaling |
+ %| | | | threshold for |
+ %| | | | the NLP error. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| s_phi | OT_REAL | 2.300 | Exponent for |
+ %| | | | linear barrier |
+ %| | | | function model |
+ %| | | | in the |
+ %| | | | switching rule. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| s_theta | OT_REAL | 1.100 | Exponent for |
+ %| | | | current |
+ %| | | | constraint |
+ %| | | | violation in |
+ %| | | | the switching |
+ %| | | | rule. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| sb | OT_STRING | no | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| sigma_max | OT_REAL | 100 | Maximum value |
+ %| | | | of the |
+ %| | | | centering |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| sigma_min | OT_REAL | 0.000 | Minimum value |
+ %| | | | of the |
+ %| | | | centering |
+ %| | | | parameter. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| skip_corr_if_ne | OT_STRING | yes | Skip the |
+ %| g_curv | | | corrector step |
+ %| | | | in negative |
+ %| | | | curvature |
+ %| | | | iteration |
+ %| | | | (unsupported!). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| skip_corr_in_mo | OT_STRING | yes | Skip the |
+ %| notone_mode | | | corrector step |
+ %| | | | during monotone |
+ %| | | | barrier |
+ %| | | | parameter mode |
+ %| | | | (unsupported!). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| skip_finalize_s | OT_STRING | no | Indicates if |
+ %| olution_call | | | call to NLP::Fi |
+ %| | | | nalizeSolution |
+ %| | | | after |
+ %| | | | optimization |
+ %| | | | should be |
+ %| | | | suppressed (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| slack_bound_fra | OT_REAL | 0.010 | Desired minimum |
+ %| c | | | relative |
+ %| | | | distance from |
+ %| | | | the initial |
+ %| | | | slack to bound. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| slack_bound_pus | OT_REAL | 0.010 | Desired minimum |
+ %| h | | | absolute |
+ %| | | | distance from |
+ %| | | | the initial |
+ %| | | | slack to bound. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| slack_move | OT_REAL | 0.000 | Correction size |
+ %| | | | for very small |
+ %| | | | slacks. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| soft_resto_pder | OT_REAL | 1.000 | Required |
+ %| ror_reduction_f | | | reduction in |
+ %| actor | | | primal-dual |
+ %| | | | error in the |
+ %| | | | soft |
+ %| | | | restoration |
+ %| | | | phase. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| start_with_rest | OT_STRING | no | Tells algorithm |
+ %| o | | | to switch to |
+ %| | | | restoration |
+ %| | | | phase in first |
+ %| | | | iteration. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| suppress_all_ou | OT_STRING | no | Undocumented |
+ %| tput | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tau_min | OT_REAL | 0.990 | Lower bound on |
+ %| | | | fraction-to- |
+ %| | | | the-boundary |
+ %| | | | parameter tau. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| theta_max_fact | OT_REAL | 10000 | Determines |
+ %| | | | upper bound for |
+ %| | | | constraint |
+ %| | | | violation in |
+ %| | | | the filter. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| theta_min | OT_REAL | 0.000 | LIFENG WRITES |
+ %| | | | THIS. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| theta_min_fact | OT_REAL | 0.000 | Determines |
+ %| | | | constraint |
+ %| | | | violation |
+ %| | | | threshold in |
+ %| | | | the switching |
+ %| | | | rule. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tiny_step_tol | OT_REAL | 0.000 | Tolerance for |
+ %| | | | detecting |
+ %| | | | numerically |
+ %| | | | insignificant |
+ %| | | | steps. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tiny_step_y_tol | OT_REAL | 0.010 | Tolerance for |
+ %| | | | quitting |
+ %| | | | because of |
+ %| | | | numerically |
+ %| | | | insignificant |
+ %| | | | steps. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol | OT_REAL | 0.000 | Desired |
+ %| | | | convergence |
+ %| | | | tolerance |
+ %| | | | (relative). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| var_integer_md | OT_DICT | None | Integer |
+ %| | | | metadata (a |
+ %| | | | dictionary with |
+ %| | | | lists of |
+ %| | | | integers) about |
+ %| | | | variables to be |
+ %| | | | passed to IPOPT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| var_numeric_md | OT_DICT | None | Numeric |
+ %| | | | metadata (a |
+ %| | | | dictionary with |
+ %| | | | lists of reals) |
+ %| | | | about variables |
+ %| | | | to be passed to |
+ %| | | | IPOPT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| var_string_md | OT_DICT | None | String metadata |
+ %| | | | (a dictionary |
+ %| | | | with lists of |
+ %| | | | strings) about |
+ %| | | | variables to be |
+ %| | | | passed to IPOPT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| vartheta | OT_REAL | 0.500 | a parameter |
+ %| | | | used to check |
+ %| | | | if the fast |
+ %| | | | direction can |
+ %| | | | be used asthe |
+ %| | | | line search |
+ %| | | | direction (for |
+ %| | | | Chen-Goldfarb |
+ %| | | | line search). |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_boun | OT_REAL | 0.001 | same as |
+ %| d_frac | | | bound_frac for |
+ %| | | | the regular |
+ %| | | | initializer. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_boun | OT_REAL | 0.001 | same as |
+ %| d_push | | | bound_push for |
+ %| | | | the regular |
+ %| | | | initializer. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_enti | OT_STRING | no | Tells algorithm |
+ %| re_iterate | | | whether to use |
+ %| | | | the GetWarmStar |
+ %| | | | tIterate method |
+ %| | | | in the NLP. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_init | OT_STRING | no | Warm-start for |
+ %| _point | | | initial point |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_mult | OT_REAL | 0.001 | same as |
+ %| _bound_push | | | mult_bound_push |
+ %| | | | for the regular |
+ %| | | | initializer. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_mult | OT_REAL | 1000000 | Maximum initial |
+ %| _init_max | | | value for the |
+ %| | | | equality |
+ %| | | | multipliers. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_same | OT_STRING | no | Indicates |
+ %| _structure | | | whether a |
+ %| | | | problem with a |
+ %| | | | structure |
+ %| | | | identical to |
+ %| | | | the previous |
+ %| | | | one is to be |
+ %| | | | solved. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_slac | OT_REAL | 0.001 | same as slack_b |
+ %| k_bound_frac | | | ound_frac for |
+ %| | | | the regular |
+ %| | | | initializer. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_slac | OT_REAL | 0.001 | same as slack_b |
+ %| k_bound_push | | | ound_push for |
+ %| | | | the regular |
+ %| | | | initializer. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start_targ | OT_REAL | 0 | Unsupported! |
+ %| et_mu | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| watchdog_shorte | OT_INTEGER | 10 | Number of |
+ %| ned_iter_trigge | | | shortened |
+ %| r | | | iterations that |
+ %| | | | trigger the |
+ %| | | | watchdog. (see |
+ %| | | | IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| watchdog_trial_ | OT_INTEGER | 3 | Maximum number |
+ %| iter_max | | | of watchdog |
+ %| | | | iterations. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| wsmp_iterative | OT_STRING | no | Switches to |
+ %| | | | iterative |
+ %| | | | solver in WSMP. |
+ %| | | | (see IPOPT |
+ %| | | | documentation) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| eval_f |
+ %+-------------+
+ %| eval_g |
+ %+-------------+
+ %| eval_grad_f |
+ %+-------------+
+ %| eval_h |
+ %+-------------+
+ %| eval_jac_g |
+ %+-------------+
+ %
+ %>List of available stats
+ %
+ %+-------------------------+
+ %| Id |
+ %+=========================+
+ %| con_integer_md |
+ %+-------------------------+
+ %| con_numeric_md |
+ %+-------------------------+
+ %| con_string_md |
+ %+-------------------------+
+ %| iter_count |
+ %+-------------------------+
+ %| iteration |
+ %+-------------------------+
+ %| iterations |
+ %+-------------------------+
+ %| n_eval_callback |
+ %+-------------------------+
+ %| n_eval_f |
+ %+-------------------------+
+ %| n_eval_g |
+ %+-------------------------+
+ %| n_eval_grad_f |
+ %+-------------------------+
+ %| n_eval_h |
+ %+-------------------------+
+ %| n_eval_jac_g |
+ %+-------------------------+
+ %| return_status |
+ %+-------------------------+
+ %| t_callback_fun.proc |
+ %+-------------------------+
+ %| t_callback_fun.wall |
+ %+-------------------------+
+ %| t_callback_prepare.proc |
+ %+-------------------------+
+ %| t_callback_prepare.wall |
+ %+-------------------------+
+ %| t_eval_f.proc |
+ %+-------------------------+
+ %| t_eval_f.wall |
+ %+-------------------------+
+ %| t_eval_g.proc |
+ %+-------------------------+
+ %| t_eval_g.wall |
+ %+-------------------------+
+ %| t_eval_grad_f.proc |
+ %+-------------------------+
+ %| t_eval_grad_f.wall |
+ %+-------------------------+
+ %| t_eval_h.proc |
+ %+-------------------------+
+ %| t_eval_h.wall |
+ %+-------------------------+
+ %| t_eval_jac_g.proc |
+ %+-------------------------+
+ %| t_eval_jac_g.wall |
+ %+-------------------------+
+ %| t_mainloop.proc |
+ %+-------------------------+
+ %| t_mainloop.wall |
+ %+-------------------------+
+ %| var_integer_md |
+ %+-------------------------+
+ %| var_numeric_md |
+ %+-------------------------+
+ %| var_string_md |
+ %+-------------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %knitro
+ %------
+ %
+ %
+ %
+ %KNITRO interface
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| BarRule | OT_INTEGER | 0 | Barrier Rule |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Debug | OT_INTEGER | 0 | Debug level |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Delta | OT_REAL | 1 | Initial region |
+ %| | | | scaling factor |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasModeTol | OT_REAL | 0.000 | Feasible mode |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasTol | OT_REAL | 0.000 | Feasible |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasTolAbs | OT_REAL | 0 | Absolute |
+ %| | | | feasible |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Feasible | OT_BOOLEAN | 1 | Allow |
+ %| | | | infeasible |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| GradOpt | OT_INTEGER | 1 | Gradient |
+ %| | | | calculation |
+ %| | | | method |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| HessOpt | OT_INTEGER | 1 | Hessian |
+ %| | | | calculation |
+ %| | | | method |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| HonorBnds | OT_BOOLEAN | 0 | Enforce bounds |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| InitPt | OT_BOOLEAN | 0 | Use initial |
+ %| | | | point strategy |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LmSize | OT_INTEGER | 10 | Memory pairsize |
+ %| | | | limit |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LpSolver | OT_BOOLEAN | 0 | Use LpSolver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxCgIt | OT_INTEGER | 0 | Maximum |
+ %| | | | conjugate |
+ %| | | | gradient |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxIt | OT_INTEGER | 10000 | Iteration limit |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Mu | OT_REAL | 0.100 | Initial barrier |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Multistart | OT_BOOLEAN | 0 | Use multistart |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| NewPoint | OT_BOOLEAN | 0 | Select new- |
+ %| | | | point feature |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ObjRange | OT_REAL | 1.000e+20 | Maximum |
+ %| | | | objective value |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| OptTol | OT_REAL | 0.000 | Relative |
+ %| | | | optimality |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| OptTolAbs | OT_REAL | 0 | Absolute |
+ %| | | | optimality |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| OutLev | OT_INTEGER | 2 | Log output |
+ %| | | | level |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Pivot | OT_REAL | 0.000 | Initial pivot |
+ %| | | | threshold |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Scale | OT_BOOLEAN | 1 | Perform scaling |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ShiftInit | OT_BOOLEAN | 1 | Interior-point |
+ %| | | | shifting |
+ %| | | | initial point |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Soc | OT_INTEGER | 1 | Second order |
+ %| | | | correction |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| XTol | OT_REAL | 0.000 | Relative |
+ %| | | | solution change |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| contype | OT_INTEGERVECTO | | |
+ %| | R | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| eval_f |
+ %+-------------+
+ %| eval_g |
+ %+-------------+
+ %| eval_grad_f |
+ %+-------------+
+ %| eval_h |
+ %+-------------+
+ %| eval_jac_g |
+ %+-------------+
+ %
+ %>List of available stats
+ %
+ %+---------------+
+ %| Id |
+ %+===============+
+ %| return_status |
+ %+---------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %snopt
+ %-----
+ %
+ %
+ %
+ %SNOPT interface
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| Backup basis | OT_INTEGER | None | 0 * output |
+ %| file | | | extra basis map |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Central | OT_REAL | None | 6.7e-5 * ( |
+ %| difference | | | Function |
+ %| interval | | | precision)^1/3 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Check frequency | OT_INTEGER | None | 60 * test row |
+ %| | | | residuals kAx - |
+ %| | | | sk |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Crash option | OT_INTEGER | None | 3 * first basis |
+ %| | | | is essentially |
+ %| | | | triangular |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Crash tolerance | OT_REAL | None | 0.100 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Debug level | OT_INTEGER | None | 0 * for |
+ %| | | | developers |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Derivative | OT_INTEGER | None | 3 |
+ %| level | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Difference | OT_REAL | None | 5.5e-7 * ( |
+ %| interval | | | Function |
+ %| | | | precision)^1/2 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Dump file | OT_INTEGER | None | 0 * output Load |
+ %| | | | data |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Elastic weight | OT_REAL | None | 1.0e+4 * used |
+ %| | | | only during |
+ %| | | | elastic mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Expand | OT_INTEGER | None | 10000 * for |
+ %| frequency | | | anti-cycling |
+ %| | | | procedure |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Factorization | OT_INTEGER | None | 50 * 100 for |
+ %| frequency | | | LPs |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Function | OT_REAL | None | 3.0e-13 * e^0.8 |
+ %| precision | | | (almost full |
+ %| | | | accuracy) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Hessian | OT_STRING | None | full memory * |
+ %| | | | default if n1 |
+ %| | | | 75 limited |
+ %| | | | memory * |
+ %| | | | default if n1 > |
+ %| | | | 75 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Hessian flush | OT_INTEGER | None | 999999 * no |
+ %| | | | flushing |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Hessian | OT_INTEGER | None | 999999 * for |
+ %| frequency | | | full Hessian |
+ %| | | | (never reset) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Hessian updates | OT_INTEGER | None | 10 * for |
+ %| | | | limited memory |
+ %| | | | Hessian |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Insert file | OT_INTEGER | None | 0 * input in |
+ %| | | | industry format |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Iterations | OT_INTEGER | None | 10000 * or 20m |
+ %| limit | | | if that is more |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LU | OT_STRING | None | LU partial |
+ %| | | | pivoting * |
+ %| | | | default |
+ %| | | | threshold |
+ %| | | | pivoting |
+ %| | | | strategy LU |
+ %| | | | rook pivoting * |
+ %| | | | threshold rook |
+ %| | | | pivoting LU |
+ %| | | | complete |
+ %| | | | pivoting * |
+ %| | | | threshold |
+ %| | | | complete |
+ %| | | | pivoting |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LU factor | OT_REAL | None | 3.99 * for NP |
+ %| tolerance | | | (100.0 for LP) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LU singularity | OT_REAL | None | 0.000 |
+ %| tolerance | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LU update | OT_REAL | None | 3.99 * for NP ( |
+ %| tolerance | | | 10.0 for LP) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Linesearch | OT_REAL | None | 0.9 * smaller |
+ %| tolerance | | | for more |
+ %| | | | accurate search |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Load file | OT_INTEGER | None | 0 * input names |
+ %| | | | and values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Major | OT_REAL | None | 1.0e-6 * target |
+ %| feasibility | | | nonlinear |
+ %| tolerance | | | constraint |
+ %| | | | violation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Major | OT_INTEGER | None | 1000 * or m if |
+ %| iterations | | | that is more |
+ %| limit | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Major | OT_REAL | None | 1.0e-6 * target |
+ %| optimality | | | complementarity |
+ %| tolerance | | | gap |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Major print | OT_INTEGER | None | 1 * 1-line |
+ %| level | | | major iteration |
+ %| | | | log |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Major step | OT_REAL | None | 2 |
+ %| limit | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Minor | OT_REAL | None | 1.0e-6 * for |
+ %| feasibility | | | satisfying the |
+ %| tolerance | | | QP bounds |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Minor | OT_INTEGER | None | 500 * or 3m if |
+ %| iterations | | | that is more |
+ %| limit | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Minor print | OT_INTEGER | None | 1 * 1-line |
+ %| level | | | minor iteration |
+ %| | | | log |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| New basis file | OT_INTEGER | None | 0 * output |
+ %| | | | basis map |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| New superbasics | OT_INTEGER | None | 99 * controls |
+ %| limit | | | early |
+ %| | | | termination of |
+ %| | | | QPs |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Old basis file | OT_INTEGER | None | 0 * input basis |
+ %| | | | map |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Partial price | OT_INTEGER | None | 1 * 10 for |
+ %| | | | large LPs |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Penalty | OT_REAL | None | 0.0 * initial |
+ %| parameter | | | penalty |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Pivot tolerance | OT_REAL | None | 3.7e-11 * e^2/3 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Print frequency | OT_INTEGER | None | 100 * minor |
+ %| | | | iterations log |
+ %| | | | on Print file |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Proximal point | OT_INTEGER | None | 1 * satisfies |
+ %| method | | | linear |
+ %| | | | constraints |
+ %| | | | near x0 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Punch file | OT_INTEGER | None | 0 * output |
+ %| | | | Insert data |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| QPSolver | OT_STRING | None | Cholesky * |
+ %| | | | default |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Reduced Hessian | OT_INTEGER | None | 2000 * or |
+ %| dimension | | | Superbasics |
+ %| | | | limit if that |
+ %| | | | is less |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Save frequency | OT_INTEGER | None | 100 * save |
+ %| | | | basis map |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Scale option | OT_INTEGER | None | 1 * linear |
+ %| | | | constraints and |
+ %| | | | variables |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Scale tolerance | OT_REAL | None | 0.900 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Solution | OT_STRING | None | Yes * on the |
+ %| | | | Print file |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Solution file | OT_INTEGER | None | 0 * different |
+ %| | | | from printed |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Sticky | OT_STRING | None | No * Yes makes |
+ %| parameters | | | parameter |
+ %| | | | values persist |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Summary | OT_INTEGER | None | 100 * minor |
+ %| frequency | | | iterations log |
+ %| | | | on Summary file |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Superbasics | OT_INTEGER | None | n1 + 1 * n1 = |
+ %| limit | | | number of |
+ %| | | | nonlinear |
+ %| | | | variables |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| System | OT_STRING | None | No * Yes prints |
+ %| information | | | more system |
+ %| | | | information |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Timing level | OT_INTEGER | None | 3 * print cpu |
+ %| | | | times |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Unbounded | OT_REAL | None | 1.000e+15 |
+ %| objective | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Unbounded step | OT_REAL | None | 1.000e+18 |
+ %| size | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Verify level | OT_INTEGER | None | 0 * cheap check |
+ %| | | | on gradients |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Violation limit | OT_REAL | None | 10.0 * unscaled |
+ %| | | | constraint |
+ %| | | | violation limit |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| detect_linear | OT_BOOLEAN | True | Make an effort |
+ %| | | | to treat linear |
+ %| | | | constraints and |
+ %| | | | linear |
+ %| | | | variables |
+ %| | | | specially. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print file | OT_STRING | None | n/a |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_time | OT_BOOLEAN | True | print |
+ %| | | | information |
+ %| | | | about execution |
+ %| | | | time |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| specs file | OT_STRING | None | n/a |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| start | OT_STRING | Cold | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| summary | OT_BOOLEAN | True | n/a |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-----------+
+ %| Id |
+ %+===========+
+ %| eval_nlp |
+ %+-----------+
+ %| setup_nlp |
+ %+-----------+
+ %
+ %>List of available stats
+ %
+ %+----------------+
+ %| Id |
+ %+================+
+ %| iter_count |
+ %+----------------+
+ %| iterations |
+ %+----------------+
+ %| n_callback_fun |
+ %+----------------+
+ %| n_eval_grad_f |
+ %+----------------+
+ %| n_eval_jac_g |
+ %+----------------+
+ %| return_status |
+ %+----------------+
+ %| t_callback_fun |
+ %+----------------+
+ %| t_eval_grad_f |
+ %+----------------+
+ %| t_eval_jac_g |
+ %+----------------+
+ %| t_mainloop |
+ %+----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %worhp
+ %-----
+ %
+ %
+ %
+ %WORHP interface
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| AcceptTolFeas | OT_REAL | 0.001 | Tolerance for |
+ %| | | | acceptable |
+ %| | | | feasibility |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| AcceptTolOpti | OT_REAL | 0.001 | Tolerance for |
+ %| | | | acceptable |
+ %| | | | optimality |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| AlphaMinConst | OT_BOOLEAN | False | Use a constant |
+ %| | | | lower bound on |
+ %| | | | Armijo stepsize |
+ %| | | | in Filter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Ares | OT_INTEGERVECTO | [42, 41, 42, | Armijo recovery |
+ %| | R | 43, 44, 41, 50] | strategies. |
+ %| | | | Vector of size |
+ %| | | | 7 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ArmijoBeta | OT_REAL | 0.712 | Trial stepsize |
+ %| | | | decrease factor |
+ %| | | | for Armijo rule |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ArmijoMaxAlpha | OT_REAL | 1 | Initial alpha |
+ %| | | | for Armijo rule |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ArmijoMinAlpha | OT_REAL | 0.000 | Lower bound on |
+ %| | | | alpha for |
+ %| | | | Armijo rule |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ArmijoMinAlphaR | OT_REAL | 0.000 | Lower bound on |
+ %| ec | | | alpha for |
+ %| | | | Armijo rule |
+ %| | | | during recovery |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ArmijoSigma | OT_REAL | 0.005 | Scale factor |
+ %| | | | for linearised |
+ %| | | | descent check |
+ %| | | | in Armijo rule |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| AutoQPRecovery | OT_BOOLEAN | True | Enable |
+ %| | | | automatic QP |
+ %| | | | recovery |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BFGSmaxblockSiz | OT_INTEGER | 300 | Block size |
+ %| e | | | parameter used |
+ %| | | | by certain BFGS |
+ %| | | | methods |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BFGSmethod | OT_INTEGER | 0 | Choose BFGS |
+ %| | | | method (0: |
+ %| | | | dense, 1-3: |
+ %| | | | block, 100+: |
+ %| | | | sparse) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BFGSminblockSiz | OT_INTEGER | 300 | Block size |
+ %| e | | | parameter used |
+ %| | | | by certain BFGS |
+ %| | | | methods |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BFGSrestart | OT_INTEGER | 50 | Restart BFGS |
+ %| | | | update after |
+ %| | | | this many |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BettsFactor | OT_REAL | 2.100 | Update factor |
+ %| | | | for Betts' |
+ %| | | | Hessian |
+ %| | | | regularisation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BettsPoint | OT_REAL | 1 | Smallest |
+ %| | | | eigenvalue of |
+ %| | | | the regularised |
+ %| | | | Hessian |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| BoundTolFac | OT_REAL | 1000 | Factor in |
+ %| | | | determining |
+ %| | | | active |
+ %| | | | constraints by |
+ %| | | | KKT |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CheckFJ | OT_REAL | 1.000e+12 | Upper bound |
+ %| | | | used by Fritz- |
+ %| | | | John heuristic |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CheckStructureD | OT_BOOLEAN | True | Enable |
+ %| F | | | structural |
+ %| | | | checking of DF |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CheckStructureD | OT_BOOLEAN | True | Enable |
+ %| G | | | structural |
+ %| | | | checking of DG |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CheckStructureH | OT_BOOLEAN | True | Enable |
+ %| M | | | structural |
+ %| | | | checking of HM |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepBettsSum | OT_REAL | 0.500 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepConStop | OT_REAL | 0.000 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepConvio | OT_REAL | 1 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepMaxIter | OT_INTEGER | 50 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepMethod | OT_INTEGER | 0 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepMode | OT_INTEGER | 1 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepPFactor | OT_REAL | 1 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepPMax | OT_REAL | 1000000 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CorStepRecovery | OT_BOOLEAN | False | (experimental) |
+ %| DX | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CurvBCond | OT_REAL | 0.020 | Block BFGS |
+ %| | | | curvature |
+ %| | | | condition bound |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CurvBFac | OT_REAL | 0.300 | Block BFGS |
+ %| | | | curvature |
+ %| | | | condition |
+ %| | | | regularisation |
+ %| | | | factor |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CurvCond | OT_REAL | 0.020 | BFGS Curvature |
+ %| | | | condition bound |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| CurvFac | OT_REAL | 0.300 | BFGS curvature |
+ %| | | | condition |
+ %| | | | regularisation |
+ %| | | | factor |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| DebugMarker05 | OT_INTEGER | 42 | Debug marker. |
+ %| | | | Used to find |
+ %| | | | memory alignmen |
+ %| | | | t/padding |
+ %| | | | issues |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| DebugMarker06 | OT_INTEGER | 42 | Debug marker. |
+ %| | | | Used to find |
+ %| | | | memory alignmen |
+ %| | | | t/padding |
+ %| | | | issues |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FGtogether | OT_BOOLEAN | False | F and G cannot |
+ %| | | | be evaluated |
+ %| | | | separately |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FJandND | OT_BOOLEAN | False | Enable Fritz- |
+ %| | | | John and non- |
+ %| | | | differentiable |
+ %| | | | check |
+ %| | | | heuristics |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasibleDual | OT_BOOLEAN | False | Activate dual |
+ %| | | | feasibility |
+ %| | | | mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasibleInit | OT_BOOLEAN | False | Activate |
+ %| | | | initial |
+ %| | | | feasibility |
+ %| | | | mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasibleInitTol | OT_REAL | 0.001 | Feasibility |
+ %| | | | tolerance for |
+ %| | | | no-objective |
+ %| | | | feasible mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FeasibleOnly | OT_BOOLEAN | False | Activate |
+ %| | | | feasible-only |
+ %| | | | mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FidifEps | OT_REAL | 0.000 | Finite |
+ %| | | | difference |
+ %| | | | perturbation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FidifHM | OT_BOOLEAN | False | Approximate |
+ %| | | | Hessian by |
+ %| | | | finite |
+ %| | | | differences |
+ %| | | | (otherwise |
+ %| | | | BFGS) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FilterBisecAlph | OT_BOOLEAN | True | Filter |
+ %| a | | | heuristic to |
+ %| | | | save Armijo |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FilterGammaCV | OT_REAL | 0.000 | Constraint |
+ %| | | | violation |
+ %| | | | decrease factor |
+ %| | | | in Filter |
+ %| | | | acceptance |
+ %| | | | check |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FilterGammaF | OT_REAL | 0.000 | Objective |
+ %| | | | decrease factor |
+ %| | | | in Filter |
+ %| | | | acceptance |
+ %| | | | check |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FilterIntersecA | OT_BOOLEAN | True | Filter |
+ %| lpha | | | heuristic to |
+ %| | | | save Armijo |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FirstDifCentral | OT_BOOLEAN | True | Use central |
+ %| | | | finite |
+ %| | | | difference |
+ %| | | | quotient for |
+ %| | | | first |
+ %| | | | derivatives |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FocusOnFeas | OT_BOOLEAN | True | Enable Focus- |
+ %| | | | on-Feasibility |
+ %| | | | mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| FocusOnFeasFact | OT_REAL | 1.360 | Factor in |
+ %| or | | | Focus-on- |
+ %| | | | Feasibility |
+ %| | | | mode |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| GammaAlpha | OT_REAL | 0.050 | Safety factor |
+ %| | | | for alphamin |
+ %| | | | calculation by |
+ %| | | | Filter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| GroupMethod | OT_INTEGER | 1 | Select method |
+ %| | | | to determine |
+ %| | | | graph colouring |
+ %| | | | groups |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| IgnoreFilterCri | OT_BOOLEAN | False | Activate |
+ %| t | | | accelerating |
+ %| | | | heuristics for |
+ %| | | | Filter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| IncBettsTau | OT_REAL | 2 | Increase factor |
+ %| | | | for Betts' |
+ %| | | | update |
+ %| | | | dampening term |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| IncBettsTauMore | OT_REAL | 100 | Larger increase |
+ %| | | | factor for |
+ %| | | | Betts' update |
+ %| | | | dampening term |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| IncreaseIWS | OT_REAL | 1 | Increase factor |
+ %| | | | for estimated |
+ %| | | | integer |
+ %| | | | workspace |
+ %| | | | requirement |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| IncreaseRWS | OT_REAL | 1 | Increase factor |
+ %| | | | for estimated |
+ %| | | | real workspace |
+ %| | | | requirement |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Infty | OT_REAL | 1.000e+20 | Upper bound for |
+ %| | | | numbers to be |
+ %| | | | regarded as |
+ %| | | | finite |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| InftyUnbounded | OT_REAL | 1.000e+20 | Tolerance for |
+ %| | | | unboundedness |
+ %| | | | detection |
+ %| | | | heuristic |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| InitialLMest | OT_BOOLEAN | True | Enable initial |
+ %| | | | Lagrange |
+ %| | | | multiplier |
+ %| | | | estimate |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| KeepAcceptableS | OT_BOOLEAN | True | Save acceptable |
+ %| ol | | | solutions as |
+ %| | | | fallback |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LMestQPipComTol | OT_REAL | 0.003 | IP |
+ %| | | | complementarity |
+ %| | | | tolerance in |
+ %| | | | initial |
+ %| | | | multiplier |
+ %| | | | estimate |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LMestQPipResTol | OT_REAL | 1 | IP residual |
+ %| | | | tolerance in |
+ %| | | | initial |
+ %| | | | multiplier |
+ %| | | | estimate |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LinMult | OT_BOOLEAN | False | Control |
+ %| | | | Lagrange |
+ %| | | | multiplier |
+ %| | | | update |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LogLevel | OT_INTEGER | 0 | Enable XML |
+ %| | | | logfiles and |
+ %| | | | writing |
+ %| | | | interval |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LogResult | OT_INTEGER | 0 | Enable XML |
+ %| | | | result logging |
+ %| | | | and detail |
+ %| | | | level |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LowPassAlphaF | OT_REAL | 0.950 | Lowpass-filter |
+ %| | | | update factor |
+ %| | | | for objective |
+ %| | | | values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LowPassAlphaG | OT_REAL | 0.950 | Lowpass-filter |
+ %| | | | update factor |
+ %| | | | for constraint |
+ %| | | | values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LowPassAlphaMer | OT_REAL | 0.100 | Lowpass-filter |
+ %| it | | | update factor |
+ %| | | | for merit |
+ %| | | | function values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| LowPassFilter | OT_BOOLEAN | True | Enable lowpass- |
+ %| | | | filter |
+ %| | | | termination |
+ %| | | | criterion |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97blas3 | OT_BOOLEAN | False | Use BLAS level |
+ %| | | | 3 (dgemm) in |
+ %| | | | MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97mf | OT_BOOLEAN | False | Use |
+ %| | | | multifrontal- |
+ %| | | | style forward |
+ %| | | | solve of MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97nemin | OT_INTEGER | 8 | Node |
+ %| | | | amalgation, |
+ %| | | | controls |
+ %| | | | merging in |
+ %| | | | elimination |
+ %| | | | tree by MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97ordering | OT_INTEGER | 5 | Ordering used |
+ %| | | | by MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97print | OT_INTEGER | -1 | Print level |
+ %| | | | used by MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97scaling | OT_INTEGER | 0 | Scaling used by |
+ %| | | | MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97small | OT_REAL | 0.000 | Any pivot whose |
+ %| | | | modulus is less |
+ %| | | | than this is |
+ %| | | | treated as zero |
+ %| | | | by MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MA97u | OT_REAL | 0.010 | Relative pivot |
+ %| | | | tolerance of |
+ %| | | | MA97 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MatrixCC | OT_BOOLEAN | False | Not to be |
+ %| | | | included into a |
+ %| | | | parameter file! |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxCalls | OT_INTEGER | 2.147e+09 | Upper bound to |
+ %| | | | Reverse |
+ %| | | | Communication |
+ %| | | | calls |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxForce | OT_INTEGER | 1000 | Maximum number |
+ %| | | | of Force |
+ %| | | | recovery |
+ %| | | | strategy steps |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxGPart | OT_INTEGER | 1 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxIter | OT_INTEGER | 500 | Upper bound on |
+ %| | | | major |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxLScounter | OT_INTEGER | 3 | Control |
+ %| | | | activation of |
+ %| | | | Filter |
+ %| | | | acceleration |
+ %| | | | heuristics |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MaxNorm | OT_BOOLEAN | True | Select max-norm |
+ %| | | | instead of |
+ %| | | | 1-norm in |
+ %| | | | Filter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MeritFunction | OT_INTEGER | 4 | Select merit |
+ %| | | | function and |
+ %| | | | penalty update |
+ %| | | | [0, 3..5] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MeritGradTol | OT_REAL | 0.000 | Threshold of |
+ %| | | | meritfunction |
+ %| | | | gradient for |
+ %| | | | increasing |
+ %| | | | Hessian |
+ %| | | | regularisation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MinBettsTau | OT_REAL | 0.000 | Lower bound for |
+ %| | | | Betts' update |
+ %| | | | dampening term |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MoreRelax | OT_BOOLEAN | False | Introduce one |
+ %| | | | relaxation |
+ %| | | | variable for |
+ %| | | | every |
+ %| | | | constraint |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| NLPmethod | OT_INTEGER | 1 | Select (1) |
+ %| | | | Meritfunction |
+ %| | | | or (3) Filter |
+ %| | | | globalisation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| NLPprint | OT_INTEGER | 2 | NLP print level |
+ %| | | | [-1..4] |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PairMethod | OT_INTEGER | 1 | Select method |
+ %| | | | to determine |
+ %| | | | graph colouring |
+ %| | | | pairgroups |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PenUpdEpsBar | OT_REAL | 0.900 | Penalty update |
+ %| | | | parameter |
+ %| | | | factor for |
+ %| | | | MeritFunction = |
+ %| | | | 3 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PenUpdEpsKFac | OT_REAL | 2 | Penalty update |
+ %| | | | parameter |
+ %| | | | factor for |
+ %| | | | MeritFunction = |
+ %| | | | 4 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PenUpdEpsKSeque | OT_INTEGER | 2 | Penalty update |
+ %| nce | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PenUpdMaxDeltaK | OT_REAL | 11 | Max penalty for |
+ %| | | | MeritFunction = |
+ %| | | | 4 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PenUpdMaxFac | OT_REAL | 100000000 | Max factor for |
+ %| | | | increasing |
+ %| | | | penalty for |
+ %| | | | MeritFunction = |
+ %| | | | 4 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PenUpdRBar | OT_REAL | 2 | Penalty update |
+ %| | | | parameter for |
+ %| | | | MeritFunction = |
+ %| | | | 3 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PrecisionF | OT_REAL | 0.000 | (currently |
+ %| | | | unused) |
+ %| | | | Relative |
+ %| | | | precision of |
+ %| | | | objective |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| PrecisionG | OT_REAL | 0.000 | (currently |
+ %| | | | unused) |
+ %| | | | Relative |
+ %| | | | precision of |
+ %| | | | constraints |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| QPscaleParam | OT_REAL | 0 | (currently |
+ %| | | | unused) Scaling |
+ %| | | | factor for QP |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| QuadraticProble | OT_BOOLEAN | False | Not to be |
+ %| m | | | included into a |
+ %| | | | parameter file! |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ReduceBettsTau | OT_REAL | 0.300 | Decrease factor |
+ %| | | | for Betts' |
+ %| | | | update |
+ %| | | | dampening term |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RefineFeasibili | OT_INTEGER | 0 | 0 - |
+ %| ty | | | Deactivated, 1 |
+ %| | | | - After first |
+ %| | | | feasible |
+ %| | | | iterate, 2 - |
+ %| | | | Always on, |
+ %| | | | Activates |
+ %| | | | iterative |
+ %| | | | refinement due |
+ %| | | | to perturbation |
+ %| | | | in constraints |
+ %| | | | using |
+ %| | | | parametric |
+ %| | | | sensitivities |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RefineMaxHMReg | OT_REAL | 1000 | Maximum allowed |
+ %| | | | regularisation |
+ %| | | | of the hessian |
+ %| | | | CAUTION |
+ %| | | | absolute value |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RefineMaxRelax | OT_REAL | 0.750 | Maximum allowed |
+ %| | | | relaxation to |
+ %| | | | apply |
+ %| | | | feasibility |
+ %| | | | refinement |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RefineOnlyOnAlp | OT_BOOLEAN | True | Activates new |
+ %| ha | | | iterative |
+ %| | | | refinement of |
+ %| | | | constraints |
+ %| | | | only when |
+ %| | | | Armijo alpha |
+ %| | | | equals one |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RefineStartTol | OT_REAL | 0.000 | Start tolerance |
+ %| | | | for successful |
+ %| | | | termination of |
+ %| | | | iterative |
+ %| | | | refinement due |
+ %| | | | to perturbation |
+ %| | | | in constraints |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RegStrategy | OT_INTEGER | 1 | Select Hessian |
+ %| | | | regularisation |
+ %| | | | strategy in |
+ %| | | | Filter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ReinitFilter | OT_BOOLEAN | False | Enables Filter- |
+ %| | | | reinitialisatio |
+ %| | | | n accelerating |
+ %| | | | heuristic |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RelaxMaxDelta | OT_REAL | 0.920 | Upper bound for |
+ %| | | | accepting the |
+ %| | | | constraint |
+ %| | | | relaxation |
+ %| | | | variable |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RelaxMaxPen | OT_REAL | 50000000 | Upper bound on |
+ %| | | | the constraint |
+ %| | | | relaxation |
+ %| | | | penalty |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RelaxRho | OT_REAL | 6 | Update factor |
+ %| | | | for the |
+ %| | | | constraint |
+ %| | | | relaxation |
+ %| | | | penalty |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RelaxStart | OT_REAL | 1 | Initial value |
+ %| | | | of the |
+ %| | | | constraint |
+ %| | | | relaxation |
+ %| | | | penalty |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| RestUntilFeas | OT_BOOLEAN | False | Do restoration |
+ %| | | | until a |
+ %| | | | feasible |
+ %| | | | solution is |
+ %| | | | found |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaleConIter | OT_BOOLEAN | False | Scale |
+ %| | | | constraints in |
+ %| | | | every iteration |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaleFacObj | OT_REAL | 10 | Value to scale |
+ %| | | | large objective |
+ %| | | | functions to |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaleFacQP | OT_REAL | 10 | Upper bound on |
+ %| | | | resulting |
+ %| | | | matrix norm for |
+ %| | | | QP scaling |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaledFD | OT_BOOLEAN | True | Use a scaled |
+ %| | | | perturbation |
+ %| | | | for finite |
+ %| | | | differences |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaledKKT | OT_BOOLEAN | True | Scale KKT |
+ %| | | | conditions |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaledObj | OT_BOOLEAN | True | Scale the |
+ %| | | | objective |
+ %| | | | function |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ScaledQP | OT_BOOLEAN | True | Scale some |
+ %| | | | matrices handed |
+ %| | | | to the QP |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| StartBettsTau | OT_REAL | 0.100 | Initial value |
+ %| | | | for Betts' |
+ %| | | | update |
+ %| | | | dampening term |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| SteffensenOnRef | OT_BOOLEAN | False | Use Steffensen |
+ %| ine | | | Extrapolation |
+ %| | | | during |
+ %| | | | Feasibility |
+ %| | | | Refinement |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| SwitchingDelta | OT_REAL | 0.010 | Filter |
+ %| | | | switching |
+ %| | | | condition |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| SwitchingSCV | OT_REAL | 1.100 | Filter |
+ %| | | | switching |
+ %| | | | condition |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| SwitchingSF | OT_REAL | 2.300 | Filter |
+ %| | | | switching |
+ %| | | | condition |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TakeQPSol | OT_BOOLEAN | False | Evaluate QP |
+ %| | | | search |
+ %| | | | direction |
+ %| | | | regardless of |
+ %| | | | convergence |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Timeout | OT_REAL | 300 | Timeout in |
+ %| | | | seconds |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TolComp | OT_REAL | 0.001 | Complementarity |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TolFeas | OT_REAL | 0.000 | Feasibility |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TolOpti | OT_REAL | 0.000 | Optimality |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TolWeakActive | OT_REAL | 1 | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TooBig | OT_BOOLEAN | True | Enable too-big |
+ %| | | | termination |
+ %| | | | heuristics |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TooBigCV | OT_REAL | 1.000e+25 | Upper bound on |
+ %| | | | constraint |
+ %| | | | violation for |
+ %| | | | too-big |
+ %| | | | heuristic |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TooBigKKT | OT_REAL | 1.000e+30 | Upper bound on |
+ %| | | | KKT values for |
+ %| | | | too-big |
+ %| | | | heuristic |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UpdateMu | OT_BOOLEAN | True | Activates |
+ %| | | | update of |
+ %| | | | lagrange |
+ %| | | | multipliers |
+ %| | | | during |
+ %| | | | correction step |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UseZen | OT_BOOLEAN | False | Run Zen module |
+ %| | | | after |
+ %| | | | successful |
+ %| | | | termination |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserDF | OT_BOOLEAN | True | Objective |
+ %| | | | gradient values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserDG | OT_BOOLEAN | True | Jacobian values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserHM | OT_BOOLEAN | True | Hessian values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserHMstructure | OT_INTEGER | 2 | Enable |
+ %| | | | automatic |
+ %| | | | Hessian |
+ %| | | | structure |
+ %| | | | generation or |
+ %| | | | checking |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserZenDGp | OT_BOOLEAN | False | Hessian values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserZenDLp | OT_BOOLEAN | False | Gradient values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserZenDLpp | OT_BOOLEAN | False | Hessian values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| UserZenDLxp | OT_BOOLEAN | False | Hessian values |
+ %| | | | supplied by |
+ %| | | | caller |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| WeakActiveSet | OT_BOOLEAN | False | (experimental) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ZenCheckMaxPert | OT_BOOLEAN | False | Check maximum |
+ %| | | | of secure |
+ %| | | | perturbation |
+ %| | | | when updating |
+ %| | | | solution |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ZenFDnewMethod | OT_BOOLEAN | True | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| ZenRenewLU | OT_BOOLEAN | False | false: use LU |
+ %| | | | from last QP |
+ %| | | | step; true: |
+ %| | | | renew LU |
+ %| | | | decomposition. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eps | OT_REAL | 0.000 | Machine epsilon |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| internalParChan | OT_INTEGER | 0 | Counter for |
+ %| ged | | | changed |
+ %| | | | parameters. |
+ %| | | | Internal use |
+ %| | | | only. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_time | OT_BOOLEAN | True | Print |
+ %| | | | information |
+ %| | | | about execution |
+ %| | | | time |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipBarrier | OT_REAL | 7.800 | IP barrier |
+ %| | | | parameter. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipComTol | OT_REAL | 0.000 | IP |
+ %| | | | complementarity |
+ %| | | | tolerance. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipFracBound | OT_REAL | 0.880 | IP fraction-to- |
+ %| | | | the-boundary |
+ %| | | | parameter. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipLsMethod | OT_STRING | None | Select the |
+ %| | | | direct linear |
+ %| | | | solver used by |
+ %| | | | the IP method. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipMinAlpha | OT_REAL | 0.000 | IP line search |
+ %| | | | minimum step |
+ %| | | | size. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipRelaxDiv | OT_REAL | 2 | The relaxation |
+ %| | | | term is divided |
+ %| | | | by this value |
+ %| | | | if successful. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipRelaxMax | OT_REAL | 0.000 | Maximum |
+ %| | | | relaxation |
+ %| | | | value. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipRelaxMin | OT_REAL | 0.000 | Mimimum |
+ %| | | | relaxation |
+ %| | | | value. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipRelaxMult | OT_REAL | 10 | The relaxation |
+ %| | | | term is |
+ %| | | | multiplied by |
+ %| | | | this value if |
+ %| | | | unsuccessful. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipResTol | OT_REAL | 0.000 | IP residuals |
+ %| | | | tolerance. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_ipTryRelax | OT_BOOLEAN | True | Enable |
+ %| | | | relaxation |
+ %| | | | strategy when |
+ %| | | | encountering an |
+ %| | | | error. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsItMaxIter | OT_INTEGER | 1000 | Maximum number |
+ %| | | | of iterations |
+ %| | | | of the |
+ %| | | | iterative |
+ %| | | | linear solvers. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsItMethod | OT_STRING | None | Select the |
+ %| | | | iterative |
+ %| | | | linear solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsItPrecondM | OT_STRING | None | Select |
+ %| ethod | | | preconditioner |
+ %| | | | for the |
+ %| | | | iterative |
+ %| | | | linear solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsRefineMaxI | OT_INTEGER | 10 | Maximum number |
+ %| ter | | | of iterative |
+ %| | | | refinement |
+ %| | | | steps of the |
+ %| | | | direct linear |
+ %| | | | solvers. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsScale | OT_BOOLEAN | True | Enables scaling |
+ %| | | | on linear |
+ %| | | | solver level. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsTol | OT_REAL | 0.000 | Tolerance for |
+ %| | | | the linear |
+ %| | | | solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_lsTrySimple | OT_BOOLEAN | False | Some matrices |
+ %| | | | can be solved |
+ %| | | | without calling |
+ %| | | | a linear |
+ %| | | | equation solver |
+ %| | | | .Currently only |
+ %| | | | diagonal |
+ %| | | | matrices are |
+ %| | | | supported.Non- |
+ %| | | | diagonal |
+ %| | | | matrices will |
+ %| | | | besolved with |
+ %| | | | the chosen |
+ %| | | | linear equation |
+ %| | | | solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_maxIter | OT_INTEGER | 80 | Imposes an |
+ %| | | | upper limit on |
+ %| | | | the number of |
+ %| | | | minor solver |
+ %| | | | iterations, |
+ %| | | | i.e. for the |
+ %| | | | quadratic |
+ %| | | | subproblem |
+ %| | | | solver.If the |
+ %| | | | limit is |
+ %| | | | reached before |
+ %| | | | convergence, |
+ %| | | | WORHP will |
+ %| | | | activate QP |
+ %| | | | recovery |
+ %| | | | strategies to |
+ %| | | | prevent a |
+ %| | | | solver |
+ %| | | | breakdown. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_method | OT_STRING | None | Select the |
+ %| | | | solution method |
+ %| | | | used by the QP |
+ %| | | | solver. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_nsnBeta | OT_REAL | 0.900 | NSN stepsize |
+ %| | | | decrease |
+ %| | | | factor. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_nsnGradStep | OT_BOOLEAN | True | Enable gradient |
+ %| | | | steps in the |
+ %| | | | NSN method. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_nsnKKT | OT_REAL | 0.000 | NSN KKT |
+ %| | | | tolerance. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_nsnLsMethod | OT_STRING | None | Select the |
+ %| | | | direct linear |
+ %| | | | solver used by |
+ %| | | | the NSN method. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_nsnMinAlpha | OT_REAL | 0.000 | NSN line search |
+ %| | | | minimum step |
+ %| | | | size. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_nsnSigma | OT_REAL | 0.010 | NSN line search |
+ %| | | | slope |
+ %| | | | parameter. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_printLevel | OT_STRING | None | Controls the |
+ %| | | | amount of QP |
+ %| | | | solver output. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_scaleIntern | OT_BOOLEAN | False | Enable scaling |
+ %| | | | on QP level. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_strict | OT_BOOLEAN | True | Use strict |
+ %| | | | termination |
+ %| | | | criteria in IP |
+ %| | | | method. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| eval_f |
+ %+-------------+
+ %| eval_g |
+ %+-------------+
+ %| eval_grad_f |
+ %+-------------+
+ %| eval_h |
+ %+-------------+
+ %| eval_jac_g |
+ %+-------------+
+ %
+ %>List of available stats
+ %
+ %+--------------------+
+ %| Id |
+ %+====================+
+ %| iter_count |
+ %+--------------------+
+ %| iteration |
+ %+--------------------+
+ %| iterations |
+ %+--------------------+
+ %| n_eval_f |
+ %+--------------------+
+ %| n_eval_g |
+ %+--------------------+
+ %| n_eval_grad_f |
+ %+--------------------+
+ %| n_eval_h |
+ %+--------------------+
+ %| n_eval_jac_g |
+ %+--------------------+
+ %| return_code |
+ %+--------------------+
+ %| return_status |
+ %+--------------------+
+ %| t_callback_fun |
+ %+--------------------+
+ %| t_callback_prepare |
+ %+--------------------+
+ %| t_eval_f |
+ %+--------------------+
+ %| t_eval_g |
+ %+--------------------+
+ %| t_eval_grad_f |
+ %+--------------------+
+ %| t_eval_h |
+ %+--------------------+
+ %| t_eval_jac_g |
+ %+--------------------+
+ %| t_mainloop |
+ %+--------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %scpgen
+ %------
+ %
+ %
+ %
+ %A structure-exploiting sequential quadratic programming (to be come
+ %sequential convex programming) method for nonlinear programming.
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| beta | OT_REAL | 0.800 | Line-search |
+ %| | | | parameter, |
+ %| | | | restoration |
+ %| | | | factor of |
+ %| | | | stepsize |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| c1 | OT_REAL | 0.000 | Armijo |
+ %| | | | condition, |
+ %| | | | coefficient of |
+ %| | | | decrease in |
+ %| | | | merit |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| codegen | OT_BOOLEAN | false | C-code |
+ %| | | | generation |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| compiler | OT_STRING | "gcc -fPIC -O2" | Compiler |
+ %| | | | command to be |
+ %| | | | used for |
+ %| | | | compiling |
+ %| | | | generated code |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hessian_approxi | OT_STRING | "exact" | gauss- |
+ %| mation | | | newton|exact |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lbfgs_memory | OT_INTEGER | 10 | Size of L-BFGS |
+ %| | | | memory. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter | OT_INTEGER | 50 | Maximum number |
+ %| | | | of SQP |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter_ls | OT_INTEGER | 1 | Maximum number |
+ %| | | | of linesearch |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| merit_memsize | OT_INTEGER | 4 | Size of memory |
+ %| | | | to store |
+ %| | | | history of |
+ %| | | | merit function |
+ %| | | | values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| merit_start | OT_REAL | 0.000 | Lower bound for |
+ %| | | | the merit |
+ %| | | | function |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| name_x | OT_STRINGVECTOR | GenericType() | Names of the |
+ %| | | | variables. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_header | OT_BOOLEAN | true | Print the |
+ %| | | | header with |
+ %| | | | problem |
+ %| | | | statistics |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_time | OT_BOOLEAN | true | Print |
+ %| | | | information |
+ %| | | | about execution |
+ %| | | | time |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_x | OT_INTEGERVECTO | GenericType() | Which variables |
+ %| | R | | to print. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_solver | OT_STRING | GenericType() | The QP solver |
+ %| | | | to be used by |
+ %| | | | the SQP method |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_solver_optio | OT_DICT | GenericType() | Options to be |
+ %| ns | | | passed to the |
+ %| | | | QP solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reg_threshold | OT_REAL | 0.000 | Threshold for |
+ %| | | | the |
+ %| | | | regularization. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| regularize | OT_BOOLEAN | false | Automatic |
+ %| | | | regularization |
+ %| | | | of Lagrange |
+ %| | | | Hessian. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_du | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | dual |
+ %| | | | infeasability |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_pr | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | primal |
+ %| | | | infeasibility |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_pr_step | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | the step size |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_reg | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | regularization |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| dx |
+ %+-------------+
+ %| eval_f |
+ %+-------------+
+ %| eval_g |
+ %+-------------+
+ %| eval_grad_f |
+ %+-------------+
+ %| eval_h |
+ %+-------------+
+ %| eval_jac_g |
+ %+-------------+
+ %| qp |
+ %+-------------+
+ %
+ %>List of available stats
+ %
+ %+------------+
+ %| Id |
+ %+============+
+ %| iter_count |
+ %+------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %sqpmethod
+ %---------
+ %
+ %
+ %
+ %A textbook SQPMethod
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| beta | OT_REAL | 0.800 | Line-search |
+ %| | | | parameter, |
+ %| | | | restoration |
+ %| | | | factor of |
+ %| | | | stepsize |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| c1 | OT_REAL | 0.000 | Armijo |
+ %| | | | condition, |
+ %| | | | coefficient of |
+ %| | | | decrease in |
+ %| | | | merit |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hessian_approxi | OT_STRING | "exact" | limited- |
+ %| mation | | | memory|exact |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lbfgs_memory | OT_INTEGER | 10 | Size of L-BFGS |
+ %| | | | memory. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter | OT_INTEGER | 50 | Maximum number |
+ %| | | | of SQP |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter_ls | OT_INTEGER | 3 | Maximum number |
+ %| | | | of linesearch |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| merit_memory | OT_INTEGER | 4 | Size of memory |
+ %| | | | to store |
+ %| | | | history of |
+ %| | | | merit function |
+ %| | | | values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| min_step_size | OT_REAL | 0.000 | The size (inf- |
+ %| | | | norm) of the |
+ %| | | | step size |
+ %| | | | should not |
+ %| | | | become smaller |
+ %| | | | than this. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_header | OT_BOOLEAN | true | Print the |
+ %| | | | header with |
+ %| | | | problem |
+ %| | | | statistics |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_time | OT_BOOLEAN | true | Print |
+ %| | | | information |
+ %| | | | about execution |
+ %| | | | time |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_solver | OT_STRING | GenericType() | The QP solver |
+ %| | | | to be used by |
+ %| | | | the SQP method |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_solver_optio | OT_DICT | GenericType() | Options to be |
+ %| ns | | | passed to the |
+ %| | | | QP solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| regularize | OT_BOOLEAN | false | Automatic |
+ %| | | | regularization |
+ %| | | | of Lagrange |
+ %| | | | Hessian. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_du | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | dual |
+ %| | | | infeasability |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_pr | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | primal |
+ %| | | | infeasibility |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| bfgs |
+ %+-------------+
+ %| dx |
+ %+-------------+
+ %| eval_f |
+ %+-------------+
+ %| eval_g |
+ %+-------------+
+ %| eval_grad_f |
+ %+-------------+
+ %| eval_h |
+ %+-------------+
+ %| eval_jac_g |
+ %+-------------+
+ %| qp |
+ %+-------------+
+ %
+ %>List of available stats
+ %
+ %+--------------------+
+ %| Id |
+ %+====================+
+ %| iter_count |
+ %+--------------------+
+ %| iteration |
+ %+--------------------+
+ %| iterations |
+ %+--------------------+
+ %| n_eval_f |
+ %+--------------------+
+ %| n_eval_g |
+ %+--------------------+
+ %| n_eval_grad_f |
+ %+--------------------+
+ %| n_eval_h |
+ %+--------------------+
+ %| n_eval_jac_g |
+ %+--------------------+
+ %| return_status |
+ %+--------------------+
+ %| t_callback_fun |
+ %+--------------------+
+ %| t_callback_prepare |
+ %+--------------------+
+ %| t_eval_f |
+ %+--------------------+
+ %| t_eval_g |
+ %+--------------------+
+ %| t_eval_grad_f |
+ %+--------------------+
+ %| t_eval_h |
+ %+--------------------+
+ %| t_eval_jac_g |
+ %+--------------------+
+ %| t_mainloop |
+ %+--------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %stabilizedsqp
+ %-------------
+ %
+ %
+ %
+ %Stabilized Sequential Quadratic Programming method.
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| TReta1 | OT_REAL | 0.800 | Required |
+ %| | | | predicted / |
+ %| | | | actual decrease |
+ %| | | | for TR increase |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| TReta2 | OT_REAL | 0.200 | Required |
+ %| | | | predicted / |
+ %| | | | actual decrease |
+ %| | | | for TR decrease |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| alphaMin | OT_REAL | 0.001 | Used to check |
+ %| | | | whether to |
+ %| | | | increase rho. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| beta | OT_REAL | 0.500 | Line-search |
+ %| | | | parameter, |
+ %| | | | restoration |
+ %| | | | factor of |
+ %| | | | stepsize |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| c1 | OT_REAL | 0.001 | Armijo |
+ %| | | | condition, |
+ %| | | | coefficient of |
+ %| | | | decrease in |
+ %| | | | merit |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dvMax0 | OT_REAL | 100 | Parameter used |
+ %| | | | to defined the |
+ %| | | | max step |
+ %| | | | length. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eps_active | OT_REAL | 0.000 | Threshold for |
+ %| | | | the epsilon- |
+ %| | | | active set. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma1 | OT_REAL | 2 | Trust region |
+ %| | | | increase |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma2 | OT_REAL | 1 | Trust region |
+ %| | | | update |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma3 | OT_REAL | 1 | Trust region |
+ %| | | | decrease |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| hessian_approxi | OT_STRING | "exact" | limited- |
+ %| mation | | | memory|exact |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| lbfgs_memory | OT_INTEGER | 10 | Size of L-BFGS |
+ %| | | | memory. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter | OT_INTEGER | 100 | Maximum number |
+ %| | | | of SQP |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_iter_ls | OT_INTEGER | 20 | Maximum number |
+ %| | | | of linesearch |
+ %| | | | iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| max_time | OT_REAL | 1.000e+12 | Timeout |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| merit_memory | OT_INTEGER | 4 | Size of memory |
+ %| | | | to store |
+ %| | | | history of |
+ %| | | | merit function |
+ %| | | | values |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| min_step_size | OT_REAL | 0.000 | The size (inf- |
+ %| | | | norm) of the |
+ %| | | | step size |
+ %| | | | should not |
+ %| | | | become smaller |
+ %| | | | than this. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| muR0 | OT_REAL | 0.000 | Initial choice |
+ %| | | | of |
+ %| | | | regularization |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nu | OT_REAL | 1 | Parameter for |
+ %| | | | primal-dual |
+ %| | | | augmented |
+ %| | | | Lagrangian. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| phiWeight | OT_REAL | 0.000 | Weight used in |
+ %| | | | pseudo-filter. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_header | OT_BOOLEAN | true | Print the |
+ %| | | | header with |
+ %| | | | problem |
+ %| | | | statistics |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| regularize | OT_BOOLEAN | false | Automatic |
+ %| | | | regularization |
+ %| | | | of Lagrange |
+ %| | | | Hessian. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| stabilized_qp_s | OT_STRING | GenericType() | The Stabilized |
+ %| olver | | | QP solver to be |
+ %| | | | used by the SQP |
+ %| | | | method |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| stabilized_qp_s | OT_DICT | GenericType() | Options to be |
+ %| olver_options | | | passed to the |
+ %| | | | Stabilized QP |
+ %| | | | solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tau0 | OT_REAL | 0.010 | Initial |
+ %| | | | parameter for |
+ %| | | | the merit |
+ %| | | | function |
+ %| | | | optimality |
+ %| | | | threshold. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_du | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | dual |
+ %| | | | infeasability |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol_pr | OT_REAL | 0.000 | Stopping |
+ %| | | | criterion for |
+ %| | | | primal |
+ %| | | | infeasibility |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| yEinitial | OT_STRING | "simple" | Initial |
+ %| | | | multiplier. |
+ %| | | | Simple (all |
+ %| | | | zero) or least |
+ %| | | | (LSQ). |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available monitors
+ %
+ %+-------------+
+ %| Id |
+ %+=============+
+ %| dx |
+ %+-------------+
+ %| eval_f |
+ %+-------------+
+ %| eval_g |
+ %+-------------+
+ %| eval_grad_f |
+ %+-------------+
+ %| eval_h |
+ %+-------------+
+ %| eval_jac_g |
+ %+-------------+
+ %| qp |
+ %+-------------+
+ %
+ %>List of available stats
+ %
+ %+---------------+
+ %| Id |
+ %+===============+
+ %| iter_count |
+ %+---------------+
+ %| return_status |
+ %+---------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: nlp_solver.hpp
+ %Usage: NlpSolver ()
+ %
+ methods
+ function varargout = reportConstraints(self,varargin)
+ %Prints out a human readable report about possible constraint violations,
+ %after solving.
+ %
+ %
+ %Usage: reportConstraints ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(989, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getReportConstraints(self,varargin)
+ %Usage: retval = getReportConstraints ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(990, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nlp(self,varargin)
+ %Access the NLP.
+ %
+ %>Input scheme: casadi::NlpSolverInput (NLP_SOLVER_NUM_IN = 8) [nlpSolverIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X0 | x0 | Decision variables, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_P | p | Value of fixed |
+ %| | | parameters (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBX | lbx | Decision variables |
+ %| | | lower bound (nx x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBX | ubx | Decision variables |
+ %| | | upper bound (nx x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBG | lbg | Constraints lower |
+ %| | | bound (ng x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBG | ubg | Constraints upper |
+ %| | | bound (ng x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X0 | lam_x0 | Lagrange multipliers |
+ %| | | for bounds on X, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G0 | lam_g0 | Lagrange multipliers |
+ %| | | for bounds on G, |
+ %| | | initial guess (ng x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::NlpSolverOutput (NLP_SOLVER_NUM_OUT = 6) [nlpSolverOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X | x | Decision variables at |
+ %| | | the optimal solution |
+ %| | | (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_F | f | Cost function value at |
+ %| | | the optimal solution |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_G | g | Constraints function |
+ %| | | at the optimal |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X | lam_x | Lagrange multipliers |
+ %| | | for bounds on X at the |
+ %| | | solution (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G | lam_g | Lagrange multipliers |
+ %| | | for bounds on G at the |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_P | lam_p | Lagrange multipliers |
+ %| | | for bounds on P at the |
+ %| | | solution (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = nlp ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(991, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = gradF(self,varargin)
+ %Access the objective gradient function>Input scheme: casadi::GradFInput
+ %(GRADF_NUM_IN = 2) [gradFIn]
+ %
+ %+-----------+-------+---------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=====================+
+ %| GRADF_X | x | Decision variable . |
+ %+-----------+-------+---------------------+
+ %| GRADF_P | p | Fixed parameter . |
+ %+-----------+-------+---------------------+
+ %
+ %
+ %Usage: retval = gradF ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(992, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = jacG(self,varargin)
+ %Access the Hessian of the Lagrangian function.
+ %
+ %>Input scheme: casadi::JacGInput (JACG_NUM_IN = 2) [jacGIn]
+ %
+ %+-----------+-------+---------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=====================+
+ %| JACG_X | x | Decision variable . |
+ %+-----------+-------+---------------------+
+ %| JACG_P | p | Fixed parameter . |
+ %+-----------+-------+---------------------+
+ %
+ %>Output scheme: casadi::JacGOutput (JACG_NUM_OUT = 3) [jacGOut]
+ %
+ %+-----------+-------+-------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+===============================+
+ %| JACG_JAC | jac | Jacobian of the constraints . |
+ %+-----------+-------+-------------------------------+
+ %| JACG_F | f | Objective function . |
+ %+-----------+-------+-------------------------------+
+ %| JACG_G | g | Constraint function . |
+ %+-----------+-------+-------------------------------+
+ %
+ %
+ %Usage: retval = jacG ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(993, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hessLag(self,varargin)
+ %Access the Jacobian of the constraint function.
+ %
+ %>Input scheme: casadi::HessLagInput (HESSLAG_NUM_IN = 4) [hessLagIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| HESSLAG_X | x | Decision variable . |
+ %+------------------------+------------------------+------------------------+
+ %| HESSLAG_P | p | Fixed parameter . |
+ %+------------------------+------------------------+------------------------+
+ %| HESSLAG_LAM_F | lam_f | Multiplier for f. Just |
+ %| | | a scalar factor for |
+ %| | | the objective that the |
+ %| | | NLP solver might use |
+ %| | | to scale the |
+ %| | | objective. |
+ %+------------------------+------------------------+------------------------+
+ %| HESSLAG_LAM_G | lam_g | Multiplier for g . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::HessLagOutput (HESSLAG_NUM_OUT = 5) [hessLagOut]
+ %
+ %+----------------+--------+------------------------------------------------+
+ %| Full name | Short | Description |
+ %+================+========+================================================+
+ %| HESSLAG_HESS | hess | Hessian of the Lagrangian . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_F | f | Objective function . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_G | g | Constraint function . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_GRAD_X | grad_x | Gradient of the Lagrangian with respect to x . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_GRAD_P | grad_p | Gradient of the Lagrangian with respect to p . |
+ %+----------------+--------+------------------------------------------------+
+ %
+ %
+ %Usage: retval = hessLag ()
+ %
+ %retval is of type Function.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(994, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getReducedHessian(self,varargin)
+ %Get the reduced Hessian. Requires a patched sIPOPT installation, see CasADi
+ %documentation.
+ %
+ %
+ %Usage: retval = getReducedHessian ()
+ %
+ %retval is of type DMatrix.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(995, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOptionsFromFile(self,varargin)
+ %Read options from parameter xml.
+ %
+ %
+ %Usage: setOptionsFromFile (file)
+ %
+ %file is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(996, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = NlpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(997, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(998, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(985, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(986, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(987, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(988, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Nullspace.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Nullspace.m
new file mode 100755
index 0000000..8ee8438
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Nullspace.m
@@ -0,0 +1,308 @@
+classdef Nullspace < casadi.Function
+ %Base class for nullspace construction.
+ %
+ %Constructs a basis for the null-space of a fat matrix A. i.e. finds Z such
+ %that AZ = 0 holds.
+ %
+ %The nullspace is also known as the orthogonal complement of the rowspace of
+ %a matrix.
+ %
+ %It is assumed that the matrix A is of full rank.
+ %
+ %Implementations are not required to construct an orthogonal or orthonormal
+ %basis Joris Gillis
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| dense | OT_BOOLEAN | true | Indicates | casadi::Null |
+ %| | | | that dense | spaceInterna |
+ %| | | | matrices can | l |
+ %| | | | be assumed | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: nullspace.hpp
+ %Usage: Nullspace ()
+ %
+ methods
+ function self = Nullspace(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1090, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1091, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1089, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ACOS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ACOS.m
new file mode 100755
index 0000000..578a3a1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ACOS.m
@@ -0,0 +1,7 @@
+function v = OP_ACOS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 80);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ACOSH.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ACOSH.m
new file mode 100755
index 0000000..b1f7aeb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ACOSH.m
@@ -0,0 +1,7 @@
+function v = OP_ACOSH()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 104);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ADD.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ADD.m
new file mode 100755
index 0000000..b8403d5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ADD.m
@@ -0,0 +1,7 @@
+function v = OP_ADD()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 64);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ADDNONZEROS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ADDNONZEROS.m
new file mode 100755
index 0000000..8821434
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ADDNONZEROS.m
@@ -0,0 +1,7 @@
+function v = OP_ADDNONZEROS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 130);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_AND.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_AND.m
new file mode 100755
index 0000000..996273c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_AND.m
@@ -0,0 +1,7 @@
+function v = OP_AND()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 87);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASIN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASIN.m
new file mode 100755
index 0000000..9d9d34d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASIN.m
@@ -0,0 +1,7 @@
+function v = OP_ASIN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 79);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASINH.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASINH.m
new file mode 100755
index 0000000..4b22716
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASINH.m
@@ -0,0 +1,7 @@
+function v = OP_ASINH()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 103);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASSERTION.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASSERTION.m
new file mode 100755
index 0000000..a246f62
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASSERTION.m
@@ -0,0 +1,7 @@
+function v = OP_ASSERTION()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 133);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASSIGN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASSIGN.m
new file mode 100755
index 0000000..be0b8a0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ASSIGN.m
@@ -0,0 +1,7 @@
+function v = OP_ASSIGN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 63);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATAN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATAN.m
new file mode 100755
index 0000000..728d83e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATAN.m
@@ -0,0 +1,7 @@
+function v = OP_ATAN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 81);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATAN2.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATAN2.m
new file mode 100755
index 0000000..e65dcbf
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATAN2.m
@@ -0,0 +1,7 @@
+function v = OP_ATAN2()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 106);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATANH.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATANH.m
new file mode 100755
index 0000000..9ca8e39
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ATANH.m
@@ -0,0 +1,7 @@
+function v = OP_ATANH()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 105);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CALL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CALL.m
new file mode 100755
index 0000000..a0bc0a8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CALL.m
@@ -0,0 +1,7 @@
+function v = OP_CALL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 111);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CEIL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CEIL.m
new file mode 100755
index 0000000..8857436
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CEIL.m
@@ -0,0 +1,7 @@
+function v = OP_CEIL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 90);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CONST.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CONST.m
new file mode 100755
index 0000000..f725668
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CONST.m
@@ -0,0 +1,7 @@
+function v = OP_CONST()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 107);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CONSTPOW.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CONSTPOW.m
new file mode 100755
index 0000000..e15fcf0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_CONSTPOW.m
@@ -0,0 +1,7 @@
+function v = OP_CONSTPOW()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 72);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COPYSIGN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COPYSIGN.m
new file mode 100755
index 0000000..93d8165
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COPYSIGN.m
@@ -0,0 +1,7 @@
+function v = OP_COPYSIGN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 94);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COS.m
new file mode 100755
index 0000000..5bccabc
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COS.m
@@ -0,0 +1,7 @@
+function v = OP_COS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 77);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COSH.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COSH.m
new file mode 100755
index 0000000..beea4bf
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_COSH.m
@@ -0,0 +1,7 @@
+function v = OP_COSH()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 101);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DETERMINANT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DETERMINANT.m
new file mode 100755
index 0000000..3379ae1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DETERMINANT.m
@@ -0,0 +1,7 @@
+function v = OP_DETERMINANT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 117);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIAGCAT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIAGCAT.m
new file mode 100755
index 0000000..ef5059f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIAGCAT.m
@@ -0,0 +1,7 @@
+function v = OP_DIAGCAT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 122);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIAGSPLIT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIAGSPLIT.m
new file mode 100755
index 0000000..964873b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIAGSPLIT.m
@@ -0,0 +1,7 @@
+function v = OP_DIAGSPLIT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 125);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIV.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIV.m
new file mode 100755
index 0000000..70267f8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_DIV.m
@@ -0,0 +1,7 @@
+function v = OP_DIV()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 67);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_EQ.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_EQ.m
new file mode 100755
index 0000000..9ab54c8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_EQ.m
@@ -0,0 +1,7 @@
+function v = OP_EQ()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 84);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ERF.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ERF.m
new file mode 100755
index 0000000..eb37339
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ERF.m
@@ -0,0 +1,7 @@
+function v = OP_ERF()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 96);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ERFINV.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ERFINV.m
new file mode 100755
index 0000000..92e5b69
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_ERFINV.m
@@ -0,0 +1,7 @@
+function v = OP_ERFINV()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 141);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_EXP.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_EXP.m
new file mode 100755
index 0000000..a8dfcc5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_EXP.m
@@ -0,0 +1,7 @@
+function v = OP_EXP()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 69);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FABS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FABS.m
new file mode 100755
index 0000000..24aac04
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FABS.m
@@ -0,0 +1,7 @@
+function v = OP_FABS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 92);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FIND.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FIND.m
new file mode 100755
index 0000000..648e061
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FIND.m
@@ -0,0 +1,7 @@
+function v = OP_FIND()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 112);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FLOOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FLOOR.m
new file mode 100755
index 0000000..8a36f6e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FLOOR.m
@@ -0,0 +1,7 @@
+function v = OP_FLOOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 89);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMAX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMAX.m
new file mode 100755
index 0000000..564cc9d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMAX.m
@@ -0,0 +1,7 @@
+function v = OP_FMAX()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 98);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMIN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMIN.m
new file mode 100755
index 0000000..ace1d4d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMIN.m
@@ -0,0 +1,7 @@
+function v = OP_FMIN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 97);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMOD.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMOD.m
new file mode 100755
index 0000000..36bdd35
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_FMOD.m
@@ -0,0 +1,7 @@
+function v = OP_FMOD()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 91);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_GETNONZEROS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_GETNONZEROS.m
new file mode 100755
index 0000000..7267956
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_GETNONZEROS.m
@@ -0,0 +1,7 @@
+function v = OP_GETNONZEROS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 129);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZCAT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZCAT.m
new file mode 100755
index 0000000..2c01bea
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZCAT.m
@@ -0,0 +1,7 @@
+function v = OP_HORZCAT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 120);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZREPMAT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZREPMAT.m
new file mode 100755
index 0000000..9fedbd1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZREPMAT.m
@@ -0,0 +1,7 @@
+function v = OP_HORZREPMAT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 139);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZREPSUM.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZREPSUM.m
new file mode 100755
index 0000000..6ef30c5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZREPSUM.m
@@ -0,0 +1,7 @@
+function v = OP_HORZREPSUM()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 140);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZSPLIT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZSPLIT.m
new file mode 100755
index 0000000..eeb4615
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_HORZSPLIT.m
@@ -0,0 +1,7 @@
+function v = OP_HORZSPLIT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 123);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_IF_ELSE_ZERO.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_IF_ELSE_ZERO.m
new file mode 100755
index 0000000..e194b6e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_IF_ELSE_ZERO.m
@@ -0,0 +1,7 @@
+function v = OP_IF_ELSE_ZERO()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 95);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INNER_PROD.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INNER_PROD.m
new file mode 100755
index 0000000..358130b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INNER_PROD.m
@@ -0,0 +1,7 @@
+function v = OP_INNER_PROD()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 119);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INPUT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INPUT.m
new file mode 100755
index 0000000..bff6bb4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INPUT.m
@@ -0,0 +1,7 @@
+function v = OP_INPUT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 108);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INV.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INV.m
new file mode 100755
index 0000000..6f00152
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INV.m
@@ -0,0 +1,7 @@
+function v = OP_INV()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 99);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INVERSE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INVERSE.m
new file mode 100755
index 0000000..2066da7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_INVERSE.m
@@ -0,0 +1,7 @@
+function v = OP_INVERSE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 118);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LE.m
new file mode 100755
index 0000000..ca35439
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LE.m
@@ -0,0 +1,7 @@
+function v = OP_LE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 83);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LIFT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LIFT.m
new file mode 100755
index 0000000..8ab5a11
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LIFT.m
@@ -0,0 +1,7 @@
+function v = OP_LIFT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 143);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LOG.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LOG.m
new file mode 100755
index 0000000..1326c60
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LOG.m
@@ -0,0 +1,7 @@
+function v = OP_LOG()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 70);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LT.m
new file mode 100755
index 0000000..a754f14
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_LT.m
@@ -0,0 +1,7 @@
+function v = OP_LT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 82);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MAP.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MAP.m
new file mode 100755
index 0000000..76aa9f5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MAP.m
@@ -0,0 +1,7 @@
+function v = OP_MAP()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 113);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MATMUL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MATMUL.m
new file mode 100755
index 0000000..d878fe0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MATMUL.m
@@ -0,0 +1,7 @@
+function v = OP_MATMUL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 114);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MONITOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MONITOR.m
new file mode 100755
index 0000000..54f96d1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MONITOR.m
@@ -0,0 +1,7 @@
+function v = OP_MONITOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 134);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MUL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MUL.m
new file mode 100755
index 0000000..22c66e2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_MUL.m
@@ -0,0 +1,7 @@
+function v = OP_MUL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 66);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NE.m
new file mode 100755
index 0000000..3e008d3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NE.m
@@ -0,0 +1,7 @@
+function v = OP_NE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 85);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NEG.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NEG.m
new file mode 100755
index 0000000..49afbe7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NEG.m
@@ -0,0 +1,7 @@
+function v = OP_NEG()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 68);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORM1.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORM1.m
new file mode 100755
index 0000000..53d85c4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORM1.m
@@ -0,0 +1,7 @@
+function v = OP_NORM1()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 136);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORM2.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORM2.m
new file mode 100755
index 0000000..7a882e3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORM2.m
@@ -0,0 +1,7 @@
+function v = OP_NORM2()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 135);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORMF.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORMF.m
new file mode 100755
index 0000000..3e3e85f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORMF.m
@@ -0,0 +1,7 @@
+function v = OP_NORMF()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 138);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORMINF.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORMINF.m
new file mode 100755
index 0000000..8ccd157
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NORMINF.m
@@ -0,0 +1,7 @@
+function v = OP_NORMINF()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 137);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NOT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NOT.m
new file mode 100755
index 0000000..f8898c6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_NOT.m
@@ -0,0 +1,7 @@
+function v = OP_NOT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 86);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_OR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_OR.m
new file mode 100755
index 0000000..3762523
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_OR.m
@@ -0,0 +1,7 @@
+function v = OP_OR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 88);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_OUTPUT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_OUTPUT.m
new file mode 100755
index 0000000..7908848
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_OUTPUT.m
@@ -0,0 +1,7 @@
+function v = OP_OUTPUT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 109);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PARAMETER.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PARAMETER.m
new file mode 100755
index 0000000..d11f4a1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PARAMETER.m
@@ -0,0 +1,7 @@
+function v = OP_PARAMETER()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 110);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_POW.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_POW.m
new file mode 100755
index 0000000..c71c3bb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_POW.m
@@ -0,0 +1,7 @@
+function v = OP_POW()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 71);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PRINTME.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PRINTME.m
new file mode 100755
index 0000000..e174b2b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PRINTME.m
@@ -0,0 +1,7 @@
+function v = OP_PRINTME()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 142);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PROJECT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PROJECT.m
new file mode 100755
index 0000000..9470807
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_PROJECT.m
@@ -0,0 +1,7 @@
+function v = OP_PROJECT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 132);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_RESHAPE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_RESHAPE.m
new file mode 100755
index 0000000..8f96c79
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_RESHAPE.m
@@ -0,0 +1,7 @@
+function v = OP_RESHAPE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 126);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SETNONZEROS.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SETNONZEROS.m
new file mode 100755
index 0000000..1049984
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SETNONZEROS.m
@@ -0,0 +1,7 @@
+function v = OP_SETNONZEROS()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 131);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SIGN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SIGN.m
new file mode 100755
index 0000000..8114789
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SIGN.m
@@ -0,0 +1,7 @@
+function v = OP_SIGN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 93);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SIN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SIN.m
new file mode 100755
index 0000000..25a8bc3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SIN.m
@@ -0,0 +1,7 @@
+function v = OP_SIN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 76);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SINH.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SINH.m
new file mode 100755
index 0000000..98097a4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SINH.m
@@ -0,0 +1,7 @@
+function v = OP_SINH()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 100);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SOLVE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SOLVE.m
new file mode 100755
index 0000000..885f8fd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SOLVE.m
@@ -0,0 +1,7 @@
+function v = OP_SOLVE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 115);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SQ.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SQ.m
new file mode 100755
index 0000000..ed69798
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SQ.m
@@ -0,0 +1,7 @@
+function v = OP_SQ()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 74);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SQRT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SQRT.m
new file mode 100755
index 0000000..e431fae
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SQRT.m
@@ -0,0 +1,7 @@
+function v = OP_SQRT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 73);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUB.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUB.m
new file mode 100755
index 0000000..6040fa4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUB.m
@@ -0,0 +1,7 @@
+function v = OP_SUB()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 65);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUBASSIGN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUBASSIGN.m
new file mode 100755
index 0000000..3eff7a4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUBASSIGN.m
@@ -0,0 +1,7 @@
+function v = OP_SUBASSIGN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 128);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUBREF.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUBREF.m
new file mode 100755
index 0000000..8ebe8ad
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_SUBREF.m
@@ -0,0 +1,7 @@
+function v = OP_SUBREF()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 127);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TAN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TAN.m
new file mode 100755
index 0000000..94e801c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TAN.m
@@ -0,0 +1,7 @@
+function v = OP_TAN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 78);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TANH.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TANH.m
new file mode 100755
index 0000000..9043112
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TANH.m
@@ -0,0 +1,7 @@
+function v = OP_TANH()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 102);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TRANSPOSE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TRANSPOSE.m
new file mode 100755
index 0000000..c00dbdb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TRANSPOSE.m
@@ -0,0 +1,7 @@
+function v = OP_TRANSPOSE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 116);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TWICE.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TWICE.m
new file mode 100755
index 0000000..e71a4ea
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_TWICE.m
@@ -0,0 +1,7 @@
+function v = OP_TWICE()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 75);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_VERTCAT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_VERTCAT.m
new file mode 100755
index 0000000..09debc2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_VERTCAT.m
@@ -0,0 +1,7 @@
+function v = OP_VERTCAT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 121);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_VERTSPLIT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_VERTSPLIT.m
new file mode 100755
index 0000000..ec1f3f2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OP_VERTSPLIT.m
@@ -0,0 +1,7 @@
+function v = OP_VERTSPLIT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 124);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_BOOLEAN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_BOOLEAN.m
new file mode 100755
index 0000000..a582128
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_BOOLEAN.m
@@ -0,0 +1,7 @@
+function v = OT_BOOLEAN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 47);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_BOOLVECTOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_BOOLVECTOR.m
new file mode 100755
index 0000000..b545890
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_BOOLVECTOR.m
@@ -0,0 +1,7 @@
+function v = OT_BOOLVECTOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 53);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_CALLBACK.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_CALLBACK.m
new file mode 100755
index 0000000..31f6329
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_CALLBACK.m
@@ -0,0 +1,7 @@
+function v = OT_CALLBACK()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 59);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_DERIVATIVEGENERATOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_DERIVATIVEGENERATOR.m
new file mode 100755
index 0000000..bbe3267
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_DERIVATIVEGENERATOR.m
@@ -0,0 +1,7 @@
+function v = OT_DERIVATIVEGENERATOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 57);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_DICT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_DICT.m
new file mode 100755
index 0000000..e097ded
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_DICT.m
@@ -0,0 +1,7 @@
+function v = OT_DICT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 56);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_FUNCTION.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_FUNCTION.m
new file mode 100755
index 0000000..9255237
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_FUNCTION.m
@@ -0,0 +1,7 @@
+function v = OT_FUNCTION()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 58);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGER.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGER.m
new file mode 100755
index 0000000..4119c4c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGER.m
@@ -0,0 +1,7 @@
+function v = OT_INTEGER()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 48);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGERVECTOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGERVECTOR.m
new file mode 100755
index 0000000..6dca63f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGERVECTOR.m
@@ -0,0 +1,7 @@
+function v = OT_INTEGERVECTOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 51);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGERVECTORVECTOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGERVECTORVECTOR.m
new file mode 100755
index 0000000..3229564
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_INTEGERVECTORVECTOR.m
@@ -0,0 +1,7 @@
+function v = OT_INTEGERVECTORVECTOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 52);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_NULL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_NULL.m
new file mode 100755
index 0000000..f82d693
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_NULL.m
@@ -0,0 +1,7 @@
+function v = OT_NULL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 46);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_REAL.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_REAL.m
new file mode 100755
index 0000000..df29d2d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_REAL.m
@@ -0,0 +1,7 @@
+function v = OT_REAL()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 49);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_REALVECTOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_REALVECTOR.m
new file mode 100755
index 0000000..eb7b8f3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_REALVECTOR.m
@@ -0,0 +1,7 @@
+function v = OT_REALVECTOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 54);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_STRING.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_STRING.m
new file mode 100755
index 0000000..e74c041
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_STRING.m
@@ -0,0 +1,7 @@
+function v = OT_STRING()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 50);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_STRINGVECTOR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_STRINGVECTOR.m
new file mode 100755
index 0000000..960ebb2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_STRINGVECTOR.m
@@ -0,0 +1,7 @@
+function v = OT_STRINGVECTOR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 55);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_UNKNOWN.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_UNKNOWN.m
new file mode 100755
index 0000000..98dd4fa
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_UNKNOWN.m
@@ -0,0 +1,7 @@
+function v = OT_UNKNOWN()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 61);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_VOIDPTR.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_VOIDPTR.m
new file mode 100755
index 0000000..931bd4e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OT_VOIDPTR.m
@@ -0,0 +1,7 @@
+function v = OT_VOIDPTR()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 60);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OUTPUT.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OUTPUT.m
new file mode 100755
index 0000000..142cf4d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OUTPUT.m
@@ -0,0 +1,7 @@
+function v = OUTPUT()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 160);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OptionsFunctionality.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OptionsFunctionality.m
new file mode 100755
index 0000000..c0cd53d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/OptionsFunctionality.m
@@ -0,0 +1,541 @@
+classdef OptionsFunctionality < casadi.SharedObject
+ %Provides options setting/getting functionality.
+ %
+ %Gives a derived class the ability to set and retrieve options in a
+ %convenient way. It also contains error checking, making sure that the option
+ %exists and that the value type is correct.
+ %
+ %A derived class should add option names, types and default values to the
+ %corresponding vectors.
+ %
+ %Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: options_functionality.hpp
+ %Usage: OptionsFunctionality ()
+ %
+ methods
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(107, self);
+ self.swigPtr=[];
+ end
+ end
+ function varargout = getOption(self,varargin)
+ %get an option value
+ %
+ %
+ %Usage: retval = getOption (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type GenericType.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(108, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasOption(self,varargin)
+ %check if there is an option str
+ %
+ %
+ %Usage: retval = hasOption (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(109, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasSetOption(self,varargin)
+ %check if the user has there is an option str
+ %
+ %
+ %Usage: retval = hasSetOption (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(110, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printOptions(self,varargin)
+ %Print options to a stream.
+ %
+ %
+ %Usage: printOptions ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(111, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = copyOptions(self,varargin)
+ %Copy all options from another object.
+ %
+ %
+ %Usage: copyOptions (obj, skipUnknown = false)
+ %
+ %obj is of type OptionsFunctionality. skipUnknown is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(112, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dictionary(self,varargin)
+ %Get the dictionary.
+ %
+ %
+ %Usage: retval = dictionary ()
+ %
+ %retval is of type casadi::Dict const &.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(113, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionNames(self,varargin)
+ %Get a list of all option names.
+ %
+ %
+ %Usage: retval = getOptionNames ()
+ %
+ %retval is of type std::vector< std::string,std::allocator< std::string > >.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(114, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionDescription(self,varargin)
+ %Get the description of a certain option.
+ %
+ %
+ %Usage: retval = getOptionDescription (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(115, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionType(self,varargin)
+ %Get the type of a certain option.
+ %
+ %
+ %Usage: retval = getOptionType (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type casadi::TypeID.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(116, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionTypeName(self,varargin)
+ %Get the type name of a certain option.
+ %
+ %
+ %Usage: retval = getOptionTypeName (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(117, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionAllowed(self,varargin)
+ %Get the allowed values of a certain option.
+ %
+ %
+ %Usage: retval = getOptionAllowed (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type std::vector< casadi::GenericType,std::allocator< casadi::GenericType > >.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(118, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionAllowedIndex(self,varargin)
+ %[INTERNAL] Get the index into allowed options of a certain option.
+ %
+ %
+ %Usage: retval = getOptionAllowedIndex (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(119, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOptionByAllowedIndex(self,varargin)
+ %[INTERNAL] Set a certain option by giving its index into the allowed
+ %values.
+ %
+ %
+ %Usage: setOptionByAllowedIndex (name, i)
+ %
+ %name is of type std::string const &. i is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(120, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionEnumValue(self,varargin)
+ %[INTERNAL] Get the enum value corresponding to th certain option.
+ %
+ %
+ %Usage: retval = getOptionEnumValue (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(121, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOptionByEnumValue(self,varargin)
+ %[INTERNAL] Set a certain option by giving an enum value.
+ %
+ %
+ %Usage: setOptionByEnumValue (name, v)
+ %
+ %name is of type std::string const &. v is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(122, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getOptionDefault(self,varargin)
+ %Get the default of a certain option.
+ %
+ %
+ %Usage: retval = getOptionDefault (str)
+ %
+ %str is of type std::string const &. str is of type std::string const &. retval is of type GenericType.
+
+ try
+
+ if ~isa(self,'casadi.OptionsFunctionality')
+ self = casadi.OptionsFunctionality(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(123, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setOption(self,varargin)
+ %> void OptionsFunctionality.setOption(str str, GenericType val)
+ %------------------------------------------------------------------------
+ %
+ %[DEPRECATED: pass option dictionary to function constructor] Set an option.
+ %For a list of options, check the class documentation of this class.
+ %
+ %The setOptions are only considered before the init function. If properties
+ %changes, the init function should be called again.
+ %
+ %> void OptionsFunctionality.setOption(Dict dict, bool skipUnknown=false)
+ %------------------------------------------------------------------------
+ %
+ %[DEPRECATED: pass option dictionary to function constructor] Set a set of
+ %options. For a list of options, check the class documentation of this class.
+ %
+ %The setOptions are only considered before the init function. If properties
+ %changes, the init function should be called again.
+ %
+ %
+ %Usage: setOption (name, val)
+ %
+ %name is of type std::string const &. val is of type std::vector< std::vector< int,std::allocator< int > >,std::allocator< std::vector< int,std::allocator< int > > > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(126, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = OptionsFunctionality(varargin)
+ self@casadi.SharedObject(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(127, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(124, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = addOptionRecipe(varargin)
+ %Usage: retval = addOptionRecipe (dict, recipe)
+ %
+ %dict is of type casadi::Dict const &. recipe is of type std::string const &. dict is of type casadi::Dict const &. recipe is of type std::string const &. retval is of type casadi::Dict.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(125, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PARAMETER.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PARAMETER.m
new file mode 100755
index 0000000..c03f6cf
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PARAMETER.m
@@ -0,0 +1,7 @@
+function v = PARAMETER()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 156);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintDMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintDMatrix.m
new file mode 100755
index 0000000..48f2f61
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintDMatrix.m
@@ -0,0 +1,96 @@
+classdef PrintDMatrix < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintDMatrix ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintDMatrix')
+ self = casadi.PrintDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(40, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintDMatrix')
+ self = casadi.PrintDMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(41, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintDMatrix(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(42, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(43, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintDaeBuilder.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintDaeBuilder.m
new file mode 100755
index 0000000..b1fbad7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintDaeBuilder.m
@@ -0,0 +1,96 @@
+classdef PrintDaeBuilder < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintDaeBuilder ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintDaeBuilder')
+ self = casadi.PrintDaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(52, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintDaeBuilder')
+ self = casadi.PrintDaeBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(53, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintDaeBuilder(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(54, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(55, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintIMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintIMatrix.m
new file mode 100755
index 0000000..c1cf0df
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintIMatrix.m
@@ -0,0 +1,96 @@
+classdef PrintIMatrix < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintIMatrix ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintIMatrix')
+ self = casadi.PrintIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(36, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintIMatrix')
+ self = casadi.PrintIMatrix(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(37, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintIMatrix(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(38, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(39, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintNlpBuilder.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintNlpBuilder.m
new file mode 100755
index 0000000..e12c6a6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintNlpBuilder.m
@@ -0,0 +1,96 @@
+classdef PrintNlpBuilder < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintNlpBuilder ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintNlpBuilder')
+ self = casadi.PrintNlpBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(44, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintNlpBuilder')
+ self = casadi.PrintNlpBuilder(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(45, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintNlpBuilder(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(46, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(47, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSX.m
new file mode 100755
index 0000000..bf0c556
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSX.m
@@ -0,0 +1,96 @@
+classdef PrintSX < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintSX ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintSX')
+ self = casadi.PrintSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(477, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintSX')
+ self = casadi.PrintSX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(478, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintSX(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(479, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(480, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSharedObject.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSharedObject.m
new file mode 100755
index 0000000..ce569e5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSharedObject.m
@@ -0,0 +1,96 @@
+classdef PrintSharedObject < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintSharedObject ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintSharedObject')
+ self = casadi.PrintSharedObject(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(28, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintSharedObject')
+ self = casadi.PrintSharedObject(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(29, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintSharedObject(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(30, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(31, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSlice.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSlice.m
new file mode 100755
index 0000000..093a1d7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintSlice.m
@@ -0,0 +1,96 @@
+classdef PrintSlice < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintSlice ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintSlice')
+ self = casadi.PrintSlice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(32, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintSlice')
+ self = casadi.PrintSlice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(33, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintSlice(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(34, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(35, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintVariable.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintVariable.m
new file mode 100755
index 0000000..bedc326
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/PrintVariable.m
@@ -0,0 +1,96 @@
+classdef PrintVariable < SwigRef
+ %Base class for objects that have a natural string representation.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: printable_object.hpp
+ %Usage: PrintVariable ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = getDescription(self,varargin)
+ %Return a string with a description (for SWIG)
+ %
+ %
+ %Usage: retval = getDescription ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintVariable')
+ self = casadi.PrintVariable(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(48, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getRepresentation(self,varargin)
+ %Return a string with a representation (for SWIG)
+ %
+ %
+ %Usage: retval = getRepresentation ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.PrintVariable')
+ self = casadi.PrintVariable(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(49, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = PrintVariable(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(50, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(51, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/QcqpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/QcqpSolver.m
new file mode 100755
index 0000000..e018c98
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/QcqpSolver.m
@@ -0,0 +1,523 @@
+classdef QcqpSolver < casadi.Function
+ %QcqpSolver.
+ %
+ %Solves the following strictly convex problem:
+ %
+ %
+ %
+ %::
+ %
+ % min 1/2 x' H x + g' x
+ % x
+ %
+ % subject to
+ % 1/2 x' Pi x + qi' x + ri <= 0 for i=0..nq-1
+ % LBA <= A x <= UBA
+ % LBX <= x <= UBX
+ %
+ % with :
+ % H, Pi sparse (n x n) positive definite
+ % g, qi dense (n x 1)
+ % ri scalar
+ %
+ % n: number of decision variables (x)
+ % nc: number of linear constraints (A)
+ % nq: number of quadratic constraints
+ %
+ %
+ %
+ %If H, Pi is not positive-definite, the solver should throw an error.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::QcqpSolverInput (QCQP_SOLVER_NUM_IN = 12) [qcqpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QCQP_SOLVER_H | h | The square matrix H: |
+ %| | | sparse, (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_G | g | The vector g: dense, |
+ %| | | (n x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_P | p | The horizontal stack |
+ %| | | of all Pi. Each Pi is |
+ %| | | sparse (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_Q | q | The vertical stack of |
+ %| | | all qi: dense, (nq n x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_R | r | The vertical stack of |
+ %| | | all scalars ri (nq x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LBA | lba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_UBA | uba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LBX | lbx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_UBX | ubx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_X0 | x0 | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LAM_X0 | lam_x0 | dense |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::QcqpSolverOutput (QCQP_SOLVER_NUM_OUT = 4) [qcqpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QCQP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode c |
+ %| | | | according to | asadi::QcqpS |
+ %| | | | a given | olverInterna |
+ %| | | | recipe (low- | l |
+ %| | | | level) (qp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- socp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %QcqpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %socp
+ %----
+ %
+ %
+ %
+ %Solve a QCQP with an SocpSolver
+ %
+ %Note: this implementation relies on Cholesky decomposition: Chol(H) = L -> H
+ %= LL' with L lower triangular This requires Pi, H to be positive definite.
+ %Positive semi-definite is not sufficient. Notably, H==0 will not work.
+ %
+ %A better implementation would rely on matrix square root, but we need
+ %singular value decomposition to implement that.
+ %
+ %This implementation makes use of the epigraph reformulation:
+ %
+ %::
+ %
+ % * min f(x)
+ % * x
+ % *
+ % * min t
+ % * x, t f(x) <= t
+ % *
+ %
+ %
+ %
+ %This implementation makes use of the following identity:
+ %
+ %::
+ %
+ % * || Gx+h||_2 <= e'x + f
+ % *
+ % * x'(G'G - ee')x + (2 h'G - 2 f e') x + h'h - f <= 0
+ % *
+ %
+ %where we put e = [0 0 ... 1] for the quadratic constraint arising from the
+ %epigraph reformulation and e==0 for all other quadratic constraints.
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+-------------------+
+ %| Id |
+ %+===================+
+ %| socp_solver_stats |
+ %+-------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: qcqp_solver.hpp
+ %Usage: QcqpSolver ()
+ %
+ methods
+ function self = QcqpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1041, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1042, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1037, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1038, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1039, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1040, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/QpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/QpSolver.m
new file mode 100755
index 0000000..8f59c25
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/QpSolver.m
@@ -0,0 +1,863 @@
+classdef QpSolver < casadi.Function
+ %QpSolver.
+ %
+ %Solves the following strictly convex problem:
+ %
+ %
+ %
+ %::
+ %
+ % min 1/2 x' H x + g' x
+ % x
+ %
+ % subject to
+ % LBA <= A x <= UBA
+ % LBX <= x <= UBX
+ %
+ % with :
+ % H sparse (n x n) positive definite
+ % g dense (n x 1)
+ %
+ % n: number of decision variables (x)
+ % nc: number of constraints (A)
+ %
+ %
+ %
+ %If H is not positive-definite, the solver should throw an error.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::QpSolverInput (QP_SOLVER_NUM_IN = 9) [qpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QP_SOLVER_H | h | The square matrix H: |
+ %| | | sparse, (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_G | g | The vector g: dense, |
+ %| | | (n x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LBA | lba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_UBA | uba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LBX | lbx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_UBX | ubx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_X0 | x0 | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_X0 | lam_x0 | dense |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::QpSolverOutput (QP_SOLVER_NUM_OUT = 4) [qpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode c |
+ %| | | | according to | asadi::QpSol |
+ %| | | | a given | verInternal |
+ %| | | | recipe (low- | |
+ %| | | | level) (lp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- cplex
+ %
+ %- ooqp
+ %
+ %- qpoases
+ %
+ %- sqic
+ %
+ %- nlp
+ %
+ %- qcqp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %QpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %cplex
+ %-----
+ %
+ %
+ %
+ %Interface to Cplex solver for sparse Quadratic Programs
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| barrier_maxiter | OT_INTEGER | 2.100e+09 | Maximum number |
+ %| | | | of barrier |
+ %| | | | iterations. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| convex | OT_BOOLEAN | true | Indicates if |
+ %| | | | the QP is |
+ %| | | | convex or not |
+ %| | | | (affects only |
+ %| | | | the barrier |
+ %| | | | method). |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dep_check | OT_STRING | "off" | Detect |
+ %| | | | redundant |
+ %| | | | constraints. (a |
+ %| | | | utomatic:-1|off |
+ %| | | | :0|begin:1|end: |
+ %| | | | 2|both:3) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dump_filename | OT_STRING | "qp.dat" | The filename to |
+ %| | | | dump to. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dump_to_file | OT_BOOLEAN | false | Dumps QP to |
+ %| | | | file in CPLEX |
+ %| | | | format. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_method | OT_STRING | "automatic" | Determines |
+ %| | | | which CPLEX |
+ %| | | | algorithm to |
+ %| | | | use. (automatic |
+ %| | | | |primal_simplex |
+ %| | | | |dual_simplex|n |
+ %| | | | etwork|barrier| |
+ %| | | | sifting|concurr |
+ %| | | | ent|crossover) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| simplex_maxiter | OT_INTEGER | 2.100e+09 | Maximum number |
+ %| | | | of simplex |
+ %| | | | iterations. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| tol | OT_REAL | 0.000 | Tolerance of |
+ %| | | | solver |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| warm_start | OT_BOOLEAN | false | Use warm start |
+ %| | | | with simplex |
+ %| | | | methods |
+ %| | | | (affects only |
+ %| | | | the simplex |
+ %| | | | methods). |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %ooqp
+ %----
+ %
+ %
+ %
+ %Interface to the OOQP Solver for quadratic programming The current
+ %implementation assumes that OOQP is configured with the MA27 sparse linear
+ %solver.
+ %
+ %NOTE: when doing multiple calls to evaluate(), check if you need to
+ %reInit();
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| artol | OT_REAL | 0.000 | tolerance as |
+ %| | | | provided with |
+ %| | | | setArTol to |
+ %| | | | OOQP |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| mutol | OT_REAL | 0.000 | tolerance as |
+ %| | | | provided with |
+ %| | | | setMuTol to |
+ %| | | | OOQP |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| print_level | OT_INTEGER | 0 | Print level. |
+ %| | | | OOQP listens to |
+ %| | | | print_level 0, |
+ %| | | | 10 and 100 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %qpoases
+ %-------
+ %
+ %
+ %
+ %Interface to QPOases Solver for quadratic programming
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| CPUtime | OT_REAL | None | The maximum |
+ %| | | | allowed CPU |
+ %| | | | time in seconds |
+ %| | | | for the whole |
+ %| | | | initialisation |
+ %| | | | (and the |
+ %| | | | actually |
+ %| | | | required one on |
+ %| | | | output). |
+ %| | | | Disabled if |
+ %| | | | unset. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| boundRelaxation | OT_REAL | 10000 | Initial |
+ %| | | | relaxation of |
+ %| | | | bounds to start |
+ %| | | | homotopy and |
+ %| | | | initial value |
+ %| | | | for far bounds. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| boundTolerance | OT_REAL | 0.000 | If upper and |
+ %| | | | lower bounds |
+ %| | | | differ less |
+ %| | | | than this |
+ %| | | | tolerance, they |
+ %| | | | are regarded |
+ %| | | | equal, i.e. as |
+ %| | | | equality |
+ %| | | | constraint. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableCholeskyR | OT_INTEGER | 0 | Specifies the |
+ %| efactorisation | | | frequency of a |
+ %| | | | full re- |
+ %| | | | factorisation |
+ %| | | | of projected |
+ %| | | | Hessian matrix: |
+ %| | | | 0: turns them |
+ %| | | | off, 1: uses |
+ %| | | | them at each |
+ %| | | | iteration etc. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableDriftCorr | OT_INTEGER | 1 | Specifies the |
+ %| ection | | | frequency of |
+ %| | | | drift |
+ %| | | | corrections: 0: |
+ %| | | | turns them off. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableEqualitie | OT_BOOLEAN | False | Specifies |
+ %| s | | | whether |
+ %| | | | equalities |
+ %| | | | should be |
+ %| | | | treated as |
+ %| | | | always active |
+ %| | | | (True) or not |
+ %| | | | (False) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableFarBounds | OT_BOOLEAN | True | Enables the use |
+ %| | | | of far bounds. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableFlippingB | OT_BOOLEAN | True | Enables the use |
+ %| ounds | | | of flipping |
+ %| | | | bounds. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableFullLITes | OT_BOOLEAN | False | Enables |
+ %| ts | | | condition- |
+ %| | | | hardened (but |
+ %| | | | more expensive) |
+ %| | | | LI test. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableNZCTests | OT_BOOLEAN | True | Enables nonzero |
+ %| | | | curvature |
+ %| | | | tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableRamping | OT_BOOLEAN | True | Enables |
+ %| | | | ramping. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| enableRegularis | OT_BOOLEAN | False | Enables |
+ %| ation | | | automatic |
+ %| | | | Hessian |
+ %| | | | regularisation. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsDen | OT_REAL | 0.000 | Denominator |
+ %| | | | tolerance for |
+ %| | | | ratio tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsFlipping | OT_REAL | 0.000 | Tolerance of |
+ %| | | | squared |
+ %| | | | Cholesky |
+ %| | | | diagonal factor |
+ %| | | | which triggers |
+ %| | | | flipping bound. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsIterRef | OT_REAL | 0.000 | Early |
+ %| | | | termination |
+ %| | | | tolerance for |
+ %| | | | iterative |
+ %| | | | refinement. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsLITests | OT_REAL | 0.000 | Tolerance for |
+ %| | | | linear |
+ %| | | | independence |
+ %| | | | tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsNZCTests | OT_REAL | 0.000 | Tolerance for |
+ %| | | | nonzero |
+ %| | | | curvature |
+ %| | | | tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsNum | OT_REAL | -0.000 | Numerator |
+ %| | | | tolerance for |
+ %| | | | ratio tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| epsRegularisati | OT_REAL | 0.000 | Scaling factor |
+ %| on | | | of identity |
+ %| | | | matrix used for |
+ %| | | | Hessian |
+ %| | | | regularisation. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| finalRamping | OT_REAL | 1 | Final value for |
+ %| | | | ramping |
+ %| | | | strategy. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| growFarBounds | OT_REAL | 1000 | Factor to grow |
+ %| | | | far bounds. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| initialFarBound | OT_REAL | 1000000 | Initial size |
+ %| s | | | for far bounds. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| initialRamping | OT_REAL | 0.500 | Start value for |
+ %| | | | ramping |
+ %| | | | strategy. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| initialStatusBo | OT_STRING | lower | Initial status |
+ %| unds | | | of bounds at |
+ %| | | | first |
+ %| | | | iteration. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| maxDualJump | OT_REAL | 100000000 | Maximum allowed |
+ %| | | | jump in dual |
+ %| | | | variables in |
+ %| | | | linear |
+ %| | | | independence |
+ %| | | | tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| maxPrimalJump | OT_REAL | 100000000 | Maximum allowed |
+ %| | | | jump in primal |
+ %| | | | variables in |
+ %| | | | nonzero |
+ %| | | | curvature |
+ %| | | | tests. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nWSR | OT_INTEGER | None | The maximum |
+ %| | | | number of |
+ %| | | | working set |
+ %| | | | recalculations |
+ %| | | | to be performed |
+ %| | | | during the |
+ %| | | | initial |
+ %| | | | homotopy. |
+ %| | | | Default is 5(nx |
+ %| | | | + nc) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| numRefinementSt | OT_INTEGER | 1 | Maximum number |
+ %| eps | | | of iterative |
+ %| | | | refinement |
+ %| | | | steps. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| numRegularisati | OT_INTEGER | 0 | Maximum number |
+ %| onSteps | | | of successive |
+ %| | | | regularisation |
+ %| | | | steps. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| printLevel | OT_STRING | medium | Defines the |
+ %| | | | amount of text |
+ %| | | | output during |
+ %| | | | QP solution, |
+ %| | | | see Section 5.7 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| terminationTole | OT_REAL | 0.000 | Relative |
+ %| rance | | | termination |
+ %| | | | tolerance to |
+ %| | | | stop homotopy. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %sqic
+ %----
+ %
+ %
+ %
+ %Interface to the SQIC solver for quadratic programming
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %nlp
+ %---
+ %
+ %
+ %
+ %Solve QPs using an NlpSolver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+------------------+
+ %| Id |
+ %+==================+
+ %| nlp_solver_stats |
+ %+------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %qcqp
+ %----
+ %
+ %
+ %
+ %Solve QP using a QcqpSolver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+-------------------+
+ %| Id |
+ %+===================+
+ %| qcqp_solver_stats |
+ %+-------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: qp_solver.hpp
+ %Usage: QpSolver ()
+ %
+ methods
+ function varargout = generateNativeCode(self,varargin)
+ %Generate native code in the interfaced language for debugging
+ %
+ %
+ %Usage: generateNativeCode (file)
+ %
+ %file is of type std::ostream &.
+
+ try
+
+ if ~isa(self,'casadi.QpSolver')
+ self = casadi.QpSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1009, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = QpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1010, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1011, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1005, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1006, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1007, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1008, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/RADAU.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/RADAU.m
new file mode 100755
index 0000000..1ae9646
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/RADAU.m
@@ -0,0 +1,7 @@
+function v = RADAU()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 154);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_CLEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_CLEInput.m
new file mode 100755
index 0000000..4f7f8db
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_CLEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_CLEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 0);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_CLEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_CLEOutput.m
new file mode 100755
index 0000000..ab1658f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_CLEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_CLEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 1);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_ControlSimulatorInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_ControlSimulatorInput.m
new file mode 100755
index 0000000..9890d39
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_ControlSimulatorInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_ControlSimulatorInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 3);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_ControlledDAEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_ControlledDAEInput.m
new file mode 100755
index 0000000..2aaf847
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_ControlledDAEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_ControlledDAEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 2);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DAEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DAEInput.m
new file mode 100755
index 0000000..cdbb614
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DAEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_DAEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 9);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DAEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DAEOutput.m
new file mode 100755
index 0000000..686f3ac
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DAEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_DAEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 10);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DLEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DLEInput.m
new file mode 100755
index 0000000..070f5f6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DLEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_DLEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 4);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DLEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DLEOutput.m
new file mode 100755
index 0000000..94e59ae
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DLEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_DLEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 5);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DPLEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DPLEInput.m
new file mode 100755
index 0000000..dc65f1b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DPLEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_DPLEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 6);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DPLEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DPLEOutput.m
new file mode 100755
index 0000000..cb8467c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_DPLEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_DPLEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 7);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_GradFInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_GradFInput.m
new file mode 100755
index 0000000..d816c8e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_GradFInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_GradFInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 25);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_GradFOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_GradFOutput.m
new file mode 100755
index 0000000..9e5f384
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_GradFOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_GradFOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 26);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HNLPInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HNLPInput.m
new file mode 100755
index 0000000..2ecc310
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HNLPInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_HNLPInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 8);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HessLagInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HessLagInput.m
new file mode 100755
index 0000000..7611264
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HessLagInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_HessLagInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 29);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HessLagOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HessLagOutput.m
new file mode 100755
index 0000000..fe1c50b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_HessLagOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_HessLagOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 30);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_IntegratorInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_IntegratorInput.m
new file mode 100755
index 0000000..6e03639
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_IntegratorInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_IntegratorInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 13);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_IntegratorOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_IntegratorOutput.m
new file mode 100755
index 0000000..cbef52f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_IntegratorOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_IntegratorOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 14);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_JacGInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_JacGInput.m
new file mode 100755
index 0000000..b55a656
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_JacGInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_JacGInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 27);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_JacGOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_JacGOutput.m
new file mode 100755
index 0000000..1645c5b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_JacGOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_JacGOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 28);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DLEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DLEInput.m
new file mode 100755
index 0000000..691318f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DLEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LR_DLEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 19);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DLEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DLEOutput.m
new file mode 100755
index 0000000..dae1284
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DLEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LR_DLEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 20);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DPLEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DPLEInput.m
new file mode 100755
index 0000000..1be2baf
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DPLEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LR_DPLEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 21);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DPLEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DPLEOutput.m
new file mode 100755
index 0000000..1f9f148
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LR_DPLEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LR_DPLEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 22);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LinsolInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LinsolInput.m
new file mode 100755
index 0000000..cbb273c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LinsolInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LinsolInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 15);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LinsolOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LinsolOutput.m
new file mode 100755
index 0000000..3b4f027
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LinsolOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LinsolOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 16);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LpSolverInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LpSolverInput.m
new file mode 100755
index 0000000..3db6fd6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LpSolverInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LpSolverInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 17);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LpSolverOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LpSolverOutput.m
new file mode 100755
index 0000000..44ff644
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_LpSolverOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_LpSolverOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 18);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NLPInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NLPInput.m
new file mode 100755
index 0000000..3a5903e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NLPInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_NLPInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 23);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NLPOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NLPOutput.m
new file mode 100755
index 0000000..da59351
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NLPOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_NLPOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 24);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NlpSolverInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NlpSolverInput.m
new file mode 100755
index 0000000..04d4ede
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NlpSolverInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_NlpSolverInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 31);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NlpSolverOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NlpSolverOutput.m
new file mode 100755
index 0000000..7f5f6f9
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_NlpSolverOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_NlpSolverOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 32);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QcqpSolverInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QcqpSolverInput.m
new file mode 100755
index 0000000..eaba359
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QcqpSolverInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_QcqpSolverInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 33);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QcqpSolverOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QcqpSolverOutput.m
new file mode 100755
index 0000000..8967455
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QcqpSolverOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_QcqpSolverOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 34);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QpSolverInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QpSolverInput.m
new file mode 100755
index 0000000..bdbe204
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QpSolverInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_QpSolverInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 35);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QpSolverOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QpSolverOutput.m
new file mode 100755
index 0000000..a4d4a05
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_QpSolverOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_QpSolverOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 36);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_RDAEInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_RDAEInput.m
new file mode 100755
index 0000000..421f40d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_RDAEInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_RDAEInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 11);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_RDAEOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_RDAEOutput.m
new file mode 100755
index 0000000..9dcf40f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_RDAEOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_RDAEOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 12);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDPInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDPInput.m
new file mode 100755
index 0000000..2dc81a0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDPInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SDPInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 37);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDPOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDPOutput.m
new file mode 100755
index 0000000..2d6402e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDPOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SDPOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 38);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDQPInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDQPInput.m
new file mode 100755
index 0000000..609e172
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDQPInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SDQPInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 39);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDQPOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDQPOutput.m
new file mode 100755
index 0000000..bbed496
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SDQPOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SDQPOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 40);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPInput.m
new file mode 100755
index 0000000..e141349
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SOCPInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 41);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPOutput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPOutput.m
new file mode 100755
index 0000000..c8a4381
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPOutput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SOCPOutput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 42);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPStruct.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPStruct.m
new file mode 100755
index 0000000..877067a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_SOCPStruct.m
@@ -0,0 +1,7 @@
+function v = SCHEME_SOCPStruct()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 43);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_StabilizedQpSolverInput.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_StabilizedQpSolverInput.m
new file mode 100755
index 0000000..e673543
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SCHEME_StabilizedQpSolverInput.m
@@ -0,0 +1,7 @@
+function v = SCHEME_StabilizedQpSolverInput()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 44);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SWIG_IND1.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SWIG_IND1.m
new file mode 100755
index 0000000..c05d01d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SWIG_IND1.m
@@ -0,0 +1,7 @@
+function v = SWIG_IND1()
+ persistent vInitialized;
+ if isempty(vInitialized)
+ vInitialized = casadiMEX(0, 45);
+ end
+ v = vInitialized;
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SX.m
new file mode 100755
index 0000000..db6bfdb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SX.m
@@ -0,0 +1,1998 @@
+classdef SX < casadi.MatrixCommon & casadi.ExpSX & casadi.GenSX & casadi.PrintSX
+ %Sparse matrix class. SX and DMatrix are specializations.
+ %
+ %General sparse matrix class that is designed with the idea that "everything
+ %is a matrix", that is, also scalars and vectors. This philosophy makes it
+ %easy to use and to interface in particularly with Python and Matlab/Octave.
+ %Index starts with 0. Index vec happens as follows: (rr, cc) -> k =
+ %rr+cc*size1() Vectors are column vectors. The storage format is Compressed
+ %Column Storage (CCS), similar to that used for sparse matrices in Matlab,
+ %but unlike this format, we do allow for elements to be structurally non-zero
+ %but numerically zero. Matrix is polymorphic with a
+ %std::vector that contain all non-identical-zero elements. The
+ %sparsity can be accessed with Sparsity& sparsity() Joel Andersson
+ %
+ %C++ includes: casadi_types.hpp
+ %Usage: SX ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = sanityCheck(self,varargin)
+ %Check if the dimensions and colind, row vectors are compatible.
+ %
+ %Parameters:
+ %-----------
+ %
+ %complete: set to true to also check elementwise throws an error as possible
+ %result
+ %
+ %
+ %Usage: sanityCheck (complete = false)
+ %
+ %complete is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(672, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasNZ(self,varargin)
+ %Returns true if the matrix has a non-zero at location rr, cc.
+ %
+ %
+ %Usage: retval = hasNZ (rr, cc)
+ %
+ %rr is of type int. cc is of type int. rr is of type int. cc is of type int. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(673, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzero(self,varargin)
+ %Returns the truth value of a Matrix.
+ %
+ %
+ %Usage: retval = nonzero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(674, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSlice(self,varargin)
+ %> bool array(DataType) .isSlice(bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Is the Matrix a Slice (only for IMatrix)
+ %
+ %
+ %Usage: retval = isSlice (ind1 = false)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(675, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toSlice(self,varargin)
+ %> Slice array(DataType) .toSlice(bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Convert to Slice (only for IMatrix)
+ %
+ %
+ %Usage: retval = toSlice (ind1 = false)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type Slice.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(676, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = get(self,varargin)
+ %> void array(DataType) .get([double ] output_m) const
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Sparsity sp) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, single argument
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr, Slice cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, Slice rr, IMatrix cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr, Slice cc) const
+ %
+ %> void array(DataType) .get(array(DataType) output_m, bool ind1, IMatrix rr, IMatrix cc) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix, two arguments
+ %
+ %
+ %Usage: get (ind1, rr, cc)
+ %
+ %ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(677, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = set(self,varargin)
+ %> void array(DataType) .set(double val)
+ %
+ %> void array(DataType) .set(const double *val, bool tr=false)
+ %
+ %> void array(DataType) .set([double ] val, bool tr=false)
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, single argument
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr, Slice cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, Slice rr, IMatrix cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr, Slice cc)
+ %
+ %> void array(DataType) .set(array(DataType) m, bool ind1, IMatrix rr, IMatrix cc)
+ %------------------------------------------------------------------------
+ %
+ %Set a submatrix, two arguments
+ %
+ %> void array(DataType) .set(array(DataType) val)
+ %------------------------------------------------------------------------
+ %
+ %Set all the entries without changing sparsity pattern.
+ %
+ %
+ %Usage: set (m, ind1, rr, cc)
+ %
+ %m is of type SX. ind1 is of type bool. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(678, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setSym(self,varargin)
+ %Set upper triangular elements.
+ %
+ %
+ %Usage: setSym (val)
+ %
+ %val is of type std::vector< double,std::allocator< double > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(679, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getSym(self,varargin)
+ %Get upper triangular elements.
+ %
+ %
+ %Usage: getSym ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(680, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNZ(self,varargin)
+ %> void array(DataType) .getNZ([double ] output_m) const
+ %------------------------------------------------------------------------
+ %
+ %Get the elements numerically.
+ %
+ %> void array(DataType) .getNZ(array(DataType) output_m, bool ind1, Slice k) const
+ %
+ %> void array(DataType) .getNZ(array(DataType) output_m, bool ind1, IMatrix k) const
+ %------------------------------------------------------------------------
+ %
+ %Get a set of nonzeros
+ %
+ %
+ %Usage: getNZ (ind1, k)
+ %
+ %ind1 is of type bool. k is of type IMatrix.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(681, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setNZ(self,varargin)
+ %> void array(DataType) .setNZ(double val)
+ %
+ %> void array(DataType) .setNZ(const double *val)
+ %
+ %> void array(DataType) .setNZ([double ] val)
+ %------------------------------------------------------------------------
+ %
+ %Set the elements numerically.
+ %
+ %> void array(DataType) .setNZ(array(DataType) m, bool ind1, Slice k)
+ %
+ %> void array(DataType) .setNZ(array(DataType) m, bool ind1, IMatrix k)
+ %------------------------------------------------------------------------
+ %
+ %Set a set of nonzeros
+ %
+ %
+ %Usage: setNZ (m, ind1, k)
+ %
+ %m is of type SX. ind1 is of type bool. k is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(682, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = append(self,varargin)
+ %[DEPRECATED] Append a matrix vertically (NOTE: only efficient if vector)
+ %
+ %
+ %Usage: append (y)
+ %
+ %y is of type SX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(683, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = appendColumns(self,varargin)
+ %[DEPRECATED] Append a matrix horizontally
+ %
+ %
+ %Usage: appendColumns (y)
+ %
+ %y is of type SX.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(684, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setZero(self,varargin)
+ %[DEPRECATED] Set all elements to zero
+ %
+ %
+ %Usage: setZero ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(685, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeSparse(self,varargin)
+ %[DEPRECATED: use sparsify instead] Make a matrix sparse by removing
+ %numerical zeros smaller in absolute value than a specified tolerance
+ %
+ %
+ %Usage: makeSparse (tol = 0)
+ %
+ %tol is of type double.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(686, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uplus(self,varargin)
+ %Usage: retval = uplus ()
+ %
+ %retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(687, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = uminus(self,varargin)
+ %Usage: retval = uminus ()
+ %
+ %retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(688, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printme(self,varargin)
+ %Usage: retval = printme (y)
+ %
+ %y is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(694, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = T(self,varargin)
+ %Transpose the matrix.
+ %
+ %
+ %Usage: retval = T ()
+ %
+ %retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(695, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print a description of the object.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(699, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printSplit(self,varargin)
+ %Get strings corresponding to the nonzeros and the interdependencies.
+ %
+ %
+ %Usage: printSplit ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(700, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Print a representation of the object.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(701, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printScalar(self,varargin)
+ %Print scalar.
+ %
+ %
+ %Usage: printScalar (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(702, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printVector(self,varargin)
+ %Print vector-style.
+ %
+ %
+ %Usage: printVector (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(703, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printDense(self,varargin)
+ %Print dense matrix-stype.
+ %
+ %
+ %Usage: printDense (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(704, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printSparse(self,varargin)
+ %Print sparse matrix style.
+ %
+ %
+ %Usage: printSparse (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(705, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = clear(self,varargin)
+ %Usage: clear ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(706, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resize(self,varargin)
+ %Usage: resize (nrow, ncol)
+ %
+ %nrow is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(707, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = reserve(self,varargin)
+ %Usage: reserve (nnz, ncol)
+ %
+ %nnz is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(708, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erase(self,varargin)
+ %> void array(DataType) .erase([int ] rr, [int ] cc, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase rows and/or
+ %columns of a matrix.
+ %
+ %> void array(DataType) .erase([int ] rr, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase a submatrix (leaving structural zeros in its place) Erase elements of
+ %a matrix.
+ %
+ %
+ %Usage: erase (rr, ind1 = false)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(709, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = remove(self,varargin)
+ %Remove columns and rows Remove/delete rows and/or columns of a matrix.
+ %
+ %
+ %Usage: remove (rr, cc)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(710, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlarge(self,varargin)
+ %Enlarge matrix Make the matrix larger by inserting empty rows and columns,
+ %keeping the existing non-zeros.
+ %
+ %
+ %Usage: enlarge (nrow, ncol, rr, cc, ind1 = false)
+ %
+ %nrow is of type int. ncol is of type int. rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(711, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sparsity(self,varargin)
+ %Get an owning reference to the sparsity pattern.
+ %
+ %
+ %Usage: retval = sparsity ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(712, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getElementHash(self,varargin)
+ %Returns a number that is unique for a given symbolic scalar.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = getElementHash ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(717, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isRegular(self,varargin)
+ %Checks if expression does not contain NaN or Inf.
+ %
+ %
+ %Usage: retval = isRegular ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(718, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSmooth(self,varargin)
+ %Check if smooth.
+ %
+ %
+ %Usage: retval = isSmooth ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(719, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isLeaf(self,varargin)
+ %Check if SX is a leaf of the SX graph.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = isLeaf ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(720, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isCommutative(self,varargin)
+ %Check whether a binary SX is commutative.
+ %
+ %Only defined if symbolic scalar.
+ %
+ %
+ %Usage: retval = isCommutative ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(721, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSymbolic(self,varargin)
+ %Check if symbolic (Dense) Sparse matrices invariable return false.
+ %
+ %
+ %Usage: retval = isSymbolic ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(722, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isValidInput(self,varargin)
+ %Check if matrix can be used to define function inputs. Sparse matrices can
+ %return true if all non-zero elements are symbolic.
+ %
+ %
+ %Usage: retval = isValidInput ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(723, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasDuplicates(self,varargin)
+ %[INTERNAL] Detect
+ %duplicate symbolic expressions If there are symbolic primitives appearing
+ %more than once, the function will return true and the names of the duplicate
+ %expressions will be printed to userOut(). Note: Will mark the
+ %node using SXElement::setTemp. Make sure to call resetInput() after usage.
+ %
+ %
+ %Usage: retval = hasDuplicates ()
+ %
+ %retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(724, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resetInput(self,varargin)
+ %[INTERNAL] Reset the
+ %marker for an input expression.
+ %
+ %
+ %Usage: resetInput ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(725, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isConstant(self,varargin)
+ %Check if the matrix is constant (note that false negative answers are
+ %possible)
+ %
+ %
+ %Usage: retval = isConstant ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(726, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isInteger(self,varargin)
+ %Check if the matrix is integer-valued (note that false negative answers are
+ %possible)
+ %
+ %
+ %Usage: retval = isInteger ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(727, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isZero(self,varargin)
+ %check if the matrix is 0 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isZero ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(728, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isOne(self,varargin)
+ %check if the matrix is 1 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(729, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isMinusOne(self,varargin)
+ %check if the matrix is -1 (note that false negative answers are possible)
+ %
+ %
+ %Usage: retval = isMinusOne ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(730, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isIdentity(self,varargin)
+ %check if the matrix is an identity matrix (note that false negative answers
+ %are possible)
+ %
+ %
+ %Usage: retval = isIdentity ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(731, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasNonStructuralZeros(self,varargin)
+ %Check if the matrix has any zero entries which are not structural zeros.
+ %
+ %
+ %Usage: retval = hasNonStructuralZeros ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(732, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getValue(self,varargin)
+ %> double array(DataType) .getValue() const
+ %------------------------------------------------------------------------
+ %
+ %Get double value (only if constant)
+ %
+ %> double array(DataType) .getValue(int k) const
+ %------------------------------------------------------------------------
+ %
+ %Get double value (particular nonzero)
+ %
+ %
+ %Usage: retval = getValue (k)
+ %
+ %k is of type int. k is of type int. retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(733, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setValue(self,varargin)
+ %> void array(DataType) .setValue(double m)
+ %------------------------------------------------------------------------
+ %
+ %Set double value (only if constant)
+ %
+ %> void array(DataType) .setValue(double m, int k)
+ %------------------------------------------------------------------------
+ %
+ %Set double value (particular nonzero)
+ %
+ %
+ %Usage: setValue (m, k)
+ %
+ %m is of type double. k is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(734, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getIntValue(self,varargin)
+ %Get double value (only if integer constant)
+ %
+ %
+ %Usage: retval = getIntValue ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(735, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzeros(self,varargin)
+ %Get all nonzeros.
+ %
+ %
+ %Usage: retval = nonzeros ()
+ %
+ %retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(736, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nonzeros_int(self,varargin)
+ %Get all nonzeros.
+ %
+ %
+ %Usage: retval = nonzeros_int ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(737, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getName(self,varargin)
+ %Get name (only if symbolic scalar)
+ %
+ %
+ %Usage: retval = getName ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(738, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getDep(self,varargin)
+ %Get expressions of the children of the expression Only defined if symbolic
+ %scalar. Wraps SXElement SXElement::getDep(int ch=0) const.
+ %
+ %
+ %Usage: retval = getDep (ch = 0)
+ %
+ %ch is of type int. ch is of type int. retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(739, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNdeps(self,varargin)
+ %Get the number of dependencies of a binary SXElement Only defined if
+ %symbolic scalar.
+ %
+ %
+ %Usage: retval = getNdeps ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(740, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren(self,varargin)
+ %Usage: retval = paren (rr, cc)
+ %
+ %rr is of type IMatrix. cc is of type IMatrix. rr is of type IMatrix. cc is of type IMatrix. retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(744, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = paren_asgn(self,varargin)
+ %Usage: paren_asgn (m, rr, cc)
+ %
+ %m is of type SX. rr is of type IMatrix. cc is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(745, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = brace(self,varargin)
+ %Usage: retval = brace (rr)
+ %
+ %rr is of type IMatrix. rr is of type IMatrix. retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(746, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setbrace(self,varargin)
+ %Usage: setbrace (m, rr)
+ %
+ %m is of type SX. rr is of type IMatrix.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(747, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = end(self,varargin)
+ %Usage: retval = end (i, n)
+ %
+ %i is of type int. n is of type int. i is of type int. n is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(748, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ctranspose(self,varargin)
+ %Usage: retval = ctranspose ()
+ %
+ %retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SX')
+ self = casadi.SX(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(749, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = SX(varargin)
+ self@casadi.MatrixCommon(SwigRef.Null);
+ self@casadi.ExpSX(SwigRef.Null);
+ self@casadi.GenSX(SwigRef.Null);
+ self@casadi.PrintSX(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(750, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(751, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = binary(varargin)
+ %[INTERNAL] Create nodes by
+ %their ID.
+ %
+ %
+ %Usage: retval = binary (op, x, y)
+ %
+ %op is of type int. x is of type SX. y is of type SX. op is of type int. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(689, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unary(varargin)
+ %[INTERNAL] Create nodes by
+ %their ID.
+ %
+ %
+ %Usage: retval = unary (op, x)
+ %
+ %op is of type int. x is of type SX. op is of type int. x is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(690, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = scalar_matrix(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = scalar_matrix (op, x, y)
+ %
+ %op is of type int. x is of type SX. y is of type SX. op is of type int. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(691, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = matrix_scalar(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = matrix_scalar (op, x, y)
+ %
+ %op is of type int. x is of type SX. y is of type SX. op is of type int. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(692, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = matrix_matrix(varargin)
+ %[INTERNAL] Create
+ %nodes by their ID.
+ %
+ %
+ %Usage: retval = matrix_matrix (op, x, y)
+ %
+ %op is of type int. x is of type SX. y is of type SX. op is of type int. x is of type SX. y is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(693, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setEqualityCheckingDepth(varargin)
+ %Usage: setEqualityCheckingDepth (eq_depth = 1)
+ %
+ %eq_depth is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(696, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getEqualityCheckingDepth(varargin)
+ %Usage: retval = getEqualityCheckingDepth ()
+ %
+ %retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(697, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = className(varargin)
+ %Usage: retval = className ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(698, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triplet(varargin)
+ %Usage: retval = triplet (row, col, d, rc)
+ %
+ %row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. d is of type SX. rc is of type std::pair< int,int > const &. row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. d is of type SX. rc is of type std::pair< int,int > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(713, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inf(varargin)
+ %create a matrix with all inf
+ %
+ %
+ %Usage: retval = inf (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(714, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nan(varargin)
+ %create a matrix with all nan
+ %
+ %
+ %Usage: retval = nan (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(715, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eye(varargin)
+ %Usage: retval = eye (ncol)
+ %
+ %ncol is of type int. ncol is of type int. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(716, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setPrecision(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setPrecision (precision)
+ %
+ %precision is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(741, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setWidth(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setWidth (width)
+ %
+ %width is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(742, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = setScientific(varargin)
+ %Set the 'precision, width & scientific' used in printing and serializing to
+ %streams.
+ %
+ %
+ %Usage: setScientific (scientific)
+ %
+ %scientific is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(743, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SXElement.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SXElement.m
new file mode 100755
index 0000000..14e85a4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SXElement.m
@@ -0,0 +1,41 @@
+classdef SXElement < SwigRef
+ %Usage: SXElement ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function self = SXElement(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(670, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(671, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SXFunction.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SXFunction.m
new file mode 100755
index 0000000..0dddf10
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SXFunction.m
@@ -0,0 +1,691 @@
+classdef SXFunction < casadi.Function
+ %Dynamically created function that can be expanded into a series of scalar
+ %operations.
+ %
+ %Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| just_in_time | OT_BOOLEAN | false | Just-in-time | casadi::SXFu |
+ %| _opencl | | | compilation | nctionIntern |
+ %| | | | for numeric | al |
+ %| | | | evaluation | |
+ %| | | | using OpenCL | |
+ %| | | | (experimenta | |
+ %| | | | l) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| just_in_time | OT_BOOLEAN | false | Propagate | casadi::SXFu |
+ %| _sparsity | | | sparsity | nctionIntern |
+ %| | | | patterns | al |
+ %| | | | using just- | |
+ %| | | | in-time | |
+ %| | | | compilation | |
+ %| | | | to a CPU or | |
+ %| | | | GPU using | |
+ %| | | | OpenCL | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: sx_function.hpp
+ %Usage: SXFunction ()
+ %
+ methods
+ function varargout = jac(self,varargin)
+ %Jacobian via source code transformation.
+ %
+ %See: casadi::Jacobian for an AD approach
+ %
+ %
+ %Usage: retval = jac (iname, oname, compact = false, symmetric = false)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. compact is of type bool. symmetric is of type bool. iname is of type std::string const &. oname is of type std::string const &. compact is of type bool. symmetric is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(905, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = grad(self,varargin)
+ %Gradient via source code transformation
+ %
+ %
+ %Usage: retval = grad (iname, oname)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. iname is of type std::string const &. oname is of type std::string const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(906, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tang(self,varargin)
+ %Tangent via source code transformation
+ %
+ %
+ %Usage: retval = tang (iname, oname)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. iname is of type std::string const &. oname is of type std::string const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(907, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hess(self,varargin)
+ %Hessian (forward over adjoint) via source code transformation
+ %
+ %
+ %Usage: retval = hess (iname, oname)
+ %
+ %iname is of type std::string const &. oname is of type std::string const &. iname is of type std::string const &. oname is of type std::string const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(908, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = inputExpr(self,varargin)
+ %> const SX SXFunction.inputExpr(int iind) const
+ %------------------------------------------------------------------------
+ %
+ %Get function input.
+ %
+ %> [SX] SXFunction.inputExpr() const
+ %------------------------------------------------------------------------
+ %
+ %Get all function inputs.
+ %
+ %
+ %Usage: retval = inputExpr ()
+ %
+ %retval is of type std::vector< casadi::SX,std::allocator< casadi::SX > > const.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(909, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = outputExpr(self,varargin)
+ %> const SX SXFunction.outputExpr(int oind) const
+ %------------------------------------------------------------------------
+ %
+ %Get function output.
+ %
+ %> [SX] SXFunction.outputExpr() const
+ %------------------------------------------------------------------------
+ %
+ %Get all function outputs.
+ %
+ %
+ %Usage: retval = outputExpr ()
+ %
+ %retval is of type std::vector< casadi::SX,std::allocator< casadi::SX > > const.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(910, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAlgorithmSize(self,varargin)
+ %Get the number of atomic operations.
+ %
+ %
+ %Usage: retval = getAlgorithmSize ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(911, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getWorkSize(self,varargin)
+ %Get the length of the work vector.
+ %
+ %
+ %Usage: retval = getWorkSize ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(912, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAtomicOperation(self,varargin)
+ %Get an atomic operation operator index.
+ %
+ %
+ %Usage: retval = getAtomicOperation (k)
+ %
+ %k is of type int. k is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(913, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAtomicInput(self,varargin)
+ %Get the (integer) input arguments of an atomic operation.
+ %
+ %
+ %Usage: retval = getAtomicInput (k)
+ %
+ %k is of type int. k is of type int. retval is of type std::pair< int,int >.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(914, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAtomicInputReal(self,varargin)
+ %Get the floating point output argument of an atomic operation.
+ %
+ %
+ %Usage: retval = getAtomicInputReal (k)
+ %
+ %k is of type int. k is of type int. retval is of type double.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(915, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getAtomicOutput(self,varargin)
+ %Get the (integer) output argument of an atomic operation.
+ %
+ %
+ %Usage: retval = getAtomicOutput (k)
+ %
+ %k is of type int. k is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(916, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = countNodes(self,varargin)
+ %Number of nodes in the algorithm.
+ %
+ %
+ %Usage: retval = countNodes ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(917, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = clearSymbolic(self,varargin)
+ %Clear the function from its symbolic representation, to free up memory, no
+ %symbolic evaluations are possible after this.
+ %
+ %
+ %Usage: clearSymbolic ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(918, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getFree(self,varargin)
+ %Get all the free variables of the function.
+ %
+ %
+ %Usage: retval = getFree ()
+ %
+ %retval is of type SX.
+
+ try
+
+ if ~isa(self,'casadi.SXFunction')
+ self = casadi.SXFunction(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(919, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = SXFunction(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(921, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(922, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(920, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SdpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SdpSolver.m
new file mode 100755
index 0000000..63205f7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SdpSolver.m
@@ -0,0 +1,690 @@
+classdef SdpSolver < casadi.Function
+ %SdpSolver.
+ %
+ %Solves an SDP problem in standard form.
+ %Seehttp://sdpa.indsys.chuo-u.ac.jp/sdpa/files/sdpa-c.6.2.0.manual.pdf
+ %
+ %Primal:
+ %
+ %
+ %
+ %::
+ %
+ % min c' x
+ % x
+ % subject to
+ % P = Sum_i^m F_i x_i - G
+ % P negative semidefinite
+ %
+ % LBA <= A x <= UBA
+ % LBX <= x <= UBX
+ %
+ % with x ( n x 1)
+ % c ( n x 1 )
+ % G, F_i sparse symmetric (m x m)
+ % X dense symmetric ( m x m )
+ % A sparse matrix ( nc x n)
+ % LBA, UBA dense vector (nc x 1)
+ % LBX, UBX dense vector (n x 1)
+ %
+ %
+ %
+ %This formulation is chosen as primal, because it does not call for a large
+ %decision variable space.
+ %
+ %Dual:
+ %
+ %
+ %
+ %::
+ %
+ % max trace(G Y)
+ % Y
+ %
+ % subject to
+ % trace(F_i Y) = c_i
+ % Y positive semidefinite
+ %
+ % with Y dense symmetric ( m x m)
+ %
+ %
+ %
+ %On generality: you might have formulation with block partitioning:
+ %
+ %Primal:
+ %
+ %
+ %
+ %::
+ %
+ % min c' x
+ % x
+ % subject to
+ % Pj = Sum_i^m F_ij x_i - gj for all j
+ % Pj negative semidefinite for all j
+ %
+ % with x ( n x 1)
+ % c ( n x 1 )
+ % G, F_i sparse symmetric (m x m)
+ % X dense symmetric ( m x m )
+ %
+ %
+ %
+ %Dual:
+ %
+ %::
+ %
+ % max Sum_j trace(Gj Yj)
+ % Yj
+ %
+ % subject to
+ % Sum_j trace(F_ij Yj) = c_i for all j
+ % Yj positive semidefinite for all j
+ %
+ % with Y dense symmetric ( m x m)
+ %
+ %
+ %
+ %You can cast this into the standard form with: G = diagcat(Gj for all j) Fi
+ %= diagcat(F_ij for all j)
+ %
+ %Implementations of SdpSolver are encouraged to exploit this block structure.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::SDPInput (SDP_SOLVER_NUM_IN = 8) [sdpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDP_SOLVER_F | f | The horizontal stack |
+ %| | | of all matrices F_i: ( |
+ %| | | m x nm) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_C | c | The vector c: ( n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_G | g | The matrix G: ( m x m) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LBA | lba | Lower bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_UBA | uba | Upper bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LBX | lbx | Lower bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_UBX | ubx | Upper bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::SDPOutput (SDP_SOLVER_NUM_OUT = 7) [sdpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDP_SOLVER_X | x | The primal solution (n |
+ %| | | x 1) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_P | p | The solution P (m x m) |
+ %| | | - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_DUAL | dual | The dual solution (m x |
+ %| | | m) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_COST | cost | The primal optimal |
+ %| | | cost (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_DUAL_COST | dual_cost | The dual optimal cost |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to the |
+ %| | | linear constraints (nc |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds (n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| calc_dual | OT_BOOLEAN | true | Indicate if | casadi::SdpS |
+ %| | | | dual should | olverInterna |
+ %| | | | be allocated | l |
+ %| | | | and | |
+ %| | | | calculated. | |
+ %| | | | You may want | |
+ %| | | | to avoid | |
+ %| | | | calculating | |
+ %| | | | this | |
+ %| | | | variable for | |
+ %| | | | problems | |
+ %| | | | with n | |
+ %| | | | large, as is | |
+ %| | | | always dense | |
+ %| | | | (m x m). | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| calc_p | OT_BOOLEAN | true | Indicate if | casadi::SdpS |
+ %| | | | the P-part | olverInterna |
+ %| | | | of primal | l |
+ %| | | | solution | |
+ %| | | | should be | |
+ %| | | | allocated | |
+ %| | | | and | |
+ %| | | | calculated. | |
+ %| | | | You may want | |
+ %| | | | to avoid | |
+ %| | | | calculating | |
+ %| | | | this | |
+ %| | | | variable for | |
+ %| | | | problems | |
+ %| | | | with n | |
+ %| | | | large, as is | |
+ %| | | | always dense | |
+ %| | | | (m x m). | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode c |
+ %| | | | according to | asadi::SdpSo |
+ %| | | | a given | lverInternal |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %| | | | (socp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| print_proble | OT_BOOLEAN | false | Print out | casadi::SdpS |
+ %| m | | | problem | olverInterna |
+ %| | | | statement | l |
+ %| | | | for | |
+ %| | | | debugging. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- dsdp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %SdpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %dsdp
+ %----
+ %
+ %
+ %
+ %Interface to the SDP solver DSDP Warning: The solver DSDP is not good at
+ %handling linear equalities. There are several options if you notice
+ %difficulties: play around with the parameter "_penalty" leave a gap
+ %manually switch to another SDP Solver
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| _loglevel | OT_INTEGER | 0 | An integer that |
+ %| | | | specifies how |
+ %| | | | much logging is |
+ %| | | | done on stdout. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| _penalty | OT_REAL | 100000 | Penality |
+ %| | | | parameter |
+ %| | | | lambda. Must |
+ %| | | | exceed the |
+ %| | | | trace of Y. |
+ %| | | | This parameter |
+ %| | | | heavily |
+ %| | | | influences the |
+ %| | | | ability of DSDP |
+ %| | | | to treat linear |
+ %| | | | equalities. The |
+ %| | | | DSDP standard |
+ %| | | | default (1e8) |
+ %| | | | will make a |
+ %| | | | problem with |
+ %| | | | linear equality |
+ %| | | | return unusable |
+ %| | | | solutions. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| _printlevel | OT_INTEGER | 1 | A printlevel of |
+ %| | | | zero will |
+ %| | | | disable all |
+ %| | | | output. Another |
+ %| | | | number |
+ %| | | | indicates how |
+ %| | | | often a line is |
+ %| | | | printed. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| _reuse | OT_INTEGER | 4 | Maximum on the |
+ %| | | | number of times |
+ %| | | | the Schur |
+ %| | | | complement |
+ %| | | | matrix is |
+ %| | | | reused |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| _rho | OT_REAL | 4 | Potential |
+ %| | | | parameter. Must |
+ %| | | | be >=1 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| _use_penalty | OT_BOOLEAN | true | Modifies the |
+ %| | | | algorithm to |
+ %| | | | use a penality |
+ %| | | | gamma on r. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| _zbar | OT_REAL | 1.000e+10 | Initial upper |
+ %| | | | bound on the |
+ %| | | | objective of |
+ %| | | | the dual |
+ %| | | | problem. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| dualTol | OT_REAL | 0.000 | Tolerance for |
+ %| | | | dual |
+ %| | | | infeasibility |
+ %| | | | (translates to |
+ %| | | | primal |
+ %| | | | infeasibility |
+ %| | | | in dsdp terms) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gapTol | OT_REAL | 0.000 | Convergence |
+ %| | | | criterion based |
+ %| | | | on distance |
+ %| | | | between primal |
+ %| | | | and dual |
+ %| | | | objective |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| inf | OT_REAL | 1.000e+30 | Treat numbers |
+ %| | | | higher than |
+ %| | | | this as |
+ %| | | | infinity |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| maxIter | OT_INTEGER | 500 | Maximum number |
+ %| | | | of iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| primalTol | OT_REAL | 0.000 | Tolerance for |
+ %| | | | primal |
+ %| | | | infeasibility |
+ %| | | | (translates to |
+ %| | | | dual |
+ %| | | | infeasibility |
+ %| | | | in dsdp terms) |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| stepTol | OT_REAL | 0.050 | Terminate the |
+ %| | | | solver if the |
+ %| | | | step length in |
+ %| | | | the primal is |
+ %| | | | below this |
+ %| | | | tolerance. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available stats
+ %
+ %+--------------------+
+ %| Id |
+ %+====================+
+ %| solution_type |
+ %+--------------------+
+ %| termination_reason |
+ %+--------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: sdp_solver.hpp
+ %Usage: SdpSolver ()
+ %
+ methods
+ function self = SdpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1029, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1030, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1025, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1026, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1027, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1028, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SdqpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SdqpSolver.m
new file mode 100755
index 0000000..72d2d8f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SdqpSolver.m
@@ -0,0 +1,485 @@
+classdef SdqpSolver < casadi.Function
+ %SdqpSolver.
+ %
+ %Same as an SdpSolver, but with a quadratic objective 1/2 x' H x
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::SDQPInput (SDQP_SOLVER_NUM_IN = 9) [sdqpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDQP_SOLVER_H | h | The matrix H: sparse ( |
+ %| | | n x n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_C | c | The vector c: ( n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_F | f | The horizontal stack |
+ %| | | of all matrices F_i: ( |
+ %| | | m x nm) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_G | g | The matrix G: ( m x m) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LBA | lba | Lower bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_UBA | uba | Upper bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LBX | lbx | Lower bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_UBX | ubx | Upper bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::SDQPOutput (SDQP_SOLVER_NUM_OUT = 7) [sdqpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDQP_SOLVER_X | x | The primal solution (n |
+ %| | | x 1) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_P | p | The solution P (m x m) |
+ %| | | - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_DUAL | dual | The dual solution (m x |
+ %| | | m) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_COST | cost | The primal optimal |
+ %| | | cost (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_DUAL_COST | dual_cost | The dual optimal cost |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to the |
+ %| | | linear constraints (nc |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds (n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode c |
+ %| | | | according to | asadi::SdqpS |
+ %| | | | a given | olverInterna |
+ %| | | | recipe (low- | l |
+ %| | | | level) | |
+ %| | | | (socqp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| sdp_solver | OT_STRING | GenericType( | The | casadi::Sdqp |
+ %| | | ) | SdqpSolver | SolverIntern |
+ %| | | | used to | al |
+ %| | | | solve the | |
+ %| | | | SDPs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| sdp_solver_o | OT_DICT | GenericType( | Options to | casadi::Sdqp |
+ %| ptions | | ) | be passed to | SolverIntern |
+ %| | | | the | al |
+ %| | | | SDPSOlver | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- sdp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %SdqpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %sdp
+ %---
+ %
+ %
+ %
+ %Solve an SQDP using an SdpSolver Note: this implementation relies on
+ %Cholesky decomposition: Chol(H) = L -> H = LL' with L lower triangular This
+ %requires Pi, H to be positive definite. Positive semi-definite is not
+ %sufficient. Notably, H==0 will not work.
+ %
+ %A better implementation would rely on matrix square root, but we need
+ %singular value decomposition to implement that.
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+------------------+
+ %| Id |
+ %+==================+
+ %| sdp_solver_stats |
+ %+------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: sdqp_solver.hpp
+ %Usage: SdqpSolver ()
+ %
+ methods
+ function self = SdqpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1047, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1048, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1043, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1044, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1045, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1046, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SharedObject.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SharedObject.m
new file mode 100755
index 0000000..29e0e25
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SharedObject.m
@@ -0,0 +1,300 @@
+classdef SharedObject < casadi.PrintSharedObject
+ %SharedObject implements a reference counting framework similar for efficient
+ %and easily-maintained memory management.
+ %
+ %To use the class, both the SharedObject class (the public class), and the
+ %SharedObjectNode class (the internal class) must be inherited from. It can
+ %be done in two different files and together with memory management, this
+ %approach provides a clear distinction of which methods of the class are to
+ %be considered "public", i.e. methods for public use that can be considered
+ %to remain over time with small changes, and the internal memory.
+ %
+ %When interfacing a software, which typically includes including some header
+ %file, this is best done only in the file where the internal class is
+ %defined, to avoid polluting the global namespace and other side effects.
+ %
+ %The default constructor always means creating a null pointer to an internal
+ %class only. To allocate an internal class (this works only when the internal
+ %class isn't abstract), use the constructor with arguments.
+ %
+ %The copy constructor and the assignment operator perform shallow copies
+ %only, to make a deep copy you must use the clone method explicitly. This
+ %will give a shared pointer instance.
+ %
+ %In an inheritance hierarchy, you can cast down automatically, e.g. (
+ %SXFunction is a child class of Function): SXFunction derived(...); Function
+ %base = derived;
+ %
+ %To cast up, use the shared_cast template function, which works analogously
+ %to dynamic_cast, static_cast, const_cast etc, e.g.: SXFunction derived(...);
+ %Function base = derived; SXFunction derived_from_base =
+ %shared_cast(base);
+ %
+ %A failed shared_cast will result in a null pointer (cf. dynamic_cast)
+ %
+ %Joel Andersson
+ %
+ %C++ includes: shared_object.hpp
+ %Usage: SharedObject ()
+ %
+ methods
+ function varargout = disp(self,varargin)
+ %Print a representation of the object.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(56, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print a description of the object.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(57, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printPtr(self,varargin)
+ %[INTERNAL] Print the
+ %pointer to the internal class
+ %
+ %
+ %Usage: printPtr ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(58, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = init(self,varargin)
+ %[DEPRECATED] Initialize or re-initialize the object:
+ %
+ %more documentation in the node class (SharedObjectNode and derived classes)
+ %
+ %
+ %Usage: init (allow_reinit = true)
+ %
+ %allow_reinit is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(59, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isInit(self,varargin)
+ %Is initialized?
+ %
+ %
+ %Usage: retval = isInit ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(60, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = assertInit(self,varargin)
+ %[INTERNAL] Assert
+ %that it is initialized
+ %
+ %
+ %Usage: assertInit ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(61, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isNull(self,varargin)
+ %Is a null pointer?
+ %
+ %
+ %Usage: retval = isNull ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(62, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeUnique(self,varargin)
+ %Make unique.
+ %
+ %If there are other references to the object, then make a deep copy of it and
+ %point to this new object
+ %
+ %
+ %Usage: makeUnique (clone_members = true)
+ %
+ %clone_members is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(63, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hash(self,varargin)
+ %Returns a number that is unique for a given Node. If the Object does not
+ %point to any node, "0" is returned.
+ %
+ %
+ %Usage: retval = hash ()
+ %
+ %retval is of type size_t.
+
+ try
+
+ if ~isa(self,'casadi.SharedObject')
+ self = casadi.SharedObject(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(64, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = SharedObject(varargin)
+ self@casadi.PrintSharedObject(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(65, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(66, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Simulator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Simulator.m
new file mode 100755
index 0000000..907a29c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Simulator.m
@@ -0,0 +1,345 @@
+classdef Simulator < casadi.Function
+ %Integrator class.
+ %
+ %An "simulator" integrates an IVP, stopping at a (fixed) number of grid
+ %points and evaluates a set of output functions at these points. The internal
+ %stepsizes of the integrator need not coincide with the gridpoints.
+ %
+ %Simulator is an casadi::Function mapping from casadi::IntegratorInput to n.
+ %\\
+ %
+ %The output function needs to be a mapping from casadi::DAEInput to n. The
+ %default output has n=1 and the output is the (vectorized) differential state
+ %for each time step.
+ %
+ %Joel Andersson
+ %
+ %>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 6) [integratorIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| INTEGRATOR_X0 | x0 | Differential state at |
+ %| | | the initial time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_P | p | Parameters . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_Z0 | z0 | Initial guess for the |
+ %| | | algebraic variable . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RX0 | rx0 | Backward differential |
+ %| | | state at the final |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RP | rp | Backward parameter |
+ %| | | vector . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RZ0 | rz0 | Initial guess for the |
+ %| | | backwards algebraic |
+ %| | | variable . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | casadi::Simu |
+ %| | | | uts) (initi | latorInterna |
+ %| | | | al|step) | l |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %>List of available monitors
+ %
+ %+---------+---------------------------+
+ %| Id | Used in |
+ %+=========+===========================+
+ %| initial | casadi::SimulatorInternal |
+ %+---------+---------------------------+
+ %| inputs | casadi::FunctionInternal |
+ %+---------+---------------------------+
+ %| outputs | casadi::FunctionInternal |
+ %+---------+---------------------------+
+ %| step | casadi::SimulatorInternal |
+ %+---------+---------------------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: simulator.hpp
+ %Usage: Simulator ()
+ %
+ methods
+ function self = Simulator(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(977, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(978, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(976, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Slice.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Slice.m
new file mode 100755
index 0000000..5a9e86a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Slice.m
@@ -0,0 +1,269 @@
+classdef Slice < casadi.PrintSlice
+ %Class representing a Slice.
+ %
+ %Note that Python or Octave do not need to use this class. They can just use
+ %slicing utility from the host language ( M[0:6] in Python, M(1:7) )
+ %
+ %C++ includes: slice.hpp
+ %Usage: Slice ()
+ %
+ methods
+ function varargout = getAll(self,varargin)
+ %> [int] Slice.getAll(int len, bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get a vector of indices.
+ %
+ %> [int] Slice.getAll(Slice outer, int len) const
+ %------------------------------------------------------------------------
+ %
+ %Get a vector of indices (nested slice)
+ %
+ %
+ %Usage: retval = getAll (outer, len)
+ %
+ %outer is of type Slice. len is of type int. outer is of type Slice. len is of type int. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(252, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isscalar(self,varargin)
+ %Is the slice a scalar.
+ %
+ %
+ %Usage: retval = isscalar (len)
+ %
+ %len is of type int. len is of type int. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(253, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = toScalar(self,varargin)
+ %Get scalar (if isscalar)
+ %
+ %
+ %Usage: retval = toScalar (len)
+ %
+ %len is of type int. len is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(254, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eq(self,varargin)
+ %Usage: retval = eq (other)
+ %
+ %other is of type Slice. other is of type Slice. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(255, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ne(self,varargin)
+ %Usage: retval = ne (other)
+ %
+ %other is of type Slice. other is of type Slice. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(256, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Print a representation of the object.
+ %
+ %
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(257, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = print(self,varargin)
+ %Print a description of the object.
+ %
+ %
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Slice')
+ self = casadi.Slice(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(258, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function v = start_(self)
+ v = casadiMEX(259, self);
+ end
+ function v = stop_(self)
+ v = casadiMEX(260, self);
+ end
+ function v = step_(self)
+ v = casadiMEX(261, self);
+ end
+ function self = Slice(varargin)
+ self@casadi.PrintSlice(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(262, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(263, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = isSlice(varargin)
+ %Usage: retval = isSlice (v, ind1 = false)
+ %
+ %v is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool. v is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(250, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isSlice2(varargin)
+ %Usage: retval = isSlice2 (v)
+ %
+ %v is of type std::vector< int,std::allocator< int > > const &. v is of type std::vector< int,std::allocator< int > > const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(251, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SocpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SocpSolver.m
new file mode 100755
index 0000000..c8a7ab0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SocpSolver.m
@@ -0,0 +1,1639 @@
+classdef SocpSolver < casadi.Function
+ %SocpSolver.
+ %
+ %Solves an Second Order Cone Programming (SOCP) problem in standard form.
+ %
+ %Primal:
+ %
+ %
+ %
+ %::
+ %
+ % min c' x
+ % x
+ % subject to
+ % || Gi' x + hi ||_2 <= ei' x + fi i = 1..m
+ %
+ % LBA <= A x <= UBA
+ % LBX <= x <= UBX
+ %
+ % with x ( n x 1)
+ % c dense ( n x 1 )
+ % Gi sparse (n x ni)
+ % hi dense (ni x 1)
+ % ei sparse (n x 1)
+ % fi dense (1 x 1)
+ % N = Sum_i^m ni
+ % A sparse (nc x n)
+ % LBA, UBA dense vector (nc x 1)
+ % LBX, UBX dense vector (n x 1)
+ %
+ %
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::SOCPInput (SOCP_SOLVER_NUM_IN = 10) [socpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SOCP_SOLVER_G | g | The horizontal stack |
+ %| | | of all matrices Gi: ( |
+ %| | | n x N) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_H | h | The vertical stack of |
+ %| | | all vectors hi: ( N x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_E | e | The horizontal stack |
+ %| | | of all vectors ei: ( n |
+ %| | | x m) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_F | f | The vertical stack of |
+ %| | | all scalars fi: ( m x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_C | c | The vector c: ( n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LBA | lba | Lower bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_UBA | uba | Upper bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LBX | lbx | Lower bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_UBX | ubx | Upper bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::SOCPOutput (SOCP_SOLVER_NUM_OUT = 6) [socpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SOCP_SOLVER_X | x | The primal solution (n |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_COST | cost | The primal optimal |
+ %| | | cost (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_DUAL_COST | dual_cost | The dual optimal cost |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to the |
+ %| | | linear constraints (nc |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds (n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LAM_CONE | lam_cone | The dual solution |
+ %| | | correspoding to cone |
+ %| | | (2-norm) constraints |
+ %| | | (m x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRING | GenericType( | Changes | casadi::Socp |
+ %| ipe | | ) | default | SolverIntern |
+ %| | | | options in a | al |
+ %| | | | given way | |
+ %| | | | (qcqp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ni | OT_INTEGERVE | GenericType( | Provide the | casadi::Socp |
+ %| | CTOR | ) | size of each | SolverIntern |
+ %| | | | SOC | al |
+ %| | | | constraint. | |
+ %| | | | Must sum up | |
+ %| | | | to N. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| print_proble | OT_BOOLEAN | false | Print out | casadi::Socp |
+ %| m | | | problem | SolverIntern |
+ %| | | | statement | al |
+ %| | | | for | |
+ %| | | | debugging. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- ecos
+ %
+ %- mosek
+ %
+ %- sdp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %SocpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %ecos
+ %----
+ %
+ %
+ %
+ %Interface to the SOCP solver ECOS
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| abstol | OT_REAL | ABSTOL | Absolute |
+ %| | | | tolerance on |
+ %| | | | duality gap |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| abstol_inacc | OT_REAL | ATOL_INACC | Absolute |
+ %| | | | relaxed |
+ %| | | | tolerance on |
+ %| | | | duality gap |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| delta | OT_REAL | DELTA | Regularization |
+ %| | | | parameter |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eps | OT_REAL | EPS | Regularization |
+ %| | | | threshold |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| feastol | OT_REAL | FEASTOL | Primal/dual |
+ %| | | | infeasibility |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| feastol_inacc | OT_REAL | FTOL_INACC | Primal/dual |
+ %| | | | infeasibility |
+ %| | | | relaxed |
+ %| | | | tolerance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| gamma | OT_REAL | GAMMA | Scaling the |
+ %| | | | final step |
+ %| | | | length |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| maxit | OT_INTEGER | MAXIT | Maximum number |
+ %| | | | of iterations |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| nitref | OT_INTEGER | NITREF | Number of |
+ %| | | | iterative |
+ %| | | | refinement |
+ %| | | | steps |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reltol | OT_REAL | RELTOL | Relative |
+ %| | | | tolerance on |
+ %| | | | duality gap |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| reltol_inacc | OT_REAL | RTOL_INACC | Relative |
+ %| | | | relaxed |
+ %| | | | tolerance on |
+ %| | | | duality gap |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| verbose | OT_INTEGER | VERBOSE | Verbosity bool |
+ %| | | | for PRINTLEVEL |
+ %| | | | < 3 |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available stats
+ %
+ %+-----------------------+
+ %| Id |
+ %+=======================+
+ %| dcost |
+ %+-----------------------+
+ %| dinf |
+ %+-----------------------+
+ %| dinfres |
+ %+-----------------------+
+ %| dres |
+ %+-----------------------+
+ %| exit_code |
+ %+-----------------------+
+ %| exit_code_explanation |
+ %+-----------------------+
+ %| gap |
+ %+-----------------------+
+ %| iter |
+ %+-----------------------+
+ %| kapovert |
+ %+-----------------------+
+ %| mu |
+ %+-----------------------+
+ %| nitref1 |
+ %+-----------------------+
+ %| nitref2 |
+ %+-----------------------+
+ %| nitref3 |
+ %+-----------------------+
+ %| pcost |
+ %+-----------------------+
+ %| pinf |
+ %+-----------------------+
+ %| pinfres |
+ %+-----------------------+
+ %| pres |
+ %+-----------------------+
+ %| relgap |
+ %+-----------------------+
+ %| sigma |
+ %+-----------------------+
+ %| step |
+ %+-----------------------+
+ %| step_aff |
+ %+-----------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %mosek
+ %-----
+ %
+ %
+ %
+ %Interface to the SOCP solver MOSEK
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| MSK_DPAR_ANA_SO | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_INFEAS_TOL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_BASIS_ | OT_REAL | 0.000 | Consult MOSEK |
+ %| REL_TOL_S | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_BASIS_ | OT_REAL | 0.000 | Consult MOSEK |
+ %| TOL_S | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_BASIS_ | OT_REAL | 0.000 | Consult MOSEK |
+ %| TOL_X | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_CHECK_ | OT_REAL | 0.000 | Consult MOSEK |
+ %| CONVEXITY_REL_T | | | manual. |
+ %| OL | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 0.000 | Consult MOSEK |
+ %| OL_AIJ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 1.000e+20 | Consult MOSEK |
+ %| OL_AIJ_HUGE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 1.000e+10 | Consult MOSEK |
+ %| OL_AIJ_LARGE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 1.000e+16 | Consult MOSEK |
+ %| OL_BOUND_INF | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 100000000 | Consult MOSEK |
+ %| OL_BOUND_WRN | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 100000000 | Consult MOSEK |
+ %| OL_CJ_LARGE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 1.000e+16 | Consult MOSEK |
+ %| OL_C_HUGE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 0.000 | Consult MOSEK |
+ %| OL_QIJ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_DATA_T | OT_REAL | 0.000 | Consult MOSEK |
+ %| OL_X | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_FEASRE | OT_REAL | 0.000 | Consult MOSEK |
+ %| PAIR_TOL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _CO_TOL_DFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _CO_TOL_INFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _CO_TOL_MU_RED | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 1000 | Consult MOSEK |
+ %| _CO_TOL_NEAR_RE | | | manual. |
+ %| L | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _CO_TOL_PFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _CO_TOL_REL_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _NL_MERIT_BAL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _NL_TOL_DFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _NL_TOL_MU_RED | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 1000 | Consult MOSEK |
+ %| _NL_TOL_NEAR_RE | | | manual. |
+ %| L | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _NL_TOL_PFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _NL_TOL_REL_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.995 | Consult MOSEK |
+ %| _NL_TOL_REL_STE | | | manual. |
+ %| P | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_DFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 1 | Consult MOSEK |
+ %| _TOL_DSAFE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_INFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_MU_RED | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_PATH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_PFEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 1 | Consult MOSEK |
+ %| _TOL_PSAFE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_REL_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 1.000 | Consult MOSEK |
+ %| _TOL_REL_STEP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_INTPNT | OT_REAL | 0.000 | Consult MOSEK |
+ %| _TOL_STEP_SIZE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_LOWER_ | OT_REAL | -1.000e+30 | Consult MOSEK |
+ %| OBJ_CUT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_LOWER_ | OT_REAL | -5.000e+29 | Consult MOSEK |
+ %| OBJ_CUT_FINITE_ | | | manual. |
+ %| TRH | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_DI | OT_REAL | -1 | Consult MOSEK |
+ %| SABLE_TERM_TIME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_HE | OT_REAL | -1 | Consult MOSEK |
+ %| URISTIC_TIME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_MA | OT_REAL | -1 | Consult MOSEK |
+ %| X_TIME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_MA | OT_REAL | 60 | Consult MOSEK |
+ %| X_TIME_APRX_OPT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_NE | OT_REAL | 0 | Consult MOSEK |
+ %| AR_TOL_ABS_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_NE | OT_REAL | 0.001 | Consult MOSEK |
+ %| AR_TOL_REL_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_RE | OT_REAL | 0.750 | Consult MOSEK |
+ %| L_ADD_CUT_LIMIT | | | manual. |
+ %| ED | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_RE | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_GAP_CONST | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0 | Consult MOSEK |
+ %| L_ABS_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_ABS_RELAX_INT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_FEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0 | Consult MOSEK |
+ %| L_MAX_CUT_FRAC_ | | | manual. |
+ %| RHS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0 | Consult MOSEK |
+ %| L_MIN_CUT_FRAC_ | | | manual. |
+ %| RHS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0 | Consult MOSEK |
+ %| L_REL_DUAL_BOUN | | | manual. |
+ %| D_IMPROVEMENT | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_REL_GAP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_REL_RELAX_INT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_MIO_TO | OT_REAL | 0.000 | Consult MOSEK |
+ %| L_X | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_NONCON | OT_REAL | 0.000 | Consult MOSEK |
+ %| VEX_TOL_FEAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_NONCON | OT_REAL | 0.000 | Consult MOSEK |
+ %| VEX_TOL_OPT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_OPTIMI | OT_REAL | -1 | Consult MOSEK |
+ %| ZER_MAX_TIME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_PRESOL | OT_REAL | 0.000 | Consult MOSEK |
+ %| VE_TOL_ABS_LIND | | | manual. |
+ %| EP | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_PRESOL | OT_REAL | 0.000 | Consult MOSEK |
+ %| VE_TOL_AIJ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_PRESOL | OT_REAL | 0.000 | Consult MOSEK |
+ %| VE_TOL_REL_LIND | | | manual. |
+ %| EP | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_PRESOL | OT_REAL | 0.000 | Consult MOSEK |
+ %| VE_TOL_S | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_PRESOL | OT_REAL | 0.000 | Consult MOSEK |
+ %| VE_TOL_X | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_QCQO_R | OT_REAL | 0.000 | Consult MOSEK |
+ %| EFORMULATE_REL_ | | | manual. |
+ %| DROP_TOL | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_SIMPLE | OT_REAL | 0.000 | Consult MOSEK |
+ %| X_ABS_TOL_PIV | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_SIM_LU | OT_REAL | 0.010 | Consult MOSEK |
+ %| _TOL_REL_PIV | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_UPPER_ | OT_REAL | 1.000e+30 | Consult MOSEK |
+ %| OBJ_CUT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_DPAR_UPPER_ | OT_REAL | 5.000e+29 | Consult MOSEK |
+ %| OBJ_CUT_FINITE_ | | | manual. |
+ %| TRH | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_ALLOC_ | OT_STRING | 5000 | Consult MOSEK |
+ %| ADD_QNZ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_ANA_SO | OT_STRING | 1 | Consult MOSEK |
+ %| L_BASIS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_ANA_SO | OT_STRING | 0 | Consult MOSEK |
+ %| L_PRINT_VIOLATE | | | manual. |
+ %| D | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_AUTO_S | OT_STRING | 0 | Consult MOSEK |
+ %| ORT_A_BEFORE_OP | | | manual. |
+ %| T | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_AUTO_U | OT_STRING | 0 | Consult MOSEK |
+ %| PDATE_SOL_INFO | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_BASIS_ | OT_STRING | 0 | Consult MOSEK |
+ %| SOLVE_USE_PLUS_ | | | manual. |
+ %| ONE | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_BI_CLE | OT_STRING | 0 | Consult MOSEK |
+ %| AN_OPTIMIZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_BI_IGN | OT_STRING | 0 | Consult MOSEK |
+ %| ORE_MAX_ITER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_BI_IGN | OT_STRING | 0 | Consult MOSEK |
+ %| ORE_NUM_ERROR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_BI_MAX | OT_STRING | 1000000 | Consult MOSEK |
+ %| _ITERATIONS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CACHE_ | OT_STRING | 1 | Consult MOSEK |
+ %| LICENSE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CHECK_ | OT_STRING | 2 | Consult MOSEK |
+ %| CONVEXITY | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_COMPRE | OT_STRING | 1 | Consult MOSEK |
+ %| SS_STATFILE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CONCUR | OT_STRING | 2 | Consult MOSEK |
+ %| RENT_NUM_OPTIMI | | | manual. |
+ %| ZERS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CONCUR | OT_STRING | 2 | Consult MOSEK |
+ %| RENT_PRIORITY_D | | | manual. |
+ %| UAL_SIMPLEX | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CONCUR | OT_STRING | 3 | Consult MOSEK |
+ %| RENT_PRIORITY_F | | | manual. |
+ %| REE_SIMPLEX | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CONCUR | OT_STRING | 4 | Consult MOSEK |
+ %| RENT_PRIORITY_I | | | manual. |
+ %| NTPNT | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_CONCUR | OT_STRING | 1 | Consult MOSEK |
+ %| RENT_PRIORITY_P | | | manual. |
+ %| RIMAL_SIMPLEX | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_FEASRE | OT_STRING | 0 | Consult MOSEK |
+ %| PAIR_OPTIMIZE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INFEAS | OT_STRING | 0 | Consult MOSEK |
+ %| _GENERIC_NAMES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INFEAS | OT_STRING | 1 | Consult MOSEK |
+ %| _PREFER_PRIMAL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INFEAS | OT_STRING | 0 | Consult MOSEK |
+ %| _REPORT_AUTO | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INFEAS | OT_STRING | 1 | Consult MOSEK |
+ %| _REPORT_LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 1 | Consult MOSEK |
+ %| _BASIS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 1 | Consult MOSEK |
+ %| _DIFF_STEP | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _FACTOR_DEBUG_L | | | manual. |
+ %| VL | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _FACTOR_METHOD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _HOTSTART | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 400 | Consult MOSEK |
+ %| _MAX_ITERATIONS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | -1 | Consult MOSEK |
+ %| _MAX_NUM_COR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | -1 | Consult MOSEK |
+ %| _MAX_NUM_REFINE | | | manual. |
+ %| MENT_STEPS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 40 | Consult MOSEK |
+ %| _OFF_COL_TRH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _ORDER_METHOD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 1 | Consult MOSEK |
+ %| _REGULARIZATION | | | manual. |
+ %| _USE | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _SCALING | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _SOLVE_FORM | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_INTPNT | OT_STRING | 0 | Consult MOSEK |
+ %| _STARTING_POINT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LICENS | OT_STRING | 0 | Consult MOSEK |
+ %| E_DEBUG | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LICENS | OT_STRING | 100 | Consult MOSEK |
+ %| E_PAUSE_TIME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LICENS | OT_STRING | 0 | Consult MOSEK |
+ %| E_SUPPRESS_EXPI | | | manual. |
+ %| RE_WRNS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LICENS | OT_STRING | 0 | Consult MOSEK |
+ %| E_WAIT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LIC_TR | OT_STRING | 7 | Consult MOSEK |
+ %| H_EXPIRY_WRN | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG | OT_STRING | 10 | Consult MOSEK |
+ %| | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_BI | OT_STRING | 4 | Consult MOSEK |
+ %| | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_BI | OT_STRING | 2500 | Consult MOSEK |
+ %| _FREQ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_CH | OT_STRING | 0 | Consult MOSEK |
+ %| ECK_CONVEXITY | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_CO | OT_STRING | 1 | Consult MOSEK |
+ %| NCURRENT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_CU | OT_STRING | 1 | Consult MOSEK |
+ %| T_SECOND_OPT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_EX | OT_STRING | 0 | Consult MOSEK |
+ %| PAND | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_FA | OT_STRING | 1 | Consult MOSEK |
+ %| CTOR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_FE | OT_STRING | 1 | Consult MOSEK |
+ %| AS_REPAIR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_FI | OT_STRING | 1 | Consult MOSEK |
+ %| LE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_HE | OT_STRING | 1 | Consult MOSEK |
+ %| AD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_IN | OT_STRING | 1 | Consult MOSEK |
+ %| FEAS_ANA | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_IN | OT_STRING | 4 | Consult MOSEK |
+ %| TPNT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_MI | OT_STRING | 4 | Consult MOSEK |
+ %| O | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_MI | OT_STRING | 1000 | Consult MOSEK |
+ %| O_FREQ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_NO | OT_STRING | 1 | Consult MOSEK |
+ %| NCONVEX | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_OP | OT_STRING | 1 | Consult MOSEK |
+ %| TIMIZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_OR | OT_STRING | 1 | Consult MOSEK |
+ %| DER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_PA | OT_STRING | 0 | Consult MOSEK |
+ %| RAM | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_PR | OT_STRING | 1 | Consult MOSEK |
+ %| ESOLVE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_RE | OT_STRING | 0 | Consult MOSEK |
+ %| SPONSE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_SE | OT_STRING | 1 | Consult MOSEK |
+ %| NSITIVITY | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_SE | OT_STRING | 0 | Consult MOSEK |
+ %| NSITIVITY_OPT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_SI | OT_STRING | 4 | Consult MOSEK |
+ %| M | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_SI | OT_STRING | 1000 | Consult MOSEK |
+ %| M_FREQ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_SI | OT_STRING | 1 | Consult MOSEK |
+ %| M_MINOR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_SI | OT_STRING | 1000 | Consult MOSEK |
+ %| M_NETWORK_FREQ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_LOG_ST | OT_STRING | 0 | Consult MOSEK |
+ %| ORAGE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MAX_NU | OT_STRING | 6 | Consult MOSEK |
+ %| M_WARNINGS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_BR | OT_STRING | 0 | Consult MOSEK |
+ %| ANCH_DIR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_BR | OT_STRING | 1 | Consult MOSEK |
+ %| ANCH_PRIORITIES | | | manual. |
+ %| _USE | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_CO | OT_STRING | 0 | Consult MOSEK |
+ %| NSTRUCT_SOL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_CO | OT_STRING | 0 | Consult MOSEK |
+ %| NT_SOL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_CU | OT_STRING | 1 | Consult MOSEK |
+ %| T_CG | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_CU | OT_STRING | 1 | Consult MOSEK |
+ %| T_CMIR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_CU | OT_STRING | -1 | Consult MOSEK |
+ %| T_LEVEL_ROOT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_CU | OT_STRING | -1 | Consult MOSEK |
+ %| T_LEVEL_TREE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_FE | OT_STRING | -1 | Consult MOSEK |
+ %| ASPUMP_LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_HE | OT_STRING | -1 | Consult MOSEK |
+ %| URISTIC_LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_HO | OT_STRING | 1 | Consult MOSEK |
+ %| TSTART | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_KE | OT_STRING | 1 | Consult MOSEK |
+ %| EP_BASIS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_LO | OT_STRING | -1 | Consult MOSEK |
+ %| CAL_BRANCH_NUMB | | | manual. |
+ %| ER | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_MA | OT_STRING | -1 | Consult MOSEK |
+ %| X_NUM_BRANCHES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_MA | OT_STRING | -1 | Consult MOSEK |
+ %| X_NUM_RELAXS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_MA | OT_STRING | -1 | Consult MOSEK |
+ %| X_NUM_SOLUTIONS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_MO | OT_STRING | 1 | Consult MOSEK |
+ %| DE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_MT | OT_STRING | 1 | Consult MOSEK |
+ %| _USER_CB | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_NO | OT_STRING | 0 | Consult MOSEK |
+ %| DE_OPTIMIZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_NO | OT_STRING | 0 | Consult MOSEK |
+ %| DE_SELECTION | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_OP | OT_STRING | 0 | Consult MOSEK |
+ %| TIMIZER_MODE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_PR | OT_STRING | 1 | Consult MOSEK |
+ %| ESOLVE_AGGREGAT | | | manual. |
+ %| E | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_PR | OT_STRING | 1 | Consult MOSEK |
+ %| ESOLVE_PROBING | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_PR | OT_STRING | 1 | Consult MOSEK |
+ %| ESOLVE_USE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_PR | OT_STRING | -1 | Consult MOSEK |
+ %| OBING_LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_RI | OT_STRING | -1 | Consult MOSEK |
+ %| NS_MAX_NODES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_RO | OT_STRING | 0 | Consult MOSEK |
+ %| OT_OPTIMIZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_ST | OT_STRING | -1 | Consult MOSEK |
+ %| RONG_BRANCH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MIO_US | OT_STRING | 0 | Consult MOSEK |
+ %| E_MULTITHREADED | | | manual. |
+ %| _OPTIMIZER | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_MT_SPI | OT_STRING | 0 | Consult MOSEK |
+ %| NCOUNT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_NONCON | OT_STRING | 100000 | Consult MOSEK |
+ %| VEX_MAX_ITERATI | | | manual. |
+ %| ONS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_NUM_TH | OT_STRING | 0 | Consult MOSEK |
+ %| READS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_MA | OT_STRING | 5 | Consult MOSEK |
+ %| X_TERMS_PER_LIN | | | manual. |
+ %| E | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 1 | Consult MOSEK |
+ %| ITE_HEADER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 1 | Consult MOSEK |
+ %| ITE_HINTS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 0 | Consult MOSEK |
+ %| ITE_PARAMETERS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 1 | Consult MOSEK |
+ %| ITE_PROBLEM | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 0 | Consult MOSEK |
+ %| ITE_SOLUTIONS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 1 | Consult MOSEK |
+ %| ITE_SOL_BAS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 1 | Consult MOSEK |
+ %| ITE_SOL_ITG | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPF_WR | OT_STRING | 1 | Consult MOSEK |
+ %| ITE_SOL_ITR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_OPTIMI | OT_STRING | 0 | Consult MOSEK |
+ %| ZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PARAM_ | OT_STRING | 1 | Consult MOSEK |
+ %| READ_CASE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PARAM_ | OT_STRING | 0 | Consult MOSEK |
+ %| READ_IGN_ERROR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | -1 | Consult MOSEK |
+ %| VE_ELIMINATOR_M | | | manual. |
+ %| AX_NUM_TRIES | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | 1 | Consult MOSEK |
+ %| VE_ELIMINATOR_U | | | manual. |
+ %| SE | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | 1 | Consult MOSEK |
+ %| VE_ELIM_FILL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | -1 | Consult MOSEK |
+ %| VE_LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | 100 | Consult MOSEK |
+ %| VE_LINDEP_ABS_W | | | manual. |
+ %| ORK_TRH | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | 100 | Consult MOSEK |
+ %| VE_LINDEP_REL_W | | | manual. |
+ %| ORK_TRH | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | 1 | Consult MOSEK |
+ %| VE_LINDEP_USE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | -1 | Consult MOSEK |
+ %| VE_MAX_NUM_REDU | | | manual. |
+ %| CTIONS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRESOL | OT_STRING | 2 | Consult MOSEK |
+ %| VE_USE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_PRIMAL | OT_STRING | 0 | Consult MOSEK |
+ %| _REPAIR_OPTIMIZ | | | manual. |
+ %| ER | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_QO_SEP | OT_STRING | 0 | Consult MOSEK |
+ %| ARABLE_REFORMUL | | | manual. |
+ %| ATION | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_A | OT_STRING | 100000 | Consult MOSEK |
+ %| NZ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_C | OT_STRING | 10000 | Consult MOSEK |
+ %| ON | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_C | OT_STRING | 2500 | Consult MOSEK |
+ %| ONE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_D | OT_STRING | 1 | Consult MOSEK |
+ %| ATA_COMPRESSED | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_D | OT_STRING | 0 | Consult MOSEK |
+ %| ATA_FORMAT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_D | OT_STRING | 0 | Consult MOSEK |
+ %| EBUG | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_K | OT_STRING | 0 | Consult MOSEK |
+ %| EEP_FREE_CON | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_L | OT_STRING | 0 | Consult MOSEK |
+ %| P_DROP_NEW_VARS | | | manual. |
+ %| _IN_BOU | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_L | OT_STRING | 1 | Consult MOSEK |
+ %| P_QUOTED_NAMES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_M | OT_STRING | 1 | Consult MOSEK |
+ %| PS_FORMAT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_M | OT_STRING | 1 | Consult MOSEK |
+ %| PS_KEEP_INT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_M | OT_STRING | 1 | Consult MOSEK |
+ %| PS_OBJ_SENSE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_M | OT_STRING | 1 | Consult MOSEK |
+ %| PS_RELAX | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_M | OT_STRING | 1024 | Consult MOSEK |
+ %| PS_WIDTH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_Q | OT_STRING | 20000 | Consult MOSEK |
+ %| NZ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_T | OT_STRING | 0 | Consult MOSEK |
+ %| ASK_IGNORE_PARA | | | manual. |
+ %| M | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_READ_V | OT_STRING | 10000 | Consult MOSEK |
+ %| AR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SENSIT | OT_STRING | 0 | Consult MOSEK |
+ %| IVITY_ALL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SENSIT | OT_STRING | 6 | Consult MOSEK |
+ %| IVITY_OPTIMIZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SENSIT | OT_STRING | 0 | Consult MOSEK |
+ %| IVITY_TYPE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_BA | OT_STRING | 1 | Consult MOSEK |
+ %| SIS_FACTOR_USE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_DE | OT_STRING | 1 | Consult MOSEK |
+ %| GEN | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_DU | OT_STRING | 90 | Consult MOSEK |
+ %| AL_CRASH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_DU | OT_STRING | 0 | Consult MOSEK |
+ %| AL_PHASEONE_MET | | | manual. |
+ %| HOD | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_DU | OT_STRING | 50 | Consult MOSEK |
+ %| AL_RESTRICT_SEL | | | manual. |
+ %| ECTION | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_DU | OT_STRING | 0 | Consult MOSEK |
+ %| AL_SELECTION | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_EX | OT_STRING | 0 | Consult MOSEK |
+ %| PLOIT_DUPVEC | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_HO | OT_STRING | 1 | Consult MOSEK |
+ %| TSTART | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_HO | OT_STRING | 1 | Consult MOSEK |
+ %| TSTART_LU | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_IN | OT_STRING | 0 | Consult MOSEK |
+ %| TEGER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_MA | OT_STRING | 10000000 | Consult MOSEK |
+ %| X_ITERATIONS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_MA | OT_STRING | 250 | Consult MOSEK |
+ %| X_NUM_SETBACKS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_NO | OT_STRING | 1 | Consult MOSEK |
+ %| N_SINGULAR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_PR | OT_STRING | 90 | Consult MOSEK |
+ %| IMAL_CRASH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_PR | OT_STRING | 0 | Consult MOSEK |
+ %| IMAL_PHASEONE_M | | | manual. |
+ %| ETHOD | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_PR | OT_STRING | 50 | Consult MOSEK |
+ %| IMAL_RESTRICT_S | | | manual. |
+ %| ELECTION | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_PR | OT_STRING | 0 | Consult MOSEK |
+ %| IMAL_SELECTION | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_RE | OT_STRING | 0 | Consult MOSEK |
+ %| FACTOR_FREQ | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_RE | OT_STRING | 0 | Consult MOSEK |
+ %| FORMULATION | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_SA | OT_STRING | 0 | Consult MOSEK |
+ %| VE_LU | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_SC | OT_STRING | 0 | Consult MOSEK |
+ %| ALING | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_SC | OT_STRING | 0 | Consult MOSEK |
+ %| ALING_METHOD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_SO | OT_STRING | 0 | Consult MOSEK |
+ %| LVE_FORM | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_ST | OT_STRING | 50 | Consult MOSEK |
+ %| ABILITY_PRIORIT | | | manual. |
+ %| Y | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SIM_SW | OT_STRING | 0 | Consult MOSEK |
+ %| ITCH_OPTIMIZER | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SOLUTI | OT_STRING | 0 | Consult MOSEK |
+ %| ON_CALLBACK | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SOL_FI | OT_STRING | 0 | Consult MOSEK |
+ %| LTER_KEEP_BASIC | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SOL_FI | OT_STRING | 0 | Consult MOSEK |
+ %| LTER_KEEP_RANGE | | | manual. |
+ %| D | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SOL_RE | OT_STRING | -1 | Consult MOSEK |
+ %| AD_NAME_WIDTH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_SOL_RE | OT_STRING | 1024 | Consult MOSEK |
+ %| AD_WIDTH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_TIMING | OT_STRING | 1 | Consult MOSEK |
+ %| _LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WARNIN | OT_STRING | 1 | Consult MOSEK |
+ %| G_LEVEL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| BAS_CONSTRAINTS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| BAS_HEAD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| BAS_VARIABLES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| DATA_COMPRESSED | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| DATA_FORMAT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| DATA_PARAM | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| FREE_CON | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| GENERIC_NAMES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| GENERIC_NAMES_I | | | manual. |
+ %| O | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| IGNORE_INCOMPAT | | | manual. |
+ %| IBLE_CONIC_ITEM | | | |
+ %| S | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| IGNORE_INCOMPAT | | | manual. |
+ %| IBLE_ITEMS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| IGNORE_INCOMPAT | | | manual. |
+ %| IBLE_NL_ITEMS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| IGNORE_INCOMPAT | | | manual. |
+ %| IBLE_PSD_ITEMS | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| INT_CONSTRAINTS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| INT_HEAD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| INT_VARIABLES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 80 | Consult MOSEK |
+ %| LP_LINE_WIDTH | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| LP_QUOTED_NAMES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| LP_STRICT_FORMA | | | manual. |
+ %| T | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 10 | Consult MOSEK |
+ %| LP_TERMS_PER_LI | | | manual. |
+ %| NE | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| MPS_INT | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 8 | Consult MOSEK |
+ %| PRECISION | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| SOL_BARVARIABLE | | | manual. |
+ %| S | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| SOL_CONSTRAINTS | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| SOL_HEAD | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| SOL_IGNORE_INVA | | | manual. |
+ %| LID_NAMES | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| SOL_VARIABLES | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 1 | Consult MOSEK |
+ %| TASK_INC_SOL | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_IPAR_WRITE_ | OT_STRING | 0 | Consult MOSEK |
+ %| XML_MODE | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_BAS_SO | OT_STRING | | Consult MOSEK |
+ %| L_FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_DATA_F | OT_STRING | | Consult MOSEK |
+ %| ILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_DEBUG_ | OT_STRING | | Consult MOSEK |
+ %| FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_FEASRE | OT_STRING | MSK- | Consult MOSEK |
+ %| PAIR_NAME_PREFI | | | manual. |
+ %| X | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_FEASRE | OT_STRING | - | Consult MOSEK |
+ %| PAIR_NAME_SEPAR | | | manual. |
+ %| ATOR | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_FEASRE | OT_STRING | WSUMVIOL | Consult MOSEK |
+ %| PAIR_NAME_WSUMV | | | manual. |
+ %| IOL | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_INT_SO | OT_STRING | | Consult MOSEK |
+ %| L_FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_ITR_SO | OT_STRING | | Consult MOSEK |
+ %| L_FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_MIO_DE | OT_STRING | | Consult MOSEK |
+ %| BUG_STRING | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_PARAM_ | OT_STRING | %% | Consult MOSEK |
+ %| COMMENT_SIGN | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_PARAM_ | OT_STRING | | Consult MOSEK |
+ %| READ_FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_PARAM_ | OT_STRING | | Consult MOSEK |
+ %| WRITE_FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_READ_M | OT_STRING | | Consult MOSEK |
+ %| PS_BOU_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_READ_M | OT_STRING | | Consult MOSEK |
+ %| PS_OBJ_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_READ_M | OT_STRING | | Consult MOSEK |
+ %| PS_RAN_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_READ_M | OT_STRING | | Consult MOSEK |
+ %| PS_RHS_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_SENSIT | OT_STRING | | Consult MOSEK |
+ %| IVITY_FILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_SENSIT | OT_STRING | | Consult MOSEK |
+ %| IVITY_RES_FILE_ | | | manual. |
+ %| NAME | | | |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_SOL_FI | OT_STRING | | Consult MOSEK |
+ %| LTER_XC_LOW | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_SOL_FI | OT_STRING | | Consult MOSEK |
+ %| LTER_XC_UPR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_SOL_FI | OT_STRING | | Consult MOSEK |
+ %| LTER_XX_LOW | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_SOL_FI | OT_STRING | | Consult MOSEK |
+ %| LTER_XX_UPR | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_STAT_F | OT_STRING | | Consult MOSEK |
+ %| ILE_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_STAT_K | OT_STRING | | Consult MOSEK |
+ %| EY | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_STAT_N | OT_STRING | | Consult MOSEK |
+ %| AME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| MSK_SPAR_WRITE_ | OT_STRING | XMSKGEN | Consult MOSEK |
+ %| LP_GEN_VAR_NAME | | | manual. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| eps_unstable | OT_REAL | 0.000 | A margin for |
+ %| | | | unstability |
+ %| | | | detection |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available stats
+ %
+ %+--------------------+
+ %| Id |
+ %+====================+
+ %| problem_status |
+ %+--------------------+
+ %| solution_status |
+ %+--------------------+
+ %| termination_reason |
+ %+--------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %sdp
+ %---
+ %
+ %
+ %
+ %Solve SOCPs using an SdpSolver
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %>List of available stats
+ %
+ %+------------------+
+ %| Id |
+ %+==================+
+ %| sdp_solver_stats |
+ %+------------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joris Gillis
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: socp_solver.hpp
+ %Usage: SocpSolver ()
+ %
+ methods
+ function self = SocpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1035, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1036, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1031, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1032, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1033, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1034, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpDMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpDMatrix.m
new file mode 100755
index 0000000..4d3cf62
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpDMatrix.m
@@ -0,0 +1,46 @@
+classdef SpDMatrix < casadi.SparsityInterfaceCommon
+ %Sparsity interface class.
+ %
+ %This is a common base class for GenericMatrix (i.e. MX and Matrix<>) and
+ %Sparsity, introducing a uniform syntax and implementing common functionality
+ %using the curiously recurring template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: sparsity_interface.hpp
+ %Usage: SpDMatrix ()
+ %
+ methods
+ function self = SpDMatrix(varargin)
+ self@casadi.SparsityInterfaceCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(266, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(267, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpIMatrix.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpIMatrix.m
new file mode 100755
index 0000000..687cca7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpIMatrix.m
@@ -0,0 +1,46 @@
+classdef SpIMatrix < casadi.SparsityInterfaceCommon
+ %Sparsity interface class.
+ %
+ %This is a common base class for GenericMatrix (i.e. MX and Matrix<>) and
+ %Sparsity, introducing a uniform syntax and implementing common functionality
+ %using the curiously recurring template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: sparsity_interface.hpp
+ %Usage: SpIMatrix ()
+ %
+ methods
+ function self = SpIMatrix(varargin)
+ self@casadi.SparsityInterfaceCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(264, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(265, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpMX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpMX.m
new file mode 100755
index 0000000..339664d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpMX.m
@@ -0,0 +1,46 @@
+classdef SpMX < casadi.SparsityInterfaceCommon
+ %Sparsity interface class.
+ %
+ %This is a common base class for GenericMatrix (i.e. MX and Matrix<>) and
+ %Sparsity, introducing a uniform syntax and implementing common functionality
+ %using the curiously recurring template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: sparsity_interface.hpp
+ %Usage: SpMX ()
+ %
+ methods
+ function self = SpMX(varargin)
+ self@casadi.SparsityInterfaceCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(270, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(271, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpSX.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpSX.m
new file mode 100755
index 0000000..a88e634
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpSX.m
@@ -0,0 +1,46 @@
+classdef SpSX < casadi.SparsityInterfaceCommon
+ %Sparsity interface class.
+ %
+ %This is a common base class for GenericMatrix (i.e. MX and Matrix<>) and
+ %Sparsity, introducing a uniform syntax and implementing common functionality
+ %using the curiously recurring template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: sparsity_interface.hpp
+ %Usage: SpSX ()
+ %
+ methods
+ function self = SpSX(varargin)
+ self@casadi.SparsityInterfaceCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(268, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(269, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpSparsity.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpSparsity.m
new file mode 100755
index 0000000..3fde0df
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SpSparsity.m
@@ -0,0 +1,46 @@
+classdef SpSparsity < casadi.SparsityInterfaceCommon
+ %Sparsity interface class.
+ %
+ %This is a common base class for GenericMatrix (i.e. MX and Matrix<>) and
+ %Sparsity, introducing a uniform syntax and implementing common functionality
+ %using the curiously recurring template pattern (CRTP) idiom. Joel Andersson
+ %
+ %C++ includes: sparsity_interface.hpp
+ %Usage: SpSparsity ()
+ %
+ methods
+ function self = SpSparsity(varargin)
+ self@casadi.SparsityInterfaceCommon(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(153, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(154, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Sparsity.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Sparsity.m
new file mode 100755
index 0000000..87a44da
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Sparsity.m
@@ -0,0 +1,2392 @@
+classdef Sparsity < casadi.SharedObject & casadi.SpSparsity
+ %General sparsity class.
+ %
+ %The storage format is a compressed column storage (CCS) format. In this
+ %format, the structural non-zero elements are stored in column-major order,
+ %starting from the upper left corner of the matrix and ending in the lower
+ %right corner.
+ %
+ %In addition to the dimension ( size1(), size2()), (i.e. the number of rows
+ %and the number of columns respectively), there are also two vectors of
+ %integers:
+ %
+ %"colind" [length size2()+1], which contains the index to the first non-
+ %zero element on or after the corresponding column. All the non-zero elements
+ %of a particular i are thus the elements with index el that fulfills:
+ %colind[i] <= el < colind[i+1].
+ %
+ %"row" [same length as the number of non-zero elements, nnz()] The rows for
+ %each of the structural non-zeros.
+ %
+ %Note that with this format, it is cheap to loop over all the non-zero
+ %elements of a particular column, at constant time per element, but expensive
+ %to jump to access a location (i, j).
+ %
+ %If the matrix is dense, i.e. length(row) == size1()*size2(), the format
+ %reduces to standard dense column major format, which allows access to an
+ %arbitrary element in constant time.
+ %
+ %Since the object is reference counted (it inherits from SharedObject),
+ %several matrices are allowed to share the same sparsity pattern.
+ %
+ %The implementations of some methods of this class has been taken from the
+ %CSparse package and modified to use C++ standard library and CasADi data
+ %structures.
+ %
+ %See: Matrix
+ %
+ %Joel Andersson
+ %
+ %C++ includes: sparsity.hpp
+ %Usage: Sparsity ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = reCache(self,varargin)
+ %[INTERNAL] Check if there
+ %is an identical copy of the sparsity pattern in the cache, and if so, make a
+ %shallow copy of that one.
+ %
+ %
+ %Usage: reCache ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(166, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sanityCheck(self,varargin)
+ %Check if the dimensions and colind, row vectors are compatible.
+ %
+ %Parameters:
+ %-----------
+ %
+ %complete: set to true to also check elementwise throws an error as possible
+ %result
+ %
+ %
+ %Usage: sanityCheck (complete = false)
+ %
+ %complete is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(168, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getDiag(self,varargin)
+ %Get the diagonal of the matrix/create a diagonal matrix (mapping will
+ %contain the nonzero mapping) When the input is square, the diagonal elements
+ %are returned. If the input is vector-like, a diagonal matrix is constructed
+ %with it.
+ %
+ %
+ %Usage: retval = getDiag ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(169, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = compress(self,varargin)
+ %Compress a sparsity pattern.
+ %
+ %
+ %Usage: retval = compress ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(170, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isEqual(self,varargin)
+ %Usage: retval = isEqual (nrow, ncol, colind, row)
+ %
+ %nrow is of type int. ncol is of type int. colind is of type std::vector< int,std::allocator< int > > const &. row is of type std::vector< int,std::allocator< int > > const &. nrow is of type int. ncol is of type int. colind is of type std::vector< int,std::allocator< int > > const &. row is of type std::vector< int,std::allocator< int > > const &. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(171, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eq(self,varargin)
+ %Usage: retval = eq (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(172, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = ne(self,varargin)
+ %Usage: retval = ne (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(173, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size1(self,varargin)
+ %Get the number of rows.
+ %
+ %
+ %Usage: retval = size1 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(174, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size2(self,varargin)
+ %Get the number of columns.
+ %
+ %
+ %Usage: retval = size2 ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(175, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = numel(self,varargin)
+ %The total number of elements, including structural zeros, i.e.
+ %size2()*size1()
+ %
+ %See: nnz()
+ %
+ %
+ %Usage: retval = numel ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(176, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isempty(self,varargin)
+ %Check if the sparsity is empty.
+ %
+ %A sparsity is considered empty if one of the dimensions is zero (or
+ %optionally both dimensions)
+ %
+ %
+ %Usage: retval = isempty (both = false)
+ %
+ %both is of type bool. both is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(177, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = nnz(self,varargin)
+ %Get the number of (structural) non-zeros.
+ %
+ %See: numel()
+ %
+ %
+ %Usage: retval = nnz ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(178, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeU(self,varargin)
+ %Number of non-zeros in the upper triangular half, i.e. the number of
+ %elements (i, j) with j>=i.
+ %
+ %
+ %Usage: retval = sizeU ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(179, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeL(self,varargin)
+ %Number of non-zeros in the lower triangular half, i.e. the number of
+ %elements (i, j) with j<=i.
+ %
+ %
+ %Usage: retval = sizeL ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(180, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sizeD(self,varargin)
+ %Number of non-zeros on the diagonal, i.e. the number of elements (i, j) with
+ %j==i.
+ %
+ %
+ %Usage: retval = sizeD ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(181, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = bandwidthU(self,varargin)
+ %Upper half-bandwidth.
+ %
+ %
+ %Usage: retval = bandwidthU ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(182, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = bandwidthL(self,varargin)
+ %Lower half-bandwidth.
+ %
+ %
+ %Usage: retval = bandwidthL ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(183, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = size(self,varargin)
+ %Get the shape.
+ %
+ %
+ %Usage: retval = size ()
+ %
+ %retval is of type std::pair< int,int >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ out = casadiMEX(184, self, varargin{:});
+ if nargout>1
+ for i=1:length(out)
+ varargout{i} = out(i);
+ end
+ else
+ varargout{1}=out;
+ end
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = colind(self,varargin)
+ %Get a reference to the colindex of column cc (see class description)
+ %
+ %
+ %Usage: retval = colind (cc)
+ %
+ %cc is of type int. cc is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(185, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = row(self,varargin)
+ %Get the row of a non-zero element.
+ %
+ %
+ %Usage: retval = row (el)
+ %
+ %el is of type int. el is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(186, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCol(self,varargin)
+ %Get the column for each non-zero entry Together with the row-vector, this
+ %vector gives the sparsity of the matrix in sparse triplet format, i.e. the
+ %column and row for each non-zero elements.
+ %
+ %
+ %Usage: retval = getCol ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(187, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = resize(self,varargin)
+ %Resize.
+ %
+ %
+ %Usage: resize (nrow, ncol)
+ %
+ %nrow is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(188, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = addNZ(self,varargin)
+ %Get the index of a non-zero element Add the element if it does not exist and
+ %copy object if it's not unique.
+ %
+ %
+ %Usage: retval = addNZ (rr, cc)
+ %
+ %rr is of type int. cc is of type int. rr is of type int. cc is of type int. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(189, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hasNZ(self,varargin)
+ %Returns true if the pattern has a non-zero at location rr, cc.
+ %
+ %
+ %Usage: retval = hasNZ (rr, cc)
+ %
+ %rr is of type int. cc is of type int. rr is of type int. cc is of type int. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(190, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getNZ(self,varargin)
+ %> int Sparsity.getNZ(int rr, int cc) const
+ %------------------------------------------------------------------------
+ %
+ %Get the index of an existing non-zero element return -1 if the element does
+ %not exist.
+ %
+ %> [int] Sparsity.getNZ([int ] rr, [int ] cc) const
+ %------------------------------------------------------------------------
+ %
+ %Get a set of non-zero element return -1 if the element does not exist.
+ %
+ %> void Sparsity.getNZ([int ] INOUT) const
+ %------------------------------------------------------------------------
+ %
+ %Get the nonzero index for a set of elements The index vector is used both
+ %for input and outputs and must be sorted by increasing nonzero index, i.e.
+ %column-wise. Elements not found in the sparsity pattern are set to -1.
+ %
+ %
+ %Usage: getNZ (INOUT)
+ %
+ %INOUT is of type std::vector< int,std::allocator< int > > &.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(191, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getLowerNZ(self,varargin)
+ %Get nonzeros in lower triangular part.
+ %
+ %
+ %Usage: retval = getLowerNZ ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(192, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getUpperNZ(self,varargin)
+ %Get nonzeros in upper triangular part.
+ %
+ %
+ %Usage: retval = getUpperNZ ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(193, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCCS(self,varargin)
+ %Get the sparsity in compressed column storage (CCS) format.
+ %
+ %
+ %Usage: getCCS ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(194, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getCRS(self,varargin)
+ %Get the sparsity in compressed row storage (CRS) format.
+ %
+ %
+ %Usage: getCRS ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(195, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = getTriplet(self,varargin)
+ %Get the sparsity in sparse triplet format.
+ %
+ %
+ %Usage: getTriplet ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(196, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sub(self,varargin)
+ %> Sparsity Sparsity.sub([int ] rr, [int ] cc,[int ] output_mapping, bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get a submatrix.
+ %
+ %Returns the sparsity of the submatrix, with a mapping such that submatrix[k]
+ %= originalmatrix[mapping[k]]
+ %
+ %> Sparsity Sparsity.sub([int ] rr, Sparsity sp,[int ] output_mapping, bool ind1=false) const
+ %------------------------------------------------------------------------
+ %
+ %Get a set of elements.
+ %
+ %Returns the sparsity of the corresponding elements, with a mapping such that
+ %submatrix[k] = originalmatrix[mapping[k]]
+ %
+ %
+ %Usage: retval = sub (rr, sp, ind1 = false)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. sp is of type Sparsity. ind1 is of type bool. rr is of type std::vector< int,std::allocator< int > > const &. sp is of type Sparsity. ind1 is of type bool. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(197, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = T(self,varargin)
+ %Transpose the matrix.
+ %
+ %
+ %Usage: retval = T ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(198, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = transpose(self,varargin)
+ %Transpose the matrix and get the reordering of the non-zero entries.
+ %
+ %Parameters:
+ %-----------
+ %
+ %mapping: the non-zeros of the original matrix for each non-zero of the new
+ %matrix
+ %
+ %
+ %Usage: retval = transpose (mapping, invert_mapping = false)
+ %
+ %mapping is of type std::vector< int,std::allocator< int > > &. invert_mapping is of type bool. mapping is of type std::vector< int,std::allocator< int > > &. invert_mapping is of type bool. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(199, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isTranspose(self,varargin)
+ %Check if the sparsity is the transpose of another.
+ %
+ %
+ %Usage: retval = isTranspose (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(200, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isReshape(self,varargin)
+ %Check if the sparsity is a reshape of another.
+ %
+ %
+ %Usage: retval = isReshape (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(201, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = patternCombine(self,varargin)
+ %Combine two sparsity patterns Returns the new sparsity pattern as well as a
+ %mapping with the same length as the number of non-zero elements The mapping
+ %matrix contains the arguments for each nonzero, the first bit indicates if
+ %the first argument is nonzero, the second bit indicates if the second
+ %argument is nonzero (note that none of, one of or both of the arguments can
+ %be nonzero)
+ %
+ %
+ %Usage: retval = patternCombine (y, f0x_is_zero, fx0_is_zero)
+ %
+ %y is of type Sparsity. f0x_is_zero is of type bool. fx0_is_zero is of type bool. y is of type Sparsity. f0x_is_zero is of type bool. fx0_is_zero is of type bool. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(202, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = patternUnion(self,varargin)
+ %Union of two sparsity patterns.
+ %
+ %
+ %Usage: retval = patternUnion (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(203, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = plus(self,varargin)
+ %Usage: retval = plus (b)
+ %
+ %b is of type Sparsity. b is of type Sparsity. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(204, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = patternIntersection(self,varargin)
+ %Intersection of two sparsity patterns Returns the new sparsity pattern as
+ %well as a mapping with the same length as the number of non-zero elements
+ %The value is 1 if the non-zero comes from the first (i.e. this) object, 2 if
+ %it is from the second and 3 (i.e. 1 | 2) if from both.
+ %
+ %
+ %Usage: retval = patternIntersection (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(205, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mtimes(self,varargin)
+ %Usage: retval = mtimes (b)
+ %
+ %b is of type Sparsity. b is of type Sparsity. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(206, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = patternProduct(self,varargin)
+ %Sparsity pattern for a matrix-matrix product Returns the sparsity pattern
+ %resulting from multiplying the pattern with another pattern y from the
+ %right.
+ %
+ %
+ %Usage: retval = patternProduct (y)
+ %
+ %y is of type Sparsity. y is of type Sparsity. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(207, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = patternInverse(self,varargin)
+ %Take the inverse of a sparsity pattern; flip zeros and non-zeros.
+ %
+ %
+ %Usage: retval = patternInverse ()
+ %
+ %retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(208, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlarge(self,varargin)
+ %Enlarge matrix Make the matrix larger by inserting empty rows and columns,
+ %keeping the existing non-zeros.
+ %
+ %For the matrices A to B A(m, n) length(jj)=m , length(ii)=n B(nrow, ncol)
+ %
+ %A=enlarge(m, n, ii, jj) makes sure that
+ %
+ %B[jj, ii] == A
+ %
+ %
+ %Usage: enlarge (nrow, ncol, rr, cc, ind1 = false)
+ %
+ %nrow is of type int. ncol is of type int. rr is of type std::vector< int,std::allocator< int > > const &. cc is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(209, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlargeRows(self,varargin)
+ %Enlarge the matrix along the first dimension (i.e. insert rows)
+ %
+ %
+ %Usage: enlargeRows (nrow, rr, ind1 = false)
+ %
+ %nrow is of type int. rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(210, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = enlargeColumns(self,varargin)
+ %Enlarge the matrix along the second dimension (i.e. insert columns)
+ %
+ %
+ %Usage: enlargeColumns (ncol, cc, ind1 = false)
+ %
+ %ncol is of type int. cc is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(211, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = makeDense(self,varargin)
+ %Make a patten dense.
+ %
+ %
+ %Usage: retval = makeDense (mapping)
+ %
+ %mapping is of type std::vector< int,std::allocator< int > > &. mapping is of type std::vector< int,std::allocator< int > > &. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(212, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = erase(self,varargin)
+ %> [int] Sparsity.erase([int ] rr, [int ] cc, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase rows and/or columns of a matrix.
+ %
+ %> [int] Sparsity.erase([int ] rr, bool ind1=false)
+ %------------------------------------------------------------------------
+ %
+ %Erase elements of a matrix.
+ %
+ %
+ %Usage: retval = erase (rr, ind1 = false)
+ %
+ %rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool. rr is of type std::vector< int,std::allocator< int > > const &. ind1 is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(213, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = append(self,varargin)
+ %Append another sparsity patten vertically (NOTE: only efficient if vector)
+ %
+ %
+ %Usage: append (sp)
+ %
+ %sp is of type Sparsity.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(214, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = appendColumns(self,varargin)
+ %Append another sparsity patten horizontally.
+ %
+ %
+ %Usage: appendColumns (sp)
+ %
+ %sp is of type Sparsity.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(215, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = reserve(self,varargin)
+ %[DEPRECATED]: Reserve space
+ %
+ %
+ %Usage: reserve (nnz, ncol)
+ %
+ %nnz is of type int. ncol is of type int.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(216, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isscalar(self,varargin)
+ %Is scalar?
+ %
+ %
+ %Usage: retval = isscalar (scalar_and_dense = false)
+ %
+ %scalar_and_dense is of type bool. scalar_and_dense is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(217, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isdense(self,varargin)
+ %Is dense?
+ %
+ %
+ %Usage: retval = isdense ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(218, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isrow(self,varargin)
+ %Check if the pattern is a row vector (i.e. size1()==1)
+ %
+ %
+ %Usage: retval = isrow ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(219, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = iscolumn(self,varargin)
+ %Check if the pattern is a column vector (i.e. size2()==1)
+ %
+ %
+ %Usage: retval = iscolumn ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(220, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isvector(self,varargin)
+ %Check if the pattern is a row or column vector.
+ %
+ %
+ %Usage: retval = isvector ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(221, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = isdiag(self,varargin)
+ %Is diagonal?
+ %
+ %
+ %Usage: retval = isdiag ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(222, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issquare(self,varargin)
+ %Is square?
+ %
+ %
+ %Usage: retval = issquare ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(223, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issymmetric(self,varargin)
+ %Is symmetric?
+ %
+ %
+ %Usage: retval = issymmetric ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(224, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istriu(self,varargin)
+ %Is upper triangular?
+ %
+ %
+ %Usage: retval = istriu ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(225, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = istril(self,varargin)
+ %Is lower triangular?
+ %
+ %
+ %Usage: retval = istril ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(226, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = issingular(self,varargin)
+ %Check whether the sparsity-pattern indicates structural singularity.
+ %
+ %
+ %Usage: retval = issingular ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(227, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = rowsSequential(self,varargin)
+ %Do the rows appear sequentially on each column.
+ %
+ %Parameters:
+ %-----------
+ %
+ %strictly: if true, then do not allow multiple entries
+ %
+ %
+ %Usage: retval = rowsSequential (strictly = true)
+ %
+ %strictly is of type bool. strictly is of type bool. retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(228, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = removeDuplicates(self,varargin)
+ %Remove duplicate entries.
+ %
+ %The same indices will be removed from the mapping vector, which must have
+ %the same length as the number of nonzeros
+ %
+ %
+ %Usage: removeDuplicates (mapping)
+ %
+ %mapping is of type std::vector< int,std::allocator< int > > &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(229, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = eliminationTree(self,varargin)
+ %Calculate the elimination tree See Direct Methods for Sparse Linear Systems
+ %by Davis (2006). If the parameter ata is false, the algorithm is equivalent
+ %to Matlab's etree(A), except that the indices are zero- based. If ata is
+ %true, the algorithm is equivalent to Matlab's etree(A, 'row').
+ %
+ %
+ %Usage: retval = eliminationTree (ata = false)
+ %
+ %ata is of type bool. ata is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(230, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = depthFirstSearch(self,varargin)
+ %Depth-first search on the adjacency graph of the sparsity See Direct Methods
+ %for Sparse Linear Systems by Davis (2006).
+ %
+ %
+ %Usage: retval = depthFirstSearch (j, top, xi, pstack, pinv, marked)
+ %
+ %j is of type int. top is of type int. xi is of type std::vector< int,std::allocator< int > > &. pstack is of type std::vector< int,std::allocator< int > > &. pinv is of type std::vector< int,std::allocator< int > > const &. marked is of type std::vector< bool,std::allocator< bool > > &. j is of type int. top is of type int. xi is of type std::vector< int,std::allocator< int > > &. pstack is of type std::vector< int,std::allocator< int > > &. pinv is of type std::vector< int,std::allocator< int > > const &. marked is of type std::vector< bool,std::allocator< bool > > &. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(231, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = stronglyConnectedComponents(self,varargin)
+ %Find the strongly connected components of the bigraph defined by the
+ %sparsity pattern of a square matrix.
+ %
+ %See Direct Methods for Sparse Linear Systems by Davis (2006). Returns:
+ %Number of components
+ %
+ %Offset for each components (length: 1 + number of components)
+ %
+ %Indices for each components, component i has indices index[offset[i]], ...,
+ %index[offset[i+1]]
+ %
+ %In the case that the matrix is symmetric, the result has a particular
+ %interpretation: Given a symmetric matrix A and n =
+ %A.stronglyConnectedComponents(p, r)
+ %
+ %=> A[p, p] will appear block-diagonal with n blocks and with the indices of
+ %the block boundaries to be found in r.
+ %
+ %
+ %Usage: retval = stronglyConnectedComponents ()
+ %
+ %retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(232, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dulmageMendelsohn(self,varargin)
+ %Compute the Dulmage-Mendelsohn decomposition See Direct Methods for Sparse
+ %Linear Systems by Davis (2006).
+ %
+ %Dulmage-Mendelsohn will try to bring your matrix into lower block-
+ %triangular (LBT) form. It will not care about the distance of off- diagonal
+ %elements to the diagonal: there is no guarantee you will get a block-
+ %diagonal matrix if you supply a randomly permuted block- diagonal matrix.
+ %
+ %If your matrix is symmetrical, this method is of limited use; permutation
+ %can make it non-symmetric.
+ %
+ %See: stronglyConnectedComponents
+ %
+ %
+ %Usage: retval = dulmageMendelsohn (seed = 0)
+ %
+ %seed is of type int. seed is of type int. retval is of type int.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(233, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = find(self,varargin)
+ %Get the location of all non-zero elements as they would appear in a Dense
+ %matrix A : DenseMatrix 4 x 3 B : SparseMatrix 4 x 3 , 5 structural non-
+ %zeros.
+ %
+ %k = A.find() A[k] will contain the elements of A that are non-zero in B
+ %
+ %
+ %Usage: retval = find (ind1 = true)
+ %
+ %ind1 is of type bool. ind1 is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(234, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unidirectionalColoring(self,varargin)
+ %Perform a unidirectional coloring: A greedy distance-2 coloring algorithm
+ %(Algorithm 3.1 in A. H. GEBREMEDHIN, F. MANNE, A. POTHEN)
+ %
+ %
+ %Usage: retval = unidirectionalColoring (AT = casadi::Sparsity(), cutoff = std::numeric_limits< int >::max())
+ %
+ %AT is of type Sparsity. cutoff is of type int. AT is of type Sparsity. cutoff is of type int. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(235, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = starColoring(self,varargin)
+ %Perform a star coloring of a symmetric matrix: A greedy distance-2 coloring
+ %algorithm Algorithm 4.1 in What Color Is Your Jacobian? Graph Coloring for
+ %Computing Derivatives A. H. GEBREMEDHIN, F. MANNE, A. POTHEN SIAM Rev.,
+ %47(4), 629705 (2006)
+ %
+ %Ordering options: None (0), largest first (1)
+ %
+ %
+ %Usage: retval = starColoring (ordering = 1, cutoff = std::numeric_limits< int >::max())
+ %
+ %ordering is of type int. cutoff is of type int. ordering is of type int. cutoff is of type int. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(236, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = starColoring2(self,varargin)
+ %Perform a star coloring of a symmetric matrix: A new greedy distance-2
+ %coloring algorithm Algorithm 4.1 in NEW ACYCLIC AND STAR COLORING ALGORITHMS
+ %WITH APPLICATION TO COMPUTING HESSIANS A. H. GEBREMEDHIN, A. TARAFDAR, F.
+ %MANNE, A. POTHEN SIAM J. SCI. COMPUT. Vol. 29, No. 3, pp. 10421072 (2007)
+ %
+ %Ordering options: None (0), largest first (1)
+ %
+ %
+ %Usage: retval = starColoring2 (ordering = 1, cutoff = std::numeric_limits< int >::max())
+ %
+ %ordering is of type int. cutoff is of type int. ordering is of type int. cutoff is of type int. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(237, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = largestFirstOrdering(self,varargin)
+ %Order the cols by decreasing degree.
+ %
+ %
+ %Usage: retval = largestFirstOrdering ()
+ %
+ %retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(238, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = pmult(self,varargin)
+ %Permute rows and/or columns Multiply the sparsity with a permutation matrix
+ %from the left and/or from the right P * A * trans(P), A * trans(P) or A *
+ %trans(P) with P defined by an index vector containing the row for each col.
+ %As an alternative, P can be transposed (inverted).
+ %
+ %
+ %Usage: retval = pmult (p, permute_rows = true, permute_cols = true, invert_permutation = false)
+ %
+ %p is of type std::vector< int,std::allocator< int > > const &. permute_rows is of type bool. permute_cols is of type bool. invert_permutation is of type bool. p is of type std::vector< int,std::allocator< int > > const &. permute_rows is of type bool. permute_cols is of type bool. invert_permutation is of type bool. retval is of type Sparsity.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(239, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dimString(self,varargin)
+ %Get the dimension as a string.
+ %
+ %
+ %Usage: retval = dimString ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(240, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = spy(self,varargin)
+ %Print a textual representation of sparsity.
+ %
+ %
+ %Usage: spy ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(241, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = spyMatlab(self,varargin)
+ %Generate a script for Matlab or Octave which visualizes the sparsity using
+ %the spy command.
+ %
+ %
+ %Usage: spyMatlab (mfile)
+ %
+ %mfile is of type std::string const &.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(242, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = printCompact(self,varargin)
+ %Print a compact description of the sparsity pattern.
+ %
+ %
+ %Usage: printCompact ()
+ %
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(243, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = hash(self,varargin)
+ %Usage: retval = hash ()
+ %
+ %retval is of type std::size_t.
+
+ try
+
+ if ~isa(self,'casadi.Sparsity')
+ self = casadi.Sparsity(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(244, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = Sparsity(varargin)
+ self@casadi.SharedObject(SwigRef.Null);
+ self@casadi.SpSparsity(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(246, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(247, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = scalar(varargin)
+ %Create a scalar sparsity pattern.
+ %
+ %
+ %Usage: retval = scalar (dense_scalar = true)
+ %
+ %dense_scalar is of type bool. dense_scalar is of type bool. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(155, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = dense(varargin)
+ %Create a dense rectangular sparsity pattern.
+ %
+ %
+ %Usage: retval = dense (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(156, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = unit(varargin)
+ %Create the sparsity pattern for a unit vector of length n and a nonzero on
+ %position el.
+ %
+ %
+ %Usage: retval = unit (n, el)
+ %
+ %n is of type int. el is of type int. n is of type int. el is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(157, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = upper(varargin)
+ %Usage: retval = upper (n)
+ %
+ %n is of type int. n is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(158, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = lower(varargin)
+ %Usage: retval = lower (n)
+ %
+ %n is of type int. n is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(159, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = diag(varargin)
+ %Create diagonal sparsity pattern.
+ %
+ %
+ %Usage: retval = diag (rc)
+ %
+ %rc is of type std::pair< int,int > const &. rc is of type std::pair< int,int > const &. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(160, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = band(varargin)
+ %Usage: retval = band (n, p)
+ %
+ %n is of type int. p is of type int. n is of type int. p is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(161, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = banded(varargin)
+ %Usage: retval = banded (n, p)
+ %
+ %n is of type int. p is of type int. n is of type int. p is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(162, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = rowcol(varargin)
+ %Usage: retval = rowcol (row, col, nrow, ncol)
+ %
+ %row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. nrow is of type int. ncol is of type int. row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. nrow is of type int. ncol is of type int. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(163, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triplet(varargin)
+ %Usage: retval = triplet (nrow, ncol, row, col)
+ %
+ %nrow is of type int. ncol is of type int. row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. nrow is of type int. ncol is of type int. row is of type std::vector< int,std::allocator< int > > const &. col is of type std::vector< int,std::allocator< int > > const &. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(164, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = compressed(varargin)
+ %Create from a single vector containing the pattern in compressed column
+ %storage format: The format: The first two entries are the number of rows
+ %(nrow) and columns (ncol) The next ncol+1 entries are the column offsets
+ %(colind). Note that the last element, colind[ncol], gives the number of
+ %nonzeros The last colind[ncol] entries are the row indices
+ %
+ %
+ %Usage: retval = compressed (v)
+ %
+ %v is of type std::vector< int,std::allocator< int > > const &. v is of type std::vector< int,std::allocator< int > > const &. retval is of type Sparsity.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(165, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = clearCache(varargin)
+ %Usage: clearCache ()
+ %
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(167, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(245, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SparsityInterfaceCommon.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SparsityInterfaceCommon.m
new file mode 100755
index 0000000..a5919aa
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/SparsityInterfaceCommon.m
@@ -0,0 +1,804 @@
+classdef SparsityInterfaceCommon < SwigRef
+ %Usage: SparsityInterfaceCommon ()
+ %
+ methods
+ function this = swig_this(self)
+ this = casadiMEX(3, self);
+ end
+ function varargout = horzcat(varargin)
+ %> MatType horzcat([MatType ] v)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate a list of matrices horizontally Alternative terminology:
+ %horizontal stack, hstack, horizontal append, [a b].
+ %
+ %horzcat(horzsplit(x, ...)) = x
+ %
+ %> MatType horzcat(MatType x, MatType y)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate horizontally, two matrices.
+ %
+ %> MatType horzcat(MatType x, MatType y, MatType z)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate horizontally, three matrices.
+ %
+ %> MatType horzcat(MatType x, MatType y, MatType z, MatType w)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate horizontally, four matrices.
+ %
+ %
+ %Usage: retval = horzcat (v)
+ %
+ %v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(128, varargin);
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = vertcat(varargin)
+ %> MatType vertcat([MatType ] v)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate a list of matrices vertically Alternative terminology: vertical
+ %stack, vstack, vertical append, [a;b].
+ %
+ %vertcat(vertsplit(x, ...)) = x
+ %
+ %> MatType vertcat(MatType x, MatType y)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate vertically, two matrices.
+ %
+ %> MatType vertcat(MatType x, MatType y, MatType z)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate vertically, three matrices.
+ %
+ %> MatType vertcat(MatType x, MatType y, MatType z, MatType w)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate vertically, four matrices.
+ %
+ %
+ %Usage: retval = vertcat (v)
+ %
+ %v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(129, varargin);
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = horzsplit(varargin)
+ %> [MatType ] horzsplit(MatType v, [int ] offset)
+ %------------------------------------------------------------------------
+ %
+ %split horizontally, retaining groups of columns
+ %
+ %Parameters:
+ %-----------
+ %
+ %offset: List of all start columns for each group the last column group will
+ %run to the end.
+ %
+ %horzcat(horzsplit(x, ...)) = x
+ %
+ %> [MatType ] horzsplit(MatType v, int incr=1)
+ %------------------------------------------------------------------------
+ %
+ %split horizontally, retaining fixed-sized groups of columns
+ %
+ %Parameters:
+ %-----------
+ %
+ %incr: Size of each group of columns
+ %
+ %horzcat(horzsplit(x, ...)) = x
+ %
+ %
+ %Usage: retval = horzsplit (v, incr = 1)
+ %
+ %v is of type SX. incr is of type int. v is of type SX. incr is of type int. retval is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(130, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = offset(varargin)
+ %Helper function, get offsets corresponding to a vector of matrices.
+ %
+ %
+ %Usage: retval = offset (v, vert = true)
+ %
+ %v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. vert is of type bool. v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. vert is of type bool. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(131, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = vertsplit(varargin)
+ %> [MatType ] vertsplit(MatType v, [int ] offset)
+ %------------------------------------------------------------------------
+ %
+ %split vertically, retaining groups of rows
+ %
+ %*
+ %
+ %Parameters:
+ %-----------
+ %
+ %output_offset: List of all start rows for each group the last row group
+ %will run to the end.
+ %
+ %vertcat(vertsplit(x, ...)) = x
+ %
+ %> [MatType ] vertsplit(MatType v, int incr=1)
+ %------------------------------------------------------------------------
+ %
+ %split vertically, retaining fixed-sized groups of rows
+ %
+ %Parameters:
+ %-----------
+ %
+ %incr: Size of each group of rows
+ %
+ %vertcat(vertsplit(x, ...)) = x
+ %
+ %
+ %
+ %::
+ %
+ % >>> print vertsplit(SX.sym("a",4))
+ % [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
+ %
+ %
+ %
+ %
+ %
+ %
+ %::
+ %
+ % >>> print vertsplit(SX.sym("a",4),2)
+ % [SX([a_0, a_1]), SX([a_2, a_3])]
+ %
+ %
+ %
+ %
+ %If the number of rows is not a multiple of incr, the last entry returned
+ %will have a size smaller than incr.
+ %
+ %
+ %
+ %::
+ %
+ % >>> print vertsplit(DMatrix([0,1,2,3,4]),2)
+ % [DMatrix([0, 1]), DMatrix([2, 3]), DMatrix(4)]
+ %
+ %
+ %
+ %
+ %
+ %Usage: retval = vertsplit (v, incr = 1)
+ %
+ %v is of type SX. incr is of type int. v is of type SX. incr is of type int. retval is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(132, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = blockcat(varargin)
+ %> MatType blockcat([[MatType ] ] v)
+ %------------------------------------------------------------------------
+ %
+ %Construct a matrix from a list of list of blocks.
+ %
+ %> MatType blockcat(MatType A, MatType B, MatType C, MatType D)
+ %------------------------------------------------------------------------
+ %
+ %Construct a matrix from 4 blocks.
+ %
+ %
+ %Usage: retval = blockcat (A, B, C, D)
+ %
+ %A is of type SX. B is of type SX. C is of type SX. D is of type SX. A is of type SX. B is of type SX. C is of type SX. D is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(133, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = blocksplit(varargin)
+ %> [[MatType ] ] blocksplit(MatType x, [int ] vert_offset, [int ] horz_offset)
+ %------------------------------------------------------------------------
+ %
+ %chop up into blocks
+ %
+ %Parameters:
+ %-----------
+ %
+ %vert_offset: Defines the boundaries of the block rows
+ %
+ %horz_offset: Defines the boundaries of the block columns
+ %
+ %blockcat(blocksplit(x,..., ...)) = x
+ %
+ %> [[MatType ] ] blocksplit(MatType x, int vert_incr=1, int horz_incr=1)
+ %------------------------------------------------------------------------
+ %
+ %chop up into blocks
+ %
+ %Parameters:
+ %-----------
+ %
+ %vert_incr: Defines the increment for block boundaries in row dimension
+ %
+ %horz_incr: Defines the increment for block boundaries in column dimension
+ %
+ %blockcat(blocksplit(x,..., ...)) = x
+ %
+ %
+ %Usage: retval = blocksplit (x, vert_incr = 1, horz_incr = 1)
+ %
+ %x is of type SX. vert_incr is of type int. horz_incr is of type int. x is of type SX. vert_incr is of type int. horz_incr is of type int. retval is of type std::vector< std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >,std::allocator< std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(134, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = diagcat(varargin)
+ %> MatType diagcat([MatType ] A)
+ %------------------------------------------------------------------------
+ %
+ %Construct a matrix with given block on the diagonal.
+ %
+ %> MatType diagcat(MatType x, MatType y)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate along diagonal, two matrices.
+ %
+ %> MatType diagcat(MatType x, MatType y, MatType z)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate along diagonal, three matrices.
+ %
+ %> MatType diagcat(MatType x, MatType y, MatType z, MatType w)
+ %------------------------------------------------------------------------
+ %
+ %Concatenate along diagonal, four matrices.
+ %
+ %
+ %Usage: retval = diagcat (A)
+ %
+ %A is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. A is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(135, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = diagsplit(varargin)
+ %> [MatType ] diagsplit(MatType x, [int ] output_offset1, [int ] output_offset2)
+ %------------------------------------------------------------------------
+ %
+ %split diagonally, retaining square matrices
+ %
+ %Parameters:
+ %-----------
+ %
+ %output_offset1: List of all start locations (row) for each group the last
+ %matrix will run to the end.
+ %
+ %output_offset2: List of all start locations (row) for each group the last
+ %matrix will run to the end.
+ %
+ %diagcat(diagsplit(x, ...)) = x
+ %
+ %> [MatType ] diagsplit(MatType x, [int ] output_offset)
+ %------------------------------------------------------------------------
+ %
+ %split diagonally, retaining square matrices
+ %
+ %Parameters:
+ %-----------
+ %
+ %output_offset: List of all start locations for each group the last matrix
+ %will run to the end.
+ %
+ %diagcat(diagsplit(x, ...)) = x
+ %
+ %> [MatType ] diagsplit(MatType x, int incr=1)
+ %------------------------------------------------------------------------
+ %
+ %split diagonally, retaining groups of square matrices
+ %
+ %Parameters:
+ %-----------
+ %
+ %incr: Size of each matrix
+ %
+ %diagsplit(diagsplit(x, ...)) = x
+ %
+ %> [MatType ] diagsplit(MatType x, int incr1, int incr2)
+ %------------------------------------------------------------------------
+ %
+ %split diagonally, retaining fixed-sized matrices
+ %
+ %Parameters:
+ %-----------
+ %
+ %incr1: Row dimension of each matrix
+ %
+ %incr2: Column dimension of each matrix
+ %
+ %diagsplit(diagsplit(x, ...)) = x
+ %
+ %
+ %Usage: retval = diagsplit (x, incr1, incr2)
+ %
+ %x is of type SX. incr1 is of type int. incr2 is of type int. x is of type SX. incr1 is of type int. incr2 is of type int. retval is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(136, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = veccat(varargin)
+ %concatenate vertically while vectorizing all arguments with vec
+ %
+ %
+ %Usage: retval = veccat (x)
+ %
+ %x is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. x is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(137, varargin);
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mtimes(varargin)
+ %> MatType mul(MatType X, MatType Y)
+ %------------------------------------------------------------------------
+ %
+ %Matrix product of two matrices.
+ %
+ %> MatType mul([MatType ] args)
+ %------------------------------------------------------------------------
+ %
+ %Matrix product of n matrices.
+ %
+ %
+ %Usage: retval = mtimes (args)
+ %
+ %args is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. args is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(138, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = mac(varargin)
+ %Multiply-accumulate operation Matrix product of two matrices (X and Y),
+ %adding the result to a third matrix Z. The result has the same sparsity
+ %pattern as C meaning that other entries of (X*Y) are ignored. The operation
+ %is equivalent to: Z+mul(X,Y).project(Z.sparsity()).
+ %
+ %
+ %Usage: retval = mac (X, Y, Z)
+ %
+ %X is of type SX. Y is of type SX. Z is of type SX. X is of type SX. Y is of type SX. Z is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(139, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = transpose(varargin)
+ %Transpose.
+ %
+ %
+ %Usage: retval = transpose (X)
+ %
+ %X is of type SX. X is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(140, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = vec(varargin)
+ %make a vector Reshapes/vectorizes the matrix such that the shape becomes
+ %(expr.numel(), 1). Columns are stacked on top of each other. Same as
+ %reshape(expr, expr.numel(), 1)
+ %
+ %a c b d turns into
+ %
+ %a b c d
+ %
+ %
+ %Usage: retval = vec (a)
+ %
+ %a is of type SX. a is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(141, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = vecNZ(varargin)
+ %Returns a flattened version of the matrix, preserving only nonzeros.
+ %
+ %
+ %Usage: retval = vecNZ (a)
+ %
+ %a is of type SX. a is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(142, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = reshape(varargin)
+ %> MatType reshape(MatType a, int nrow, int ncol)
+ %------------------------------------------------------------------------
+ %
+ %Returns a reshaped version of the matrix.
+ %
+ %> MatType reshape(MatType a,(int,int) rc)
+ %------------------------------------------------------------------------
+ %
+ %Returns a reshaped version of the matrix, dimensions as a vector.
+ %
+ %> MatType reshape(MatType a, Sparsity sp)
+ %------------------------------------------------------------------------
+ %
+ %Reshape the matrix.
+ %
+ %
+ %Usage: retval = reshape (a, sp)
+ %
+ %a is of type SX. sp is of type Sparsity. a is of type SX. sp is of type Sparsity. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(143, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = sprank(varargin)
+ %Obtain the structural rank of a sparsity-pattern.
+ %
+ %
+ %Usage: retval = sprank (A)
+ %
+ %A is of type SX. A is of type SX. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(144, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = norm_0_mul(varargin)
+ %0-norm (nonzero count) of a Matrix-matrix product
+ %
+ %
+ %Usage: retval = norm_0_mul (x, y)
+ %
+ %x is of type SX. y is of type SX. x is of type SX. y is of type SX. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(145, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = triu(varargin)
+ %Get the upper triangular part of a matrix.
+ %
+ %
+ %Usage: retval = triu (a, includeDiagonal = true)
+ %
+ %a is of type SX. includeDiagonal is of type bool. a is of type SX. includeDiagonal is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(146, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = tril(varargin)
+ %Get the lower triangular part of a matrix.
+ %
+ %
+ %Usage: retval = tril (a, includeDiagonal = true)
+ %
+ %a is of type SX. includeDiagonal is of type bool. a is of type SX. includeDiagonal is of type bool. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(147, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = kron(varargin)
+ %Kronecker tensor product.
+ %
+ %Creates a block matrix in which each element (i, j) is a_ij*b
+ %
+ %
+ %Usage: retval = kron (a, b)
+ %
+ %a is of type SX. b is of type SX. a is of type SX. b is of type SX. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(148, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = repmat(varargin)
+ %Repeat matrix A n times vertically and m times horizontally.
+ %
+ %
+ %Usage: retval = repmat (A, rc)
+ %
+ %A is of type SX. rc is of type std::pair< int,int > const &. A is of type SX. rc is of type std::pair< int,int > const &. retval is of type SX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(149, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = length(varargin)
+ %Usage: retval = length (v)
+ %
+ %v is of type SX. v is of type SX. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(150, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = SparsityInterfaceCommon(varargin)
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(151, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(152, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/StabilizedQpSolver.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/StabilizedQpSolver.m
new file mode 100755
index 0000000..6a83f8a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/StabilizedQpSolver.m
@@ -0,0 +1,542 @@
+classdef StabilizedQpSolver < casadi.Function
+ %StabilizedQpSolver.
+ %
+ %Solves the following strictly convex problem:
+ %
+ %
+ %
+ %::
+ %
+ % min 1/2 x' H x + g' x
+ % x
+ %
+ % subject to
+ % LBA <= A x <= UBA
+ % LBX <= x <= UBX
+ %
+ % with :
+ % H sparse (n x n) positive definite
+ % g dense (n x 1)
+ %
+ % n: number of decision variables (x)
+ % nc: number of constraints (A)
+ %
+ %
+ %
+ %If H is not positive-definite, the solver should throw an error.
+ %
+ %General information
+ %===================
+ %
+ %
+ %
+ %>Input scheme: casadi::StabilizedQpSolverInput (STABILIZED_QP_SOLVER_NUM_IN = 12) [stabilizedQpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| STABILIZED_QP_SOLVER_H | h | The square matrix H: |
+ %| | | sparse, (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_G | g | The vector g: dense, |
+ %| | | (n x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_L | lba | dense, (nc x 1) |
+ %| BA | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_U | uba | dense, (nc x 1) |
+ %| BA | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_L | lbx | dense, (n x 1) |
+ %| BX | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_U | ubx | dense, (n x 1) |
+ %| BX | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_X | x0 | dense, (n x 1) |
+ %| 0 | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_L | lam_x0 | dense |
+ %| AM_X0 | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_M | muR | dense (1 x 1) |
+ %| UR | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_M | muE | dense (nc x 1) |
+ %| UE | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_M | mu | dense (nc x 1) |
+ %| U | | |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>Output scheme: casadi::QpSolverOutput (QP_SOLVER_NUM_OUT = 4) [qpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode c |
+ %| | | | according to | asadi::Stabi |
+ %| | | | a given | lizedQpSolve |
+ %| | | | recipe (low- | rInternal |
+ %| | | | level) (qp) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %List of plugins
+ %===============
+ %
+ %
+ %
+ %- sqic
+ %
+ %- qp
+ %
+ %Note: some of the plugins in this list might not be available on your
+ %system. Also, there might be extra plugins available to you that are not
+ %listed here. You can obtain their documentation with
+ %StabilizedQpSolver.doc("myextraplugin")
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %sqic
+ %----
+ %
+ %
+ %
+ %Interface to SQIC
+ %
+ %>List of available options
+ %
+ %+----+------+---------+-------------+
+ %| Id | Type | Default | Description |
+ %+====+======+=========+=============+
+ %+----+------+---------+-------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %qp --
+ %
+ %
+ %
+ %Solved a stabilized QP using a standard QP solver
+ %
+ %>List of available options
+ %
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| Id | Type | Default | Description |
+ %+=================+=================+=================+=================+
+ %| qp_solver | OT_STRING | GenericType() | The QP solver |
+ %| | | | used to solve |
+ %| | | | the stabilized |
+ %| | | | QPs. |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %| qp_solver_optio | OT_DICT | GenericType() | Options to be |
+ %| ns | | | passed to the |
+ %| | | | QP solver |
+ %| | | | instance |
+ %+-----------------+-----------------+-----------------+-----------------+
+ %
+ %>List of available stats
+ %
+ %+-----------------+
+ %| Id |
+ %+=================+
+ %| qp_solver_stats |
+ %+-----------------+
+ %
+ %--------------------------------------------------------------------------------
+ %
+ %
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: stabilized_qp_solver.hpp
+ %Usage: StabilizedQpSolver ()
+ %
+ methods
+ function varargout = generateNativeCode(self,varargin)
+ %Generate native code in the interfaced language for debugging
+ %
+ %
+ %Usage: generateNativeCode (filename)
+ %
+ %filename is of type std::string const &.
+
+ try
+
+ if ~isa(self,'casadi.StabilizedQpSolver')
+ self = casadi.StabilizedQpSolver(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1015, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = StabilizedQpSolver(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1017, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1018, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = hasPlugin(varargin)
+ %Usage: retval = hasPlugin (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1012, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1013, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1014, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1016, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Switch.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Switch.m
new file mode 100755
index 0000000..5ae0c40
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Switch.m
@@ -0,0 +1,292 @@
+classdef Switch < casadi.Function
+ %Switch statement Joel Andersson
+ %
+ %>List of available options
+ %
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| Id | Type | Default | Description | Used in |
+ %+==============+==============+==============+==============+==============+
+ %| ad_weight | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | derivative c | |
+ %| | | | alculation.W | |
+ %| | | | hen there is | |
+ %| | | | an option of | |
+ %| | | | either using | |
+ %| | | | forward or | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives, | |
+ %| | | | the | |
+ %| | | | condition ad | |
+ %| | | | _weight*nf<= | |
+ %| | | | (1-ad_weight | |
+ %| | | | )*na is used | |
+ %| | | | where nf and | |
+ %| | | | na are | |
+ %| | | | estimates of | |
+ %| | | | the number | |
+ %| | | | of forward/r | |
+ %| | | | everse mode | |
+ %| | | | directional | |
+ %| | | | derivatives | |
+ %| | | | needed. By | |
+ %| | | | default, | |
+ %| | | | ad_weight is | |
+ %| | | | calculated a | |
+ %| | | | utomatically | |
+ %| | | | , but this | |
+ %| | | | can be | |
+ %| | | | overridden | |
+ %| | | | by setting | |
+ %| | | | this option. | |
+ %| | | | In | |
+ %| | | | particular, | |
+ %| | | | 0 means | |
+ %| | | | forcing | |
+ %| | | | forward mode | |
+ %| | | | and 1 | |
+ %| | | | forcing | |
+ %| | | | reverse | |
+ %| | | | mode. Leave | |
+ %| | | | unset for | |
+ %| | | | (class | |
+ %| | | | specific) | |
+ %| | | | heuristics. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| ad_weight_sp | OT_REAL | GenericType( | Weighting | casadi::Func |
+ %| | | ) | factor for | tionInternal |
+ %| | | | sparsity | |
+ %| | | | pattern | |
+ %| | | | calculation | |
+ %| | | | calculation. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | behavior. | |
+ %| | | | Set to 0 and | |
+ %| | | | 1 to force | |
+ %| | | | forward and | |
+ %| | | | reverse mode | |
+ %| | | | respectively | |
+ %| | | | . Cf. option | |
+ %| | | | "ad_weight". | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| compiler | OT_STRING | "clang" | Just-in-time | casadi::Func |
+ %| | | | compiler | tionInternal |
+ %| | | | plugin to be | |
+ %| | | | used. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_forwa | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| rd | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | forward mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| custom_rever | OT_DERIVATIV | GenericType( | Function | casadi::Func |
+ %| se | EGENERATOR | ) | that returns | tionInternal |
+ %| | | | a derivative | |
+ %| | | | function | |
+ %| | | | given a | |
+ %| | | | number of | |
+ %| | | | reverse mode | |
+ %| | | | directional | |
+ %| | | | derivatives. | |
+ %| | | | Overrides | |
+ %| | | | default | |
+ %| | | | routines. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| defaults_rec | OT_STRINGVEC | GenericType( | Changes | casadi::Opti |
+ %| ipes | TOR | ) | default | onsFunctiona |
+ %| | | | options | lityNode |
+ %| | | | according to | |
+ %| | | | a given | |
+ %| | | | recipe (low- | |
+ %| | | | level) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| full_jacobia | OT_FUNCTION | GenericType( | The Jacobian | casadi::Func |
+ %| n | | ) | of all | tionInternal |
+ %| | | | outputs with | |
+ %| | | | respect to | |
+ %| | | | all inputs. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| gather_stats | OT_BOOLEAN | false | Flag to | casadi::Func |
+ %| | | | indicate | tionInternal |
+ %| | | | whether | |
+ %| | | | statistics | |
+ %| | | | must be | |
+ %| | | | gathered | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| input_scheme | OT_STRINGVEC | GenericType( | Custom input | casadi::Func |
+ %| | TOR | ) | scheme | tionInternal |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| inputs_check | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| | | | exceptions | tionInternal |
+ %| | | | when the | |
+ %| | | | numerical | |
+ %| | | | values of | |
+ %| | | | the inputs | |
+ %| | | | don't make | |
+ %| | | | sense | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jac_penalty | OT_REAL | 2 | When | casadi::Func |
+ %| | | | requested | tionInternal |
+ %| | | | for a number | |
+ %| | | | of forward/r | |
+ %| | | | everse | |
+ %| | | | directions, | |
+ %| | | | it may be | |
+ %| | | | cheaper to | |
+ %| | | | compute | |
+ %| | | | first the | |
+ %| | | | full | |
+ %| | | | jacobian and | |
+ %| | | | then | |
+ %| | | | multiply | |
+ %| | | | with seeds, | |
+ %| | | | rather than | |
+ %| | | | obtain the | |
+ %| | | | requested | |
+ %| | | | directions | |
+ %| | | | in a straigh | |
+ %| | | | tforward | |
+ %| | | | manner. | |
+ %| | | | Casadi uses | |
+ %| | | | a heuristic | |
+ %| | | | to decide | |
+ %| | | | which is | |
+ %| | | | cheaper. A | |
+ %| | | | high value | |
+ %| | | | of 'jac_pena | |
+ %| | | | lty' makes | |
+ %| | | | it less | |
+ %| | | | likely for | |
+ %| | | | the heurstic | |
+ %| | | | to chose the | |
+ %| | | | full | |
+ %| | | | Jacobian | |
+ %| | | | strategy. | |
+ %| | | | The special | |
+ %| | | | value -1 | |
+ %| | | | indicates | |
+ %| | | | never to use | |
+ %| | | | the full | |
+ %| | | | Jacobian | |
+ %| | | | strategy | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit | OT_BOOLEAN | false | Use just-in- | casadi::Func |
+ %| | | | time | tionInternal |
+ %| | | | compiler to | |
+ %| | | | speed up the | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| jit_options | OT_DICT | GenericType( | Options to | casadi::Func |
+ %| | | ) | be passed to | tionInternal |
+ %| | | | the jit | |
+ %| | | | compiler. | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| monitor | OT_STRINGVEC | GenericType( | Monitors to | casadi::Func |
+ %| | TOR | ) | be activated | tionInternal |
+ %| | | | (inputs|outp | |
+ %| | | | uts) | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| name | OT_STRING | "unnamed_sha | name of the | casadi::Opti |
+ %| | | red_object" | object | onsFunctiona |
+ %| | | | | lityNode |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| output_schem | OT_STRINGVEC | GenericType( | Custom | casadi::Func |
+ %| e | TOR | ) | output | tionInternal |
+ %| | | | scheme | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| regularity_c | OT_BOOLEAN | true | Throw | casadi::Func |
+ %| heck | | | exceptions | tionInternal |
+ %| | | | when NaN or | |
+ %| | | | Inf appears | |
+ %| | | | during | |
+ %| | | | evaluation | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| user_data | OT_VOIDPTR | GenericType( | A user- | casadi::Func |
+ %| | | ) | defined | tionInternal |
+ %| | | | field that | |
+ %| | | | can be used | |
+ %| | | | to identify | |
+ %| | | | the function | |
+ %| | | | or pass | |
+ %| | | | additional | |
+ %| | | | information | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %| verbose | OT_BOOLEAN | false | Verbose | casadi::Func |
+ %| | | | evaluation | tionInternal |
+ %| | | | for | |
+ %| | | | debugging | |
+ %+--------------+--------------+--------------+--------------+--------------+
+ %
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: switch.hpp
+ %Usage: Switch ()
+ %
+ methods
+ function self = Switch(varargin)
+ self@casadi.Function(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1053, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1054, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ function varargout = testCast(varargin)
+ %Usage: retval = testCast (ptr)
+ %
+ %ptr is of type casadi::SharedObjectNode const *. ptr is of type casadi::SharedObjectNode const *. retval is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1052, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Variable.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Variable.m
new file mode 100755
index 0000000..7652ead
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/Variable.m
@@ -0,0 +1,156 @@
+classdef Variable < casadi.PrintVariable
+ %Usage: Variable ()
+ %
+ methods
+ function varargout = name(self,varargin)
+ %Usage: retval = name ()
+ %
+ %retval is of type std::string.
+
+ try
+
+ if ~isa(self,'casadi.Variable')
+ self = casadi.Variable(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(1238, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function v = v(self)
+ v = casadiMEX(1239, self);
+ end
+ function v = d(self)
+ v = casadiMEX(1240, self);
+ end
+ function v = nominal(self)
+ v = casadiMEX(1241, self);
+ end
+ function v = start(self)
+ v = casadiMEX(1242, self);
+ end
+ function v = min(self)
+ v = casadiMEX(1243, self);
+ end
+ function v = max(self)
+ v = casadiMEX(1244, self);
+ end
+ function v = initialGuess(self)
+ v = casadiMEX(1245, self);
+ end
+ function v = derivativeStart(self)
+ v = casadiMEX(1246, self);
+ end
+ function v = variability(self)
+ v = casadiMEX(1247, self);
+ end
+ function v = causality(self)
+ v = casadiMEX(1248, self);
+ end
+ function v = category(self)
+ v = casadiMEX(1249, self);
+ end
+ function v = alias(self)
+ v = casadiMEX(1250, self);
+ end
+ function v = description(self)
+ v = casadiMEX(1251, self);
+ end
+ function v = valueReference(self)
+ v = casadiMEX(1252, self);
+ end
+ function v = unit(self)
+ v = casadiMEX(1253, self);
+ end
+ function v = displayUnit(self)
+ v = casadiMEX(1254, self);
+ end
+ function v = free(self)
+ v = casadiMEX(1255, self);
+ end
+ function varargout = print(self,varargin)
+ %Usage: print (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Variable')
+ self = casadi.Variable(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1256, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = disp(self,varargin)
+ %Usage: disp (trailing_newline = true)
+ %
+ %trailing_newline is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.Variable')
+ self = casadi.Variable(self);
+ end
+ [varargout{1:nargout}] = casadiMEX(1257, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = Variable(varargin)
+ self@casadi.PrintVariable(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1258, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1259, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/WeakRef.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/WeakRef.m
new file mode 100755
index 0000000..c5510ad
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/WeakRef.m
@@ -0,0 +1,93 @@
+classdef WeakRef < casadi.SharedObject
+ %[INTERNAL] Weak reference type A
+ %weak reference to a SharedObject.
+ %
+ %Joel Andersson
+ %
+ %C++ includes: weak_ref.hpp
+ %Usage: WeakRef ()
+ %
+ methods
+ function varargout = shared(self,varargin)
+ %[INTERNAL] Get a shared
+ %(owning) reference.
+ %
+ %
+ %Usage: retval = shared ()
+ %
+ %retval is of type SharedObject.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(69, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = alive(self,varargin)
+ %[INTERNAL] Check if alive.
+ %
+ %
+ %Usage: retval = alive ()
+ %
+ %retval is of type bool.
+
+ try
+
+ if ~isa(self,'casadi.WeakRef')
+ self = casadi.WeakRef(self);
+ end
+ [varargout{1:max(1,nargout)}] = casadiMEX(70, self, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function self = WeakRef(varargin)
+ self@casadi.SharedObject(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(71, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(72, self);
+ self.swigPtr=[];
+ end
+ end
+ end
+ methods(Static)
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/XmlFile.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/XmlFile.m
new file mode 100755
index 0000000..b2c3bc0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/XmlFile.m
@@ -0,0 +1,86 @@
+classdef XmlFile < casadi.OptionsFunctionality
+ %XML parser Can be used for parsing XML files into CasADi data structures.
+ %
+ %Joel Andersson
+ %Diagrams
+ %--------
+ %
+ %
+ %
+ %C++ includes: xml_file.hpp
+ %Usage: XmlFile ()
+ %
+ methods
+ function delete(self)
+ if self.swigPtr
+ casadiMEX(1338, self);
+ self.swigPtr=[];
+ end
+ end
+ function self = XmlFile(varargin)
+ self@casadi.OptionsFunctionality(SwigRef.Null);
+ if nargin==1 && strcmp(class(varargin{1}),'SwigRef')
+ if varargin{1}~=SwigRef.Null
+ self.swigPtr = varargin{1}.swigPtr;
+ end
+ else
+
+ try
+
+ tmp = casadiMEX(1341, varargin{:});
+ self.swigPtr = tmp.swigPtr;
+ tmp.swigPtr = [];
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+ end
+ methods(Static)
+ function varargout = loadPlugin(varargin)
+ %Usage: loadPlugin (name)
+ %
+ %name is of type std::string const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(1339, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ function varargout = doc(varargin)
+ %Usage: retval = doc (name)
+ %
+ %name is of type std::string const &. name is of type std::string const &. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1340, varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/cleIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/cleIn.m
new file mode 100755
index 0000000..2d5ed39
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/cleIn.m
@@ -0,0 +1,32 @@
+function varargout = cleIn(varargin)
+ %Input arguments of a cle solver
+ %
+ %>Input scheme: casadi::CLEInput (CLE_NUM_IN = 2) [cleIn]
+ %
+ %+-----------+-------+-------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=============+
+ %| CLE_A | a | A matrix . |
+ %+-----------+-------+-------------+
+ %| CLE_V | v | V matrix . |
+ %+-----------+-------+-------------+
+ %
+ %
+ %Usage: retval = cleIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1144,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/cleOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/cleOut.m
new file mode 100755
index 0000000..83ac487
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/cleOut.m
@@ -0,0 +1,30 @@
+function varargout = cleOut(varargin)
+ %Output arguments of a cle solver
+ %
+ %>Output scheme: casadi::CLEOutput (CLE_NUM_OUT = 1) [cleOut]
+ %
+ %+-----------+-------+-------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+===================+
+ %| CLE_P | p | Lyapunov matrix . |
+ %+-----------+-------+-------------------+
+ %
+ %
+ %Usage: retval = cleOut (n0 = "", x0 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1145,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/collocationInterpolators.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/collocationInterpolators.m
new file mode 100755
index 0000000..69a1d60
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/collocationInterpolators.m
@@ -0,0 +1,44 @@
+function varargout = collocationInterpolators(varargin)
+ %Obtain collocation interpolating matrices.
+ %
+ %Parameters:
+ %-----------
+ %
+ %tau_root: location of collocation points, as obtained from
+ %collocationPoints
+ %
+ %C: interpolating coefficients to obtain derivatives Length: order+1, order
+ %+ 1
+ %
+ %
+ %
+ %::
+ %
+ %dX/dt @collPoint(j) ~ Sum_i C[j][i]*X@collPoint(i)
+ %
+ %
+ %
+ %Parameters:
+ %-----------
+ %
+ %D: interpolating coefficients to obtain end state Length: order+1
+ %
+ %
+ %Usage: collocationInterpolators (tau_root)
+ %
+ %tau_root is of type std::vector< double,std::allocator< double > > const &.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1220,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/collocationPoints.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/collocationPoints.m
new file mode 100755
index 0000000..305ca5f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/collocationPoints.m
@@ -0,0 +1,27 @@
+function varargout = collocationPoints(varargin)
+ %Obtain collocation points of specific order and scheme.
+ %
+ %Parameters:
+ %-----------
+ %
+ %scheme: 'radau' or 'legendre'
+ %
+ %
+ %Usage: retval = collocationPoints (order, scheme = "radau")
+ %
+ %order is of type int. scheme is of type std::string const &. order is of type int. scheme is of type std::string const &. retval is of type std::vector< double,std::allocator< double > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1219,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/complement.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/complement.m
new file mode 100755
index 0000000..44df4d8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/complement.m
@@ -0,0 +1,26 @@
+function varargout = complement(varargin)
+ %Returns the list of all i in [0, size[ not found in supplied list.
+ %
+ %The supplied vector may contain duplicates and may be non-monotonous The
+ %supplied vector will be checked for bounds The result vector is guaranteed
+ %to be monotonously increasing
+ %
+ %
+ %Usage: retval = complement (v, $ignore)
+ %
+ %v is of type std::vector< int,std::allocator< int > > const &. $ignore is of type int. v is of type std::vector< int,std::allocator< int > > const &. $ignore is of type int. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(67,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/controldaeIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/controldaeIn.m
new file mode 100755
index 0000000..1de92ec
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/controldaeIn.m
@@ -0,0 +1,62 @@
+function varargout = controldaeIn(varargin)
+ %Input arguments of an ODE/DAE function
+ %
+ %>Input scheme: casadi::ControlledDAEInput (CONTROL_DAE_NUM_IN = 9) [controldaeIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| CONTROL_DAE_T | t | Global physical time. |
+ %| | | (1-by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_X | x | State vector |
+ %| | | (dimension nx-by-1). |
+ %| | | Should have the same |
+ %| | | amount of non-zeros as |
+ %| | | DAEOutput:DAE_RES |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_Z | z | Algebraic state vector |
+ %| | | (dimension np-by-1). . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_P | p | Parameter vector |
+ %| | | (dimension np-by-1). . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_U | u | Control vector |
+ %| | | (dimension nu-by-1). . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_U_INTERP | u_interp | Control vector, |
+ %| | | linearly interpolated |
+ %| | | (dimension nu-by-1). . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_X_MAJOR | x_major | State vector |
+ %| | | (dimension nx-by-1) at |
+ %| | | the last major time- |
+ %| | | step . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_T0 | t0 | Time at start of |
+ %| | | control interval |
+ %| | | (1-by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROL_DAE_TF | tf | Time at end of control |
+ %| | | interval (1-by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = controldaeIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity(), n8 = "", x8 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1146,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/controlsimulatorIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/controlsimulatorIn.m
new file mode 100755
index 0000000..3285c82
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/controlsimulatorIn.m
@@ -0,0 +1,42 @@
+function varargout = controlsimulatorIn(varargin)
+ %Input arguments of a control simulator
+ %
+ %>Input scheme: casadi::ControlSimulatorInput (CONTROLSIMULATOR_NUM_IN = 3) [controlsimulatorIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| CONTROLSIMULATOR_X0 | x0 | Differential or |
+ %| | | algebraic state at t0 |
+ %| | | (dimension nx-by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROLSIMULATOR_P | p | Parameters that are |
+ %| | | fixed over the entire |
+ %| | | horizon (dimension np- |
+ %| | | by-1) . |
+ %+------------------------+------------------------+------------------------+
+ %| CONTROLSIMULATOR_U | u | Parameters that change |
+ %| | | over the integration |
+ %| | | intervals (dimension |
+ %| | | nu-by-(ns-1)) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = controlsimulatorIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1147,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/daeIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/daeIn.m
new file mode 100755
index 0000000..f743883
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/daeIn.m
@@ -0,0 +1,36 @@
+function varargout = daeIn(varargin)
+ %Input arguments of an ODE/DAE function
+ %
+ %>Input scheme: casadi::DAEInput (DAE_NUM_IN = 4) [daeIn]
+ %
+ %+-----------+-------+----------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+============================+
+ %| DAE_X | x | Differential state . |
+ %+-----------+-------+----------------------------+
+ %| DAE_Z | z | Algebraic state . |
+ %+-----------+-------+----------------------------+
+ %| DAE_P | p | Parameter . |
+ %+-----------+-------+----------------------------+
+ %| DAE_T | t | Explicit time dependence . |
+ %+-----------+-------+----------------------------+
+ %
+ %
+ %Usage: retval = daeIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1153,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/daeOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/daeOut.m
new file mode 100755
index 0000000..fc7aaf6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/daeOut.m
@@ -0,0 +1,34 @@
+function varargout = daeOut(varargin)
+ %Output arguments of an DAE function
+ %
+ %>Output scheme: casadi::DAEOutput (DAE_NUM_OUT = 3) [daeOut]
+ %
+ %+-----------+-------+--------------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+============================================+
+ %| DAE_ODE | ode | Right hand side of the implicit ODE . |
+ %+-----------+-------+--------------------------------------------+
+ %| DAE_ALG | alg | Right hand side of algebraic equations . |
+ %+-----------+-------+--------------------------------------------+
+ %| DAE_QUAD | quad | Right hand side of quadratures equations . |
+ %+-----------+-------+--------------------------------------------+
+ %
+ %
+ %Usage: retval = daeOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1154,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dleIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dleIn.m
new file mode 100755
index 0000000..841aefb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dleIn.m
@@ -0,0 +1,32 @@
+function varargout = dleIn(varargin)
+ %Input arguments of a dle solver
+ %
+ %>Input scheme: casadi::DLEInput (DLE_NUM_IN = 2) [dleIn]
+ %
+ %+-----------+-------+-------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=============+
+ %| DLE_A | a | A matrix . |
+ %+-----------+-------+-------------+
+ %| DLE_V | v | V matrix . |
+ %+-----------+-------+-------------+
+ %
+ %
+ %Usage: retval = dleIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1148,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dleOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dleOut.m
new file mode 100755
index 0000000..da5a151
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dleOut.m
@@ -0,0 +1,30 @@
+function varargout = dleOut(varargin)
+ %Output arguments of a dle solver
+ %
+ %>Output scheme: casadi::DLEOutput (DLE_NUM_OUT = 1) [dleOut]
+ %
+ %+-----------+-------+-------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=============+
+ %| DLE_P | p | P matrix . |
+ %+-----------+-------+-------------+
+ %
+ %
+ %Usage: retval = dleOut (n0 = "", x0 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1149,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dpleIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dpleIn.m
new file mode 100755
index 0000000..a3b26d2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dpleIn.m
@@ -0,0 +1,36 @@
+function varargout = dpleIn(varargin)
+ %Input arguments of a dple solver
+ %
+ %>Input scheme: casadi::DPLEInput (DPLE_NUM_IN = 2) [dpleIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| DPLE_A | a | A matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %| DPLE_V | v | V matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = dpleIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1150,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dpleOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dpleOut.m
new file mode 100755
index 0000000..6755c9f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/dpleOut.m
@@ -0,0 +1,34 @@
+function varargout = dpleOut(varargin)
+ %Output arguments of a dple solver
+ %
+ %>Output scheme: casadi::DPLEOutput (DPLE_NUM_OUT = 1) [dpleOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| DPLE_P | p | Lyapunov matrix |
+ %| | | (horzcat when |
+ %| | | const_dim, diagcat |
+ %| | | otherwise) (Cholesky |
+ %| | | of P if pos_def) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = dpleOut (n0 = "", x0 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1151,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/extractShared.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/extractShared.m
new file mode 100755
index 0000000..3035ad6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/extractShared.m
@@ -0,0 +1,22 @@
+function varargout = extractShared(varargin)
+ %Extract shared subexpressions from an set of expressions.
+ %
+ %
+ %Usage: extractShared (ex, v_prefix = "v_", v_suffix = "")
+ %
+ %ex is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. v_prefix is of type std::string const &. v_suffix is of type std::string const &.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(902,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryDoc.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryDoc.m
new file mode 100755
index 0000000..ac6b155
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryDoc.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeEntryDoc(varargin)
+ %Usage: retval = getSchemeEntryDoc (scheme, i)
+ %
+ %scheme is of type casadi::InputOutputScheme. i is of type int. scheme is of type casadi::InputOutputScheme. i is of type int. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(22,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryEnum.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryEnum.m
new file mode 100755
index 0000000..63c04de
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryEnum.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeEntryEnum(varargin)
+ %Usage: retval = getSchemeEntryEnum (scheme, name)
+ %
+ %scheme is of type casadi::InputOutputScheme. name is of type std::string const &. scheme is of type casadi::InputOutputScheme. name is of type std::string const &. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(24,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryEnumName.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryEnumName.m
new file mode 100755
index 0000000..4059869
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryEnumName.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeEntryEnumName(varargin)
+ %Usage: retval = getSchemeEntryEnumName (scheme, i)
+ %
+ %scheme is of type casadi::InputOutputScheme. i is of type int. scheme is of type casadi::InputOutputScheme. i is of type int. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(23,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryName.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryName.m
new file mode 100755
index 0000000..bec5f76
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryName.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeEntryName(varargin)
+ %Usage: retval = getSchemeEntryName (scheme, i)
+ %
+ %scheme is of type casadi::InputOutputScheme. i is of type int. scheme is of type casadi::InputOutputScheme. i is of type int. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(21,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryNames.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryNames.m
new file mode 100755
index 0000000..51dbf43
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeEntryNames.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeEntryNames(varargin)
+ %Usage: retval = getSchemeEntryNames (scheme)
+ %
+ %scheme is of type casadi::InputOutputScheme. scheme is of type casadi::InputOutputScheme. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(27,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeName.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeName.m
new file mode 100755
index 0000000..cca0e50
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeName.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeName(varargin)
+ %Usage: retval = getSchemeName (scheme)
+ %
+ %scheme is of type casadi::InputOutputScheme. scheme is of type casadi::InputOutputScheme. retval is of type std::string.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(26,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeSize.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeSize.m
new file mode 100755
index 0000000..b9d9c4a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/getSchemeSize.m
@@ -0,0 +1,19 @@
+function varargout = getSchemeSize(varargin)
+ %Usage: retval = getSchemeSize (scheme)
+ %
+ %scheme is of type casadi::InputOutputScheme. scheme is of type casadi::InputOutputScheme. retval is of type int.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(25,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/gradFIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/gradFIn.m
new file mode 100755
index 0000000..9a2f46c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/gradFIn.m
@@ -0,0 +1,32 @@
+function varargout = gradFIn(varargin)
+ %Input arguments of an NLP objective gradient function
+ %
+ %>Input scheme: casadi::GradFInput (GRADF_NUM_IN = 2) [gradFIn]
+ %
+ %+-----------+-------+---------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=====================+
+ %| GRADF_X | x | Decision variable . |
+ %+-----------+-------+---------------------+
+ %| GRADF_P | p | Fixed parameter . |
+ %+-----------+-------+---------------------+
+ %
+ %
+ %Usage: retval = gradFIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1169,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/gradFOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/gradFOut.m
new file mode 100755
index 0000000..4911ace
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/gradFOut.m
@@ -0,0 +1,34 @@
+function varargout = gradFOut(varargin)
+ %Output arguments of an NLP objective gradient function
+ %
+ %>Output scheme: casadi::GradFOutput (GRADF_NUM_OUT = 3) [gradFOut]
+ %
+ %+------------+-------+-------------------------------+
+ %| Full name | Short | Description |
+ %+============+=======+===============================+
+ %| GRADF_GRAD | grad | Jacobian of the constraints . |
+ %+------------+-------+-------------------------------+
+ %| GRADF_F | f | Objective function . |
+ %+------------+-------+-------------------------------+
+ %| GRADF_G | g | Constraint function . |
+ %+------------+-------+-------------------------------+
+ %
+ %
+ %Usage: retval = gradFOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1170,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/graph_substitute.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/graph_substitute.m
new file mode 100755
index 0000000..a48509c
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/graph_substitute.m
@@ -0,0 +1,32 @@
+function varargout = graph_substitute(varargin)
+ %> MX graph_substitute(MX ex, [MX ] v, [MX ] vdef)
+ %------------------------------------------------------------------------
+ %
+ %Substitute single expression in graph Substitute variable v with expression
+ %vdef in an expression ex, preserving nodes.
+ %
+ %> [MX] graph_substitute([MX ] ex, [MX ] v, [MX ] vdef)
+ %------------------------------------------------------------------------
+ %
+ %Substitute multiple expressions in graph Substitute variable var with
+ %expression expr in multiple expressions, preserving nodes.
+ %
+ %
+ %Usage: retval = graph_substitute (ex, v, vdef)
+ %
+ %ex is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. v is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. vdef is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. ex is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. v is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. vdef is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. retval is of type std::vector< casadi::MX,std::allocator< casadi::MX > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(904,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hash_combine.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hash_combine.m
new file mode 100755
index 0000000..2ef66a3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hash_combine.m
@@ -0,0 +1,32 @@
+function varargout = hash_combine(varargin)
+ %> void hash_combine(std.size_t &seed, T v)
+ %
+ %> void hash_combine(std.size_t &seed, [int ] v)
+ %------------------------------------------------------------------------
+ %[INTERNAL]
+ %Generate a hash value incrementally (function taken from boost)
+ %
+ %> void hash_combine(std.size_t &seed, const int *v, int sz)
+ %------------------------------------------------------------------------
+ %[INTERNAL]
+ %Generate a hash value incrementally, array.
+ %
+ %
+ %Usage: hash_combine (seed, v)
+ %
+ %seed is of type std::size_t &. v is of type std::vector< int,std::allocator< int > > const &.
+
+ try
+
+ [varargout{1:nargout}] = casadiMEX(248,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hash_sparsity.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hash_sparsity.m
new file mode 100755
index 0000000..3c706c4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hash_sparsity.m
@@ -0,0 +1,28 @@
+function varargout = hash_sparsity(varargin)
+ %> std.size_t hash_sparsity(int nrow, int ncol, [int ] colind, [int ] row)
+ %------------------------------------------------------------------------
+ %[INTERNAL]
+ %Hash a sparsity pattern.
+ %
+ %> std.size_t hash_sparsity(int nrow, int ncol, const int *colind, const int *row)
+ %------------------------------------------------------------------------
+ %[INTERNAL]
+ %
+ %Usage: retval = hash_sparsity (nrow, ncol, colind, row)
+ %
+ %nrow is of type int. ncol is of type int. colind is of type int const *. row is of type int const *. nrow is of type int. ncol is of type int. colind is of type int const *. row is of type int const *. retval is of type std::size_t.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(249,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hessLagIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hessLagIn.m
new file mode 100755
index 0000000..f83274b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hessLagIn.m
@@ -0,0 +1,41 @@
+function varargout = hessLagIn(varargin)
+ %Input arguments of an NLP Hessian function
+ %
+ %>Input scheme: casadi::HessLagInput (HESSLAG_NUM_IN = 4) [hessLagIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| HESSLAG_X | x | Decision variable . |
+ %+------------------------+------------------------+------------------------+
+ %| HESSLAG_P | p | Fixed parameter . |
+ %+------------------------+------------------------+------------------------+
+ %| HESSLAG_LAM_F | lam_f | Multiplier for f. Just |
+ %| | | a scalar factor for |
+ %| | | the objective that the |
+ %| | | NLP solver might use |
+ %| | | to scale the |
+ %| | | objective. |
+ %+------------------------+------------------------+------------------------+
+ %| HESSLAG_LAM_G | lam_g | Multiplier for g . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = hessLagIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1173,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hessLagOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hessLagOut.m
new file mode 100755
index 0000000..60bef82
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hessLagOut.m
@@ -0,0 +1,38 @@
+function varargout = hessLagOut(varargin)
+ %Output arguments of an NLP Hessian function
+ %
+ %>Output scheme: casadi::HessLagOutput (HESSLAG_NUM_OUT = 5) [hessLagOut]
+ %
+ %+----------------+--------+------------------------------------------------+
+ %| Full name | Short | Description |
+ %+================+========+================================================+
+ %| HESSLAG_HESS | hess | Hessian of the Lagrangian . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_F | f | Objective function . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_G | g | Constraint function . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_GRAD_X | grad_x | Gradient of the Lagrangian with respect to x . |
+ %+----------------+--------+------------------------------------------------+
+ %| HESSLAG_GRAD_P | grad_p | Gradient of the Lagrangian with respect to p . |
+ %+----------------+--------+------------------------------------------------+
+ %
+ %
+ %Usage: retval = hessLagOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1174,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hnlpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hnlpIn.m
new file mode 100755
index 0000000..33e9fa5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/hnlpIn.m
@@ -0,0 +1,34 @@
+function varargout = hnlpIn(varargin)
+ %Input arguments of an Homotopy NLP function
+ %
+ %>Input scheme: casadi::HNLPInput (HNL_NUM_IN = 3) [hnlpIn]
+ %
+ %+-----------+-------+----------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+======================+
+ %| HNL_X | x | Decision variable . |
+ %+-----------+-------+----------------------+
+ %| HNL_P | p | Fixed parameter . |
+ %+-----------+-------+----------------------+
+ %| HNL_TAU | tau | Homotopy parameter . |
+ %+-----------+-------+----------------------+
+ %
+ %
+ %Usage: retval = hnlpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1152,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/integratorIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/integratorIn.m
new file mode 100755
index 0000000..4c237dd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/integratorIn.m
@@ -0,0 +1,47 @@
+function varargout = integratorIn(varargin)
+ %Input arguments of an integrator
+ %
+ %>Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 6) [integratorIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| INTEGRATOR_X0 | x0 | Differential state at |
+ %| | | the initial time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_P | p | Parameters . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_Z0 | z0 | Initial guess for the |
+ %| | | algebraic variable . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RX0 | rx0 | Backward differential |
+ %| | | state at the final |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RP | rp | Backward parameter |
+ %| | | vector . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RZ0 | rz0 | Initial guess for the |
+ %| | | backwards algebraic |
+ %| | | variable . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = integratorIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1157,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/integratorOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/integratorOut.m
new file mode 100755
index 0000000..6418d59
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/integratorOut.m
@@ -0,0 +1,49 @@
+function varargout = integratorOut(varargin)
+ %Output arguments of an integrator
+ %
+ %>Output scheme: casadi::IntegratorOutput (INTEGRATOR_NUM_OUT = 6) [integratorOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| INTEGRATOR_XF | xf | Differential state at |
+ %| | | the final time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_QF | qf | Quadrature state at |
+ %| | | the final time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_ZF | zf | Algebraic variable at |
+ %| | | the final time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RXF | rxf | Backward differential |
+ %| | | state at the initial |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RQF | rqf | Backward quadrature |
+ %| | | state at the initial |
+ %| | | time . |
+ %+------------------------+------------------------+------------------------+
+ %| INTEGRATOR_RZF | rzf | Backward algebraic |
+ %| | | variable at the |
+ %| | | initial time . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = integratorOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1158,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/jacGIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/jacGIn.m
new file mode 100755
index 0000000..4800740
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/jacGIn.m
@@ -0,0 +1,32 @@
+function varargout = jacGIn(varargin)
+ %Input arguments of an NLP Jacobian function
+ %
+ %>Input scheme: casadi::JacGInput (JACG_NUM_IN = 2) [jacGIn]
+ %
+ %+-----------+-------+---------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=====================+
+ %| JACG_X | x | Decision variable . |
+ %+-----------+-------+---------------------+
+ %| JACG_P | p | Fixed parameter . |
+ %+-----------+-------+---------------------+
+ %
+ %
+ %Usage: retval = jacGIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1171,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/jacGOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/jacGOut.m
new file mode 100755
index 0000000..48cc5b6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/jacGOut.m
@@ -0,0 +1,34 @@
+function varargout = jacGOut(varargin)
+ %Output arguments of an NLP Jacobian function
+ %
+ %>Output scheme: casadi::JacGOutput (JACG_NUM_OUT = 3) [jacGOut]
+ %
+ %+-----------+-------+-------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+===============================+
+ %| JACG_JAC | jac | Jacobian of the constraints . |
+ %+-----------+-------+-------------------------------+
+ %| JACG_F | f | Objective function . |
+ %+-----------+-------+-------------------------------+
+ %| JACG_G | g | Constraint function . |
+ %+-----------+-------+-------------------------------+
+ %
+ %
+ %Usage: retval = jacGOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1172,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/linsolIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/linsolIn.m
new file mode 100755
index 0000000..144b473
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/linsolIn.m
@@ -0,0 +1,32 @@
+function varargout = linsolIn(varargin)
+ %Input arguments of a linear solver
+ %
+ %>Input scheme: casadi::LinsolInput (LINSOL_NUM_IN = 2) [linsolIn]
+ %
+ %+-----------+-------+------------------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+================================================+
+ %| LINSOL_A | A | The square matrix A: sparse, (n x n). . |
+ %+-----------+-------+------------------------------------------------+
+ %| LINSOL_B | B | The right-hand-side matrix b: dense, (n x m) . |
+ %+-----------+-------+------------------------------------------------+
+ %
+ %
+ %Usage: retval = linsolIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1159,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/linsolOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/linsolOut.m
new file mode 100755
index 0000000..2963c40
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/linsolOut.m
@@ -0,0 +1,30 @@
+function varargout = linsolOut(varargin)
+ %Output arguments of a linear solver
+ %
+ %>Output scheme: casadi::LinsolOutput (LINSOL_NUM_OUT = 1) [linsolOut]
+ %
+ %+-----------+-------+----------------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+==============================================+
+ %| LINSOL_X | X | Solution to the linear system of equations . |
+ %+-----------+-------+----------------------------------------------+
+ %
+ %
+ %Usage: retval = linsolOut (n0 = "", x0 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1160,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lookupvector.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lookupvector.m
new file mode 100755
index 0000000..744fbd4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lookupvector.m
@@ -0,0 +1,27 @@
+function varargout = lookupvector(varargin)
+ %Returns a vector for quickly looking up entries of supplied list.
+ %
+ %lookupvector[i]!=-1 <=> v contains i v[lookupvector[i]] == i <=> v contains
+ %i
+ %
+ %Duplicates are treated by looking up last occurrence
+ %
+ %
+ %Usage: retval = lookupvector (v, $ignore)
+ %
+ %v is of type std::vector< int,std::allocator< int > > const &. $ignore is of type int. v is of type std::vector< int,std::allocator< int > > const &. $ignore is of type int. retval is of type std::vector< int,std::allocator< int > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(68,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lpIn.m
new file mode 100755
index 0000000..8e6b8be
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lpIn.m
@@ -0,0 +1,44 @@
+function varargout = lpIn(varargin)
+ %Input arguments of a LP problem
+ %
+ %>Input scheme: casadi::LpSolverInput (LP_SOLVER_NUM_IN = 6) [lpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LP_SOLVER_C | c | The vector c: dense (n |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LBA | lba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_UBA | uba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LBX | lbx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_UBX | ubx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = lpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1161,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lpOut.m
new file mode 100755
index 0000000..f9f2fc4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lpOut.m
@@ -0,0 +1,40 @@
+function varargout = lpOut(varargin)
+ %Output arguments of an LP Solver
+ %
+ %>Output scheme: casadi::LpSolverOutput (LP_SOLVER_NUM_OUT = 4) [lpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| LP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = lpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1162,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdleIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdleIn.m
new file mode 100755
index 0000000..f763610
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdleIn.m
@@ -0,0 +1,36 @@
+function varargout = lrdleIn(varargin)
+ %Input arguments of a dle solver
+ %
+ %>Input scheme: casadi::LR_DLEInput (LR_DLE_NUM_IN = 4) [lrdleIn]
+ %
+ %+-----------+-------+----------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+========================================+
+ %| LR_DLE_A | a | A matrix . |
+ %+-----------+-------+----------------------------------------+
+ %| LR_DLE_V | v | V matrix . |
+ %+-----------+-------+----------------------------------------+
+ %| LR_DLE_C | c | C matrix . |
+ %+-----------+-------+----------------------------------------+
+ %| LR_DLE_H | h | H matrix: horizontal stack of all Hi . |
+ %+-----------+-------+----------------------------------------+
+ %
+ %
+ %Usage: retval = lrdleIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1163,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdleOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdleOut.m
new file mode 100755
index 0000000..72d19c8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdleOut.m
@@ -0,0 +1,30 @@
+function varargout = lrdleOut(varargin)
+ %Output arguments of a dle solver
+ %
+ %>Output scheme: casadi::LR_DLEOutput (LR_DLE_NUM_OUT = 1) [lrdleOut]
+ %
+ %+-----------+-------+---------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=================================+
+ %| LR_DLE_Y | y | Y matrix, block diagonal form . |
+ %+-----------+-------+---------------------------------+
+ %
+ %
+ %Usage: retval = lrdleOut (n0 = "", x0 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1164,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdpleIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdpleIn.m
new file mode 100755
index 0000000..26f5d56
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdpleIn.m
@@ -0,0 +1,41 @@
+function varargout = lrdpleIn(varargin)
+ %Input arguments of a dple solver
+ %
+ %>Input scheme: casadi::LR_DPLEInput (LR_DPLE_NUM_IN = 4) [lrdpleIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LR_DPLE_A | a | A matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %| LR_DPLE_V | v | V matrices (horzcat |
+ %| | | when const_dim, |
+ %| | | diagcat otherwise) . |
+ %+------------------------+------------------------+------------------------+
+ %| LR_DPLE_C | c | C matrix . |
+ %+------------------------+------------------------+------------------------+
+ %| LR_DPLE_H | h | H matrix: horizontal |
+ %| | | stack of all Hi . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = lrdpleIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1165,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdpleOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdpleOut.m
new file mode 100755
index 0000000..982fe9a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/lrdpleOut.m
@@ -0,0 +1,34 @@
+function varargout = lrdpleOut(varargin)
+ %Output arguments of a dple solver
+ %
+ %>Output scheme: casadi::LR_DPLEOutput (LR_DPLE_NUM_OUT = 1) [lrdpleOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| LR_DPLE_Y | y | Lyapunov matrix |
+ %| | | (horzcat when |
+ %| | | const_dim, diagcat |
+ %| | | otherwise) (Cholesky |
+ %| | | of P if pos_def) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = lrdpleOut (n0 = "", x0 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1166,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/matrix_expand.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/matrix_expand.m
new file mode 100755
index 0000000..22ec41a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/matrix_expand.m
@@ -0,0 +1,25 @@
+function varargout = matrix_expand(varargin)
+ %Expand MX graph to SXFunction call.
+ %
+ %Expand the given expression e, optionally supplying expressions contained in
+ %it at which expansion should stop.
+ %
+ %
+ %Usage: retval = matrix_expand (e, boundary = std::vector< casadi::MX >(), options = casadi::Dict())
+ %
+ %e is of type MX. boundary is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. options is of type casadi::Dict const &. e is of type MX. boundary is of type std::vector< casadi::MX,std::allocator< casadi::MX > > const &. options is of type casadi::Dict const &. retval is of type MX.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(903,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpIn.m
new file mode 100755
index 0000000..64e079e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpIn.m
@@ -0,0 +1,32 @@
+function varargout = nlpIn(varargin)
+ %Input arguments of an NLP function
+ %
+ %>Input scheme: casadi::NLPInput (NL_NUM_IN = 2) [nlpIn]
+ %
+ %+-----------+-------+---------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=====================+
+ %| NL_X | x | Decision variable . |
+ %+-----------+-------+---------------------+
+ %| NL_P | p | Fixed parameter . |
+ %+-----------+-------+---------------------+
+ %
+ %
+ %Usage: retval = nlpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1167,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpOut.m
new file mode 100755
index 0000000..d7cbb2f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpOut.m
@@ -0,0 +1,32 @@
+function varargout = nlpOut(varargin)
+ %Output arguments of an NLP function
+ %
+ %>Output scheme: casadi::NLPOutput (NL_NUM_OUT = 2) [nlpOut]
+ %
+ %+-----------+-------+-----------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+=======================+
+ %| NL_F | f | Objective function . |
+ %+-----------+-------+-----------------------+
+ %| NL_G | g | Constraint function . |
+ %+-----------+-------+-----------------------+
+ %
+ %
+ %Usage: retval = nlpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1168,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpSolverIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpSolverIn.m
new file mode 100755
index 0000000..ef1f5de
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpSolverIn.m
@@ -0,0 +1,61 @@
+function varargout = nlpSolverIn(varargin)
+ %Input arguments of an NLP Solver
+ %
+ %>Input scheme: casadi::NlpSolverInput (NLP_SOLVER_NUM_IN = 8) [nlpSolverIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X0 | x0 | Decision variables, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_P | p | Value of fixed |
+ %| | | parameters (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBX | lbx | Decision variables |
+ %| | | lower bound (nx x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBX | ubx | Decision variables |
+ %| | | upper bound (nx x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LBG | lbg | Constraints lower |
+ %| | | bound (ng x 1), |
+ %| | | default -inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_UBG | ubg | Constraints upper |
+ %| | | bound (ng x 1), |
+ %| | | default +inf . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X0 | lam_x0 | Lagrange multipliers |
+ %| | | for bounds on X, |
+ %| | | initial guess (nx x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G0 | lam_g0 | Lagrange multipliers |
+ %| | | for bounds on G, |
+ %| | | initial guess (ng x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = nlpSolverIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1175,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpSolverOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpSolverOut.m
new file mode 100755
index 0000000..0b445aa
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/nlpSolverOut.m
@@ -0,0 +1,52 @@
+function varargout = nlpSolverOut(varargin)
+ %Output arguments of an NLP Solver
+ %
+ %>Output scheme: casadi::NlpSolverOutput (NLP_SOLVER_NUM_OUT = 6) [nlpSolverOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| NLP_SOLVER_X | x | Decision variables at |
+ %| | | the optimal solution |
+ %| | | (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_F | f | Cost function value at |
+ %| | | the optimal solution |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_G | g | Constraints function |
+ %| | | at the optimal |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_X | lam_x | Lagrange multipliers |
+ %| | | for bounds on X at the |
+ %| | | solution (nx x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_G | lam_g | Lagrange multipliers |
+ %| | | for bounds on G at the |
+ %| | | solution (ng x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| NLP_SOLVER_LAM_P | lam_p | Lagrange multipliers |
+ %| | | for bounds on P at the |
+ %| | | solution (np x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = nlpSolverOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1176,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qcqpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qcqpIn.m
new file mode 100755
index 0000000..56c32be
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qcqpIn.m
@@ -0,0 +1,71 @@
+function varargout = qcqpIn(varargin)
+ %Input arguments of a QP problem
+ %
+ %>Input scheme: casadi::QcqpSolverInput (QCQP_SOLVER_NUM_IN = 12) [qcqpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QCQP_SOLVER_H | h | The square matrix H: |
+ %| | | sparse, (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_G | g | The vector g: dense, |
+ %| | | (n x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_P | p | The horizontal stack |
+ %| | | of all Pi. Each Pi is |
+ %| | | sparse (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_Q | q | The vertical stack of |
+ %| | | all qi: dense, (nq n x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_R | r | The vertical stack of |
+ %| | | all scalars ri (nq x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LBA | lba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_UBA | uba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LBX | lbx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_UBX | ubx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_X0 | x0 | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LAM_X0 | lam_x0 | dense |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = qcqpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity(), n8 = "", x8 = casadi::Sparsity(), n9 = "", x9 = casadi::Sparsity(), n10 = "", x10 = casadi::Sparsity(), n11 = "", x11 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n9 is of type std::string const &. x9 is of type Sparsity. n10 is of type std::string const &. x10 is of type Sparsity. n11 is of type std::string const &. x11 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n9 is of type std::string const &. x9 is of type Sparsity. n10 is of type std::string const &. x10 is of type Sparsity. n11 is of type std::string const &. x11 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1177,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qcqpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qcqpOut.m
new file mode 100755
index 0000000..da68607
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qcqpOut.m
@@ -0,0 +1,40 @@
+function varargout = qcqpOut(varargin)
+ %Output arguments of an QP Solver
+ %
+ %>Output scheme: casadi::QcqpSolverOutput (QCQP_SOLVER_NUM_OUT = 4) [qcqpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QCQP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| QCQP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = qcqpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1178,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qpIn.m
new file mode 100755
index 0000000..fb0a014
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qpIn.m
@@ -0,0 +1,55 @@
+function varargout = qpIn(varargin)
+ %Input arguments of a QP problem
+ %
+ %>Input scheme: casadi::QpSolverInput (QP_SOLVER_NUM_IN = 9) [qpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QP_SOLVER_H | h | The square matrix H: |
+ %| | | sparse, (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_G | g | The vector g: dense, |
+ %| | | (n x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LBA | lba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_UBA | uba | dense, (nc x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LBX | lbx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_UBX | ubx | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_X0 | x0 | dense, (n x 1) |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_X0 | lam_x0 | dense |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = qpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity(), n8 = "", x8 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1179,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qpOut.m
new file mode 100755
index 0000000..b23d151
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/qpOut.m
@@ -0,0 +1,40 @@
+function varargout = qpOut(varargin)
+ %Output arguments of an QP Solver
+ %
+ %>Output scheme: casadi::QpSolverOutput (QP_SOLVER_NUM_OUT = 4) [qpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| QP_SOLVER_X | x | The primal solution . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_COST | cost | The optimal cost . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to |
+ %| | | linear bounds . |
+ %+------------------------+------------------------+------------------------+
+ %| QP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = qpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1180,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/rdaeIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/rdaeIn.m
new file mode 100755
index 0000000..696b350
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/rdaeIn.m
@@ -0,0 +1,42 @@
+function varargout = rdaeIn(varargin)
+ %Input arguments of an ODE/DAE backward integration function
+ %
+ %>Input scheme: casadi::RDAEInput (RDAE_NUM_IN = 7) [rdaeIn]
+ %
+ %+-----------+-------+-------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+===============================+
+ %| RDAE_RX | rx | Backward differential state . |
+ %+-----------+-------+-------------------------------+
+ %| RDAE_RZ | rz | Backward algebraic state . |
+ %+-----------+-------+-------------------------------+
+ %| RDAE_RP | rp | Backward parameter vector . |
+ %+-----------+-------+-------------------------------+
+ %| RDAE_X | x | Forward differential state . |
+ %+-----------+-------+-------------------------------+
+ %| RDAE_Z | z | Forward algebraic state . |
+ %+-----------+-------+-------------------------------+
+ %| RDAE_P | p | Parameter vector . |
+ %+-----------+-------+-------------------------------+
+ %| RDAE_T | t | Explicit time dependence . |
+ %+-----------+-------+-------------------------------+
+ %
+ %
+ %Usage: retval = rdaeIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1155,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/rdaeOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/rdaeOut.m
new file mode 100755
index 0000000..8db1049
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/rdaeOut.m
@@ -0,0 +1,34 @@
+function varargout = rdaeOut(varargin)
+ %Output arguments of an ODE/DAE backward integration function
+ %
+ %>Output scheme: casadi::RDAEOutput (RDAE_NUM_OUT = 3) [rdaeOut]
+ %
+ %+-----------+-------+-------------------------------------------+
+ %| Full name | Short | Description |
+ %+===========+=======+===========================================+
+ %| RDAE_ODE | ode | Right hand side of ODE. . |
+ %+-----------+-------+-------------------------------------------+
+ %| RDAE_ALG | alg | Right hand side of algebraic equations. . |
+ %+-----------+-------+-------------------------------------------+
+ %| RDAE_QUAD | quad | Right hand side of quadratures. . |
+ %+-----------+-------+-------------------------------------------+
+ %
+ %
+ %Usage: retval = rdaeOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1156,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdpIn.m
new file mode 100755
index 0000000..e778db1
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdpIn.m
@@ -0,0 +1,53 @@
+function varargout = sdpIn(varargin)
+ %Input arguments of a SDP problem
+ %
+ %>Input scheme: casadi::SDPInput (SDP_SOLVER_NUM_IN = 8) [sdpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDP_SOLVER_F | f | The horizontal stack |
+ %| | | of all matrices F_i: ( |
+ %| | | m x nm) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_C | c | The vector c: ( n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_G | g | The matrix G: ( m x m) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LBA | lba | Lower bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_UBA | uba | Upper bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LBX | lbx | Lower bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_UBX | ubx | Upper bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = sdpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1181,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdpOut.m
new file mode 100755
index 0000000..eb5ec02
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdpOut.m
@@ -0,0 +1,56 @@
+function varargout = sdpOut(varargin)
+ %Output arguments of an SDP Solver
+ %
+ %>Output scheme: casadi::SDPOutput (SDP_SOLVER_NUM_OUT = 7) [sdpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDP_SOLVER_X | x | The primal solution (n |
+ %| | | x 1) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_P | p | The solution P (m x m) |
+ %| | | - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_DUAL | dual | The dual solution (m x |
+ %| | | m) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_COST | cost | The primal optimal |
+ %| | | cost (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_DUAL_COST | dual_cost | The dual optimal cost |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to the |
+ %| | | linear constraints (nc |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds (n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = sdpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1182,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdqpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdqpIn.m
new file mode 100755
index 0000000..5697e34
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdqpIn.m
@@ -0,0 +1,56 @@
+function varargout = sdqpIn(varargin)
+ %Input arguments of a SDQP problem
+ %
+ %>Input scheme: casadi::SDQPInput (SDQP_SOLVER_NUM_IN = 9) [sdqpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDQP_SOLVER_H | h | The matrix H: sparse ( |
+ %| | | n x n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_C | c | The vector c: ( n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_F | f | The horizontal stack |
+ %| | | of all matrices F_i: ( |
+ %| | | m x nm) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_G | g | The matrix G: ( m x m) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LBA | lba | Lower bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_UBA | uba | Upper bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LBX | lbx | Lower bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_UBX | ubx | Upper bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = sdqpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity(), n8 = "", x8 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1183,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdqpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdqpOut.m
new file mode 100755
index 0000000..94ab5a4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/sdqpOut.m
@@ -0,0 +1,56 @@
+function varargout = sdqpOut(varargin)
+ %Output arguments of an SDQP Solver
+ %
+ %>Output scheme: casadi::SDQPOutput (SDQP_SOLVER_NUM_OUT = 7) [sdqpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SDQP_SOLVER_X | x | The primal solution (n |
+ %| | | x 1) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_P | p | The solution P (m x m) |
+ %| | | - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_DUAL | dual | The dual solution (m x |
+ %| | | m) - may be used as |
+ %| | | initial guess . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_COST | cost | The primal optimal |
+ %| | | cost (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_DUAL_COST | dual_cost | The dual optimal cost |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to the |
+ %| | | linear constraints (nc |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SDQP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds (n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = sdqpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1184,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleIRK.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleIRK.m
new file mode 100755
index 0000000..8fbee9b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleIRK.m
@@ -0,0 +1,36 @@
+function varargout = simpleIRK(varargin)
+ %Construct an implicit Runge-Kutta integrator using a collocation scheme The
+ %constructed function (which is of type MXFunction), has three inputs,
+ %corresponding to initial state (x0), parameter (p) and integration time (h)
+ %and one output, corresponding to final state (xf).
+ %
+ %Parameters:
+ %-----------
+ %
+ %f: ODE function with two inputs (x and p) and one output (xdot)
+ %
+ %N: Number of integrator steps
+ %
+ %order: Order of interpolating polynomials
+ %
+ %scheme: Collocation scheme, as excepted by collocationPoints function.
+ %
+ %
+ %Usage: retval = simpleIRK (f, N = 10, order = 4, scheme = "radau", solver = "newton", solver_options = casadi::Dict())
+ %
+ %f is of type Function. N is of type int. order is of type int. scheme is of type std::string const &. solver is of type std::string const &. solver_options is of type casadi::Dict const &. f is of type Function. N is of type int. order is of type int. scheme is of type std::string const &. solver is of type std::string const &. solver_options is of type casadi::Dict const &. retval is of type MXFunction.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1222,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleIntegrator.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleIntegrator.m
new file mode 100755
index 0000000..42380eb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleIntegrator.m
@@ -0,0 +1,37 @@
+function varargout = simpleIntegrator(varargin)
+ %Simplified wrapper for the Integrator class Constructs an integrator using
+ %the same syntax as simpleRK and simpleIRK. The constructed function (which
+ %is of type MXFunction), has three inputs, corresponding to initial state
+ %(x0), parameter (p) and integration time (h) and one output, corresponding
+ %to final state (xf).
+ %
+ %Parameters:
+ %-----------
+ %
+ %f: ODE function with two inputs (x and p) and one output (xdot)
+ %
+ %N: Number of integrator steps
+ %
+ %order: Order of interpolating polynomials
+ %
+ %scheme: Collocation scheme, as excepted by collocationPoints function.
+ %
+ %
+ %Usage: retval = simpleIntegrator (f, integrator = "cvodes", integrator_options = casadi::Dict())
+ %
+ %f is of type Function. integrator is of type std::string const &. integrator_options is of type casadi::Dict const &. f is of type Function. integrator is of type std::string const &. integrator_options is of type casadi::Dict const &. retval is of type MXFunction.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1223,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleRK.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleRK.m
new file mode 100755
index 0000000..82e377e
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/simpleRK.m
@@ -0,0 +1,34 @@
+function varargout = simpleRK(varargin)
+ %Construct an explicit Runge-Kutta integrator The constructed function (which
+ %is of type MXFunction), has three inputs, corresponding to initial state
+ %(x0), parameter (p) and integration time (h) and one output, corresponding
+ %to final state (xf).
+ %
+ %Parameters:
+ %-----------
+ %
+ %f: ODE function with two inputs (x and p) and one output (xdot)
+ %
+ %N: Number of integrator steps
+ %
+ %order: Order of interpolating polynomials
+ %
+ %
+ %Usage: retval = simpleRK (f, N = 10, order = 4)
+ %
+ %f is of type Function. N is of type int. order is of type int. f is of type Function. N is of type int. order is of type int. retval is of type MXFunction.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1221,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpIn.m
new file mode 100755
index 0000000..364d7c6
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpIn.m
@@ -0,0 +1,62 @@
+function varargout = socpIn(varargin)
+ %Input arguments of a SOCP problem
+ %
+ %>Input scheme: casadi::SOCPInput (SOCP_SOLVER_NUM_IN = 10) [socpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SOCP_SOLVER_G | g | The horizontal stack |
+ %| | | of all matrices Gi: ( |
+ %| | | n x N) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_H | h | The vertical stack of |
+ %| | | all vectors hi: ( N x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_E | e | The horizontal stack |
+ %| | | of all vectors ei: ( n |
+ %| | | x m) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_F | f | The vertical stack of |
+ %| | | all scalars fi: ( m x |
+ %| | | 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_C | c | The vector c: ( n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LBA | lba | Lower bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_UBA | uba | Upper bounds on Ax ( |
+ %| | | nc x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LBX | lbx | Lower bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_UBX | ubx | Upper bounds on x ( n |
+ %| | | x 1 ) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = socpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity(), n8 = "", x8 = casadi::Sparsity(), n9 = "", x9 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n9 is of type std::string const &. x9 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n9 is of type std::string const &. x9 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1185,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpOut.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpOut.m
new file mode 100755
index 0000000..30fae4a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpOut.m
@@ -0,0 +1,52 @@
+function varargout = socpOut(varargin)
+ %Output arguments of an SOCP Solver
+ %
+ %>Output scheme: casadi::SOCPOutput (SOCP_SOLVER_NUM_OUT = 6) [socpOut]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SOCP_SOLVER_X | x | The primal solution (n |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_COST | cost | The primal optimal |
+ %| | | cost (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_DUAL_COST | dual_cost | The dual optimal cost |
+ %| | | (1 x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LAM_A | lam_a | The dual solution |
+ %| | | corresponding to the |
+ %| | | linear constraints (nc |
+ %| | | x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LAM_X | lam_x | The dual solution |
+ %| | | corresponding to |
+ %| | | simple bounds (n x 1) |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_SOLVER_LAM_CONE | lam_cone | The dual solution |
+ %| | | correspoding to cone |
+ %| | | (2-norm) constraints |
+ %| | | (m x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = socpOut (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1186,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpStruct.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpStruct.m
new file mode 100755
index 0000000..6c4f5d2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/socpStruct.m
@@ -0,0 +1,39 @@
+function varargout = socpStruct(varargin)
+ %Structure specification of an SOCP
+ %
+ %>Struct scheme: casadi::SOCPStruct ( = 3) [socpStruct]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| SOCP_STRUCT_G | g | The horizontal stack |
+ %| | | of all matrices Gi: ( |
+ %| | | n x N) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_STRUCT_E | e | The horizontal stack |
+ %| | | of all vectors ei: ( n |
+ %| | | x m) . |
+ %+------------------------+------------------------+------------------------+
+ %| SOCP_STRUCT_A | a | The matrix A: ( nc x |
+ %| | | n) . |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = socpStruct (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1187,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/stabilizedQpIn.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/stabilizedQpIn.m
new file mode 100755
index 0000000..6747fbd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/stabilizedQpIn.m
@@ -0,0 +1,70 @@
+function varargout = stabilizedQpIn(varargin)
+ %Input arguments of a QP problem
+ %
+ %>Input scheme: casadi::StabilizedQpSolverInput (STABILIZED_QP_SOLVER_NUM_IN = 12) [stabilizedQpIn]
+ %
+ %+------------------------+------------------------+------------------------+
+ %| Full name | Short | Description |
+ %+========================+========================+========================+
+ %| STABILIZED_QP_SOLVER_H | h | The square matrix H: |
+ %| | | sparse, (n x n). Only |
+ %| | | the lower triangular |
+ %| | | part is actually used. |
+ %| | | The matrix is assumed |
+ %| | | to be symmetrical. |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_G | g | The vector g: dense, |
+ %| | | (n x 1) . |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_A | a | The matrix A: sparse, |
+ %| | | (nc x n) - product |
+ %| | | with x must be dense. |
+ %| | | . |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_L | lba | dense, (nc x 1) |
+ %| BA | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_U | uba | dense, (nc x 1) |
+ %| BA | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_L | lbx | dense, (n x 1) |
+ %| BX | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_U | ubx | dense, (n x 1) |
+ %| BX | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_X | x0 | dense, (n x 1) |
+ %| 0 | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_L | lam_x0 | dense |
+ %| AM_X0 | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_M | muR | dense (1 x 1) |
+ %| UR | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_M | muE | dense (nc x 1) |
+ %| UE | | |
+ %+------------------------+------------------------+------------------------+
+ %| STABILIZED_QP_SOLVER_M | mu | dense (nc x 1) |
+ %| U | | |
+ %+------------------------+------------------------+------------------------+
+ %
+ %
+ %Usage: retval = stabilizedQpIn (n0 = "", x0 = casadi::Sparsity(), n1 = "", x1 = casadi::Sparsity(), n2 = "", x2 = casadi::Sparsity(), n3 = "", x3 = casadi::Sparsity(), n4 = "", x4 = casadi::Sparsity(), n5 = "", x5 = casadi::Sparsity(), n6 = "", x6 = casadi::Sparsity(), n7 = "", x7 = casadi::Sparsity(), n8 = "", x8 = casadi::Sparsity(), n9 = "", x9 = casadi::Sparsity(), n10 = "", x10 = casadi::Sparsity(), n11 = "", x11 = casadi::Sparsity())
+ %
+ %n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n9 is of type std::string const &. x9 is of type Sparsity. n10 is of type std::string const &. x10 is of type Sparsity. n11 is of type std::string const &. x11 is of type Sparsity. n0 is of type std::string const &. x0 is of type Sparsity. n1 is of type std::string const &. x1 is of type Sparsity. n2 is of type std::string const &. x2 is of type Sparsity. n3 is of type std::string const &. x3 is of type Sparsity. n4 is of type std::string const &. x4 is of type Sparsity. n5 is of type std::string const &. x5 is of type Sparsity. n6 is of type std::string const &. x6 is of type Sparsity. n7 is of type std::string const &. x7 is of type Sparsity. n8 is of type std::string const &. x8 is of type Sparsity. n9 is of type std::string const &. x9 is of type Sparsity. n10 is of type std::string const &. x10 is of type Sparsity. n11 is of type std::string const &. x11 is of type Sparsity. retval is of type std::pair< std::map< std::string,casadi::Sparsity,std::less< std::string >,std::allocator< std::pair< std::string const,casadi::Sparsity > > >,std::vector< std::string,std::allocator< std::string > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(1188,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/substitute.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/substitute.m
new file mode 100755
index 0000000..9289f03
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/substitute.m
@@ -0,0 +1,30 @@
+function varargout = substitute(varargin)
+ %> MatType substitute(MatType ex, MatType v, MatType vdef)
+ %------------------------------------------------------------------------
+ %
+ %Substitute variable v with expression vdef in an expression ex.
+ %
+ %> [MatType] substitute([MatType ] ex, [MatType ] v, [MatType ] vdef)
+ %------------------------------------------------------------------------
+ %
+ %Substitute variable var with expression expr in multiple expressions.
+ %
+ %
+ %Usage: retval = substitute (ex, v, vdef)
+ %
+ %ex is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. vdef is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. ex is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. vdef is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. retval is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > >.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(900,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/substituteInPlace.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/substituteInPlace.m
new file mode 100755
index 0000000..308b889
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/+casadi/substituteInPlace.m
@@ -0,0 +1,24 @@
+function varargout = substituteInPlace(varargin)
+ %Inplace substitution with piggyback expressions Substitute variables v out
+ %of the expressions vdef sequentially, as well as out of a number of other
+ %expressions piggyback.
+ %
+ %
+ %Usage: substituteInPlace (v, inout_vdef, inout_ex, reverse = false)
+ %
+ %v is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > const &. inout_vdef is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > &. inout_ex is of type std::vector< casadi::Matrix< casadi::SXElement >,std::allocator< casadi::Matrix< casadi::SXElement > > > &. reverse is of type bool.
+
+ try
+
+ [varargout{1:max(1,nargout)}] = casadiMEX(901,varargin{:});
+
+ catch err
+ if (strcmp(err.identifier,'SWIG:OverloadError'))
+ msg = [swig_typename_convertor_cpp2matlab(err.message) 'You have: ' strjoin(cellfun(@swig_typename_convertor_matlab2cpp,varargin,'UniformOutput',false),', ')];
+ throwAsCaller(MException(err.identifier,msg));
+ else
+ rethrow(err);
+ end
+ end
+
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/SwigMem.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/SwigMem.m
new file mode 100755
index 0000000..c467bb0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/SwigMem.m
@@ -0,0 +1,12 @@
+function varargout = SwigMem(varargin)
+ persistent mem
+ mlock
+ narginchk(0,1)
+ if nargin==0
+ nargoutchk(0,1)
+ varargout{1} = mem;
+ else
+ nargoutchk(0,0)
+ mem = varargin{1};
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/SwigRef.m b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/SwigRef.m
new file mode 100755
index 0000000..1bf9b69
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/SwigRef.m
@@ -0,0 +1,47 @@
+classdef SwigRef < handle
+ properties
+ swigPtr
+ end
+ methods(Static = true, Access = protected)
+ function obj = Null()
+ persistent obj_null
+ if isempty(obj_null)
+ obj_null = SwigRef();
+ end
+ obj = obj_null;
+ end
+ end
+ methods
+ function disp(self)
+ disp(sprintf('',self.swigPtr))
+ end
+ function varargout = subsref(self,s)
+ if numel(s)==1
+ switch s.type
+ case '.'
+ [varargout{1}] = builtin('subsref',self,substruct('.',s.subs,'()',{}));
+ case '()'
+ [varargout{1:nargout}] = builtin('subsref',self,substruct('.','paren','()',s.subs));
+ case '{}'
+ [varargout{1:nargout}] = builtin('subsref',self,substruct('.','brace','()',s.subs));
+ end
+ else
+ [varargout{1:nargout}] = builtin('subsref',self,s);
+ end
+ end
+ function self = subsasgn(self,s,v)
+ if numel(s)==1
+ switch s.type
+ case '.'
+ builtin('subsref',self,substruct('.',s.subs,'()',{v}));
+ case '()'
+ builtin('subsref',self,substruct('.','paren_asgn','()',{v, s.subs{:}}));
+ case '{}'
+ builtin('subsref',self,substruct('.','setbrace','()',{v, s.subs{:}}));
+ end
+ else
+ self = builtin('subsasgn',self,s,v);
+ end
+ end
+ end
+end
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/Intrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/Intrin.h
new file mode 100755
index 0000000..4376464
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/Intrin.h
@@ -0,0 +1,784 @@
+/* ===-------- Intrin.h ---------------------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/* Only include this if we're compiling for the windows platform. */
+#ifndef _MSC_VER
+#include_next
+#else
+
+#ifndef __INTRIN_H
+#define __INTRIN_H
+
+/* First include the standard intrinsics. */
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* And the random ones that aren't in those files. */
+__m64 _m_from_float(float);
+__m64 _m_from_int(int _l);
+void _m_prefetch(void *);
+float _m_to_float(__m64);
+int _m_to_int(__m64 _M);
+
+/* Other assorted instruction intrinsics. */
+void __addfsbyte(unsigned long, unsigned char);
+void __addfsdword(unsigned long, unsigned long);
+void __addfsword(unsigned long, unsigned short);
+void __code_seg(const char *);
+void __cpuid(int[4], int);
+void __cpuidex(int[4], int, int);
+void __debugbreak(void);
+__int64 __emul(int, int);
+unsigned __int64 __emulu(unsigned int, unsigned int);
+void __cdecl __fastfail(unsigned int);
+unsigned int __getcallerseflags(void);
+void __halt(void);
+unsigned char __inbyte(unsigned short);
+void __inbytestring(unsigned short, unsigned char *, unsigned long);
+void __incfsbyte(unsigned long);
+void __incfsdword(unsigned long);
+void __incfsword(unsigned long);
+unsigned long __indword(unsigned short);
+void __indwordstring(unsigned short, unsigned long *, unsigned long);
+void __int2c(void);
+void __invlpg(void *);
+unsigned short __inword(unsigned short);
+void __inwordstring(unsigned short, unsigned short *, unsigned long);
+void __lidt(void *);
+unsigned __int64 __ll_lshift(unsigned __int64, int);
+__int64 __ll_rshift(__int64, int);
+void __llwpcb(void *);
+unsigned char __lwpins32(unsigned int, unsigned int, unsigned int);
+void __lwpval32(unsigned int, unsigned int, unsigned int);
+unsigned int __lzcnt(unsigned int);
+unsigned short __lzcnt16(unsigned short);
+void __movsb(unsigned char *, unsigned char const *, size_t);
+void __movsd(unsigned long *, unsigned long const *, size_t);
+void __movsw(unsigned short *, unsigned short const *, size_t);
+void __nop(void);
+void __nvreg_restore_fence(void);
+void __nvreg_save_fence(void);
+void __outbyte(unsigned short, unsigned char);
+void __outbytestring(unsigned short, unsigned char *, unsigned long);
+void __outdword(unsigned short, unsigned long);
+void __outdwordstring(unsigned short, unsigned long *, unsigned long);
+void __outword(unsigned short, unsigned short);
+void __outwordstring(unsigned short, unsigned short *, unsigned long);
+static __inline__
+unsigned int __popcnt(unsigned int);
+static __inline__
+unsigned short __popcnt16(unsigned short);
+unsigned __int64 __rdtsc(void);
+unsigned __int64 __rdtscp(unsigned int *);
+unsigned long __readcr0(void);
+unsigned long __readcr2(void);
+unsigned long __readcr3(void);
+unsigned long __readcr5(void);
+unsigned long __readcr8(void);
+unsigned int __readdr(unsigned int);
+unsigned int __readeflags(void);
+unsigned char __readfsbyte(unsigned long);
+unsigned long __readfsdword(unsigned long);
+unsigned __int64 __readfsqword(unsigned long);
+unsigned short __readfsword(unsigned long);
+unsigned __int64 __readmsr(unsigned long);
+unsigned __int64 __readpmc(unsigned long);
+unsigned long __segmentlimit(unsigned long);
+void __sidt(void *);
+void *__slwpcb(void);
+void __stosb(unsigned char *, unsigned char, size_t);
+void __stosd(unsigned long *, unsigned long, size_t);
+void __stosw(unsigned short *, unsigned short, size_t);
+void __svm_clgi(void);
+void __svm_invlpga(void *, int);
+void __svm_skinit(int);
+void __svm_stgi(void);
+void __svm_vmload(size_t);
+void __svm_vmrun(size_t);
+void __svm_vmsave(size_t);
+void __ud2(void);
+unsigned __int64 __ull_rshift(unsigned __int64, int);
+void __vmx_off(void);
+void __vmx_vmptrst(unsigned __int64 *);
+void __wbinvd(void);
+void __writecr0(unsigned int);
+void __writecr3(unsigned int);
+void __writecr4(unsigned int);
+void __writecr8(unsigned int);
+void __writedr(unsigned int, unsigned int);
+void __writeeflags(unsigned int);
+void __writefsbyte(unsigned long, unsigned char);
+void __writefsdword(unsigned long, unsigned long);
+void __writefsqword(unsigned long, unsigned __int64);
+void __writefsword(unsigned long, unsigned short);
+void __writemsr(unsigned long, unsigned __int64);
+static __inline__
+void *_AddressOfReturnAddress(void);
+unsigned int _andn_u32(unsigned int, unsigned int);
+unsigned int _bextr_u32(unsigned int, unsigned int, unsigned int);
+unsigned int _bextr_u32(unsigned int, unsigned int, unsigned int);
+unsigned int _bextri_u32(unsigned int, unsigned int);
+static __inline__
+unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask);
+static __inline__
+unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask);
+static __inline__
+unsigned char _bittest(long const *, long);
+static __inline__
+unsigned char _bittestandcomplement(long *, long);
+static __inline__
+unsigned char _bittestandreset(long *, long);
+static __inline__
+unsigned char _bittestandset(long *, long);
+unsigned int _blcfill_u32(unsigned int);
+unsigned int _blci_u32(unsigned int);
+unsigned int _blcic_u32(unsigned int);
+unsigned int _blcmsk_u32(unsigned int);
+unsigned int _blcs_u32(unsigned int);
+unsigned int _blsfill_u32(unsigned int);
+unsigned int _blsi_u32(unsigned int);
+unsigned int _blsic_u32(unsigned int);
+unsigned int _blsmsk_u32(unsigned int);
+unsigned int _blsmsk_u32(unsigned int);
+unsigned int _blsr_u32(unsigned int);
+unsigned int _blsr_u32(unsigned int);
+unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
+unsigned long __cdecl _byteswap_ulong(unsigned long);
+unsigned short __cdecl _byteswap_ushort(unsigned short);
+unsigned _bzhi_u32(unsigned int, unsigned int);
+void __cdecl _disable(void);
+void __cdecl _enable(void);
+void __cdecl _fxrstor(void const *);
+void __cdecl _fxsave(void *);
+long _InterlockedAddLargeStatistic(__int64 volatile *_Addend, long _Value);
+static __inline__
+long _InterlockedAnd(long volatile *_Value, long _Mask);
+static __inline__
+short _InterlockedAnd16(short volatile *_Value, short _Mask);
+static __inline__
+char _InterlockedAnd8(char volatile *_Value, char _Mask);
+unsigned char _interlockedbittestandreset(long volatile *, long);
+unsigned char _interlockedbittestandset(long volatile *, long);
+static __inline__
+long __cdecl _InterlockedCompareExchange(long volatile *_Destination,
+ long _Exchange, long _Comparand);
+long _InterlockedCompareExchange_HLEAcquire(long volatile *, long, long);
+long _InterlockedCompareExchange_HLERelease(long volatile *, long, long);
+static __inline__
+short _InterlockedCompareExchange16(short volatile *_Destination,
+ short _Exchange, short _Comparand);
+static __inline__
+__int64 _InterlockedCompareExchange64(__int64 volatile *_Destination,
+ __int64 _Exchange, __int64 _Comparand);
+__int64 _InterlockedcompareExchange64_HLEAcquire(__int64 volatile *, __int64,
+ __int64);
+__int64 _InterlockedCompareExchange64_HLERelease(__int64 volatile *, __int64,
+ __int64);
+static __inline__
+char _InterlockedCompareExchange8(char volatile *_Destination, char _Exchange,
+ char _Comparand);
+void *_InterlockedCompareExchangePointer_HLEAcquire(void *volatile *, void *,
+ void *);
+void *_InterlockedCompareExchangePointer_HLERelease(void *volatile *, void *,
+ void *);
+static __inline__
+long __cdecl _InterlockedDecrement(long volatile *_Addend);
+static __inline__
+short _InterlockedDecrement16(short volatile *_Addend);
+static __inline__
+long __cdecl _InterlockedExchange(long volatile *_Target, long _Value);
+static __inline__
+short _InterlockedExchange16(short volatile *_Target, short _Value);
+static __inline__
+char _InterlockedExchange8(char volatile *_Target, char _Value);
+static __inline__
+long __cdecl _InterlockedExchangeAdd(long volatile *_Addend, long _Value);
+long _InterlockedExchangeAdd_HLEAcquire(long volatile *, long);
+long _InterlockedExchangeAdd_HLERelease(long volatile *, long);
+static __inline__
+char _InterlockedExchangeAdd8(char volatile *_Addend, char _Value);
+static __inline__
+long __cdecl _InterlockedIncrement(long volatile *_Addend);
+static __inline__
+short _InterlockedIncrement16(short volatile *_Addend);
+static __inline__
+long _InterlockedOr(long volatile *_Value, long _Mask);
+static __inline__
+short _InterlockedOr16(short volatile *_Value, short _Mask);
+static __inline__
+char _InterlockedOr8(char volatile *_Value, char _Mask);
+static __inline__
+long _InterlockedXor(long volatile *_Value, long _Mask);
+static __inline__
+short _InterlockedXor16(short volatile *_Value, short _Mask);
+static __inline__
+char _InterlockedXor8(char volatile *_Value, char _Mask);
+void __cdecl _invpcid(unsigned int, void *);
+static __inline__
+unsigned long __cdecl _lrotl(unsigned long, int);
+static __inline__
+unsigned long __cdecl _lrotr(unsigned long, int);
+static __inline__
+unsigned int _lzcnt_u32(unsigned int);
+static __inline__
+void _ReadBarrier(void);
+static __inline__
+void _ReadWriteBarrier(void);
+static __inline__
+void *_ReturnAddress(void);
+unsigned int _rorx_u32(unsigned int, const unsigned int);
+int __cdecl _rdrand16_step(unsigned short *);
+int __cdecl _rdrand32_step(unsigned int *);
+static __inline__
+unsigned int __cdecl _rotl(unsigned int _Value, int _Shift);
+static __inline__
+unsigned short _rotl16(unsigned short _Value, unsigned char _Shift);
+static __inline__
+unsigned __int64 __cdecl _rotl64(unsigned __int64 _Value, int _Shift);
+static __inline__
+unsigned char _rotl8(unsigned char _Value, unsigned char _Shift);
+static __inline__
+unsigned int __cdecl _rotr(unsigned int _Value, int _Shift);
+static __inline__
+unsigned short _rotr16(unsigned short _Value, unsigned char _Shift);
+static __inline__
+unsigned __int64 __cdecl _rotr64(unsigned __int64 _Value, int _Shift);
+static __inline__
+unsigned char _rotr8(unsigned char _Value, unsigned char _Shift);
+int _sarx_i32(int, unsigned int);
+
+/* FIXME: Need definition for jmp_buf.
+ int __cdecl _setjmp(jmp_buf); */
+
+unsigned int _shlx_u32(unsigned int, unsigned int);
+unsigned int _shrx_u32(unsigned int, unsigned int);
+void _Store_HLERelease(long volatile *, long);
+void _Store64_HLERelease(__int64 volatile *, __int64);
+void _StorePointer_HLERelease(void *volatile *, void *);
+unsigned int _t1mskc_u32(unsigned int);
+unsigned int _tzcnt_u32(unsigned int);
+unsigned int _tzcnt_u32(unsigned int);
+unsigned int _tzmsk_u32(unsigned int);
+static __inline__
+void _WriteBarrier(void);
+void _xabort(const unsigned int imm);
+unsigned __int32 xbegin(void);
+void _xend(void);
+unsigned __int64 __cdecl _xgetbv(unsigned int);
+void __cdecl _xrstor(void const *, unsigned __int64);
+void __cdecl _xsave(void *, unsigned __int64);
+void __cdecl _xsaveopt(void *, unsigned __int64);
+void __cdecl _xsetbv(unsigned int, unsigned __int64);
+unsigned char _xtest(void);
+
+/* These additional intrinsics are turned on in x64/amd64/x86_64 mode. */
+#ifdef __x86_64__
+void __addgsbyte(unsigned long, unsigned char);
+void __addgsdword(unsigned long, unsigned long);
+void __addgsqword(unsigned long, unsigned __int64);
+void __addgsword(unsigned long, unsigned short);
+void __faststorefence(void);
+void __incgsbyte(unsigned long);
+void __incgsdword(unsigned long);
+void __incgsqword(unsigned long);
+void __incgsword(unsigned long);
+unsigned __int64 __popcnt64(unsigned __int64);
+unsigned __int64 __shiftleft128(unsigned __int64 _LowPart,
+ unsigned __int64 _HighPart,
+ unsigned char _Shift);
+unsigned __int64 __shiftright128(unsigned __int64 _LowPart,
+ unsigned __int64 _HighPart,
+ unsigned char _Shift);
+void __stosq(unsigned __int64 *, unsigned __int64, size_t);
+unsigned __int64 _andn_u64(unsigned __int64, unsigned __int64);
+unsigned __int64 _bextr_u64(unsigned __int64, unsigned int, unsigned int);
+unsigned __int64 _bextri_u64(unsigned __int64, unsigned int);
+static __inline__
+unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask);
+static __inline__
+unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask);
+static __inline__
+unsigned char _bittest64(__int64 const *, __int64);
+static __inline__
+unsigned char _bittestandcomplement64(__int64 *, __int64);
+static __inline__
+unsigned char _bittestandreset64(__int64 *, __int64);
+static __inline__
+unsigned char _bittestandset64(__int64 *, __int64);
+unsigned __int64 _blcfill_u64(unsigned __int64);
+unsigned __int64 _blci_u64(unsigned __int64);
+unsigned __int64 _blcic_u64(unsigned __int64);
+unsigned __int64 _blcmsk_u64(unsigned __int64);
+unsigned __int64 _blcs_u64(unsigned __int64);
+unsigned __int64 _blsfill_u64(unsigned __int64);
+unsigned __int64 _blsi_u64(unsigned __int64);
+unsigned __int64 _blsic_u64(unsigned __int64);
+unsigned __int64 _blmsk_u64(unsigned __int64);
+unsigned __int64 _blsr_u64(unsigned __int64);
+unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
+unsigned __int64 _bzhi_u64(unsigned __int64, unsigned int);
+void __cdecl _fxrstor64(void const *);
+void __cdecl _fxsave64(void *);
+long _InterlockedAnd_np(long volatile *_Value, long _Mask);
+short _InterlockedAnd16_np(short volatile *_Value, short _Mask);
+__int64 _InterlockedAnd64_np(__int64 volatile *_Value, __int64 _Mask);
+char _InterlockedAnd8_np(char volatile *_Value, char _Mask);
+unsigned char _interlockedbittestandreset64(__int64 volatile *, __int64);
+unsigned char _interlockedbittestandset64(__int64 volatile *, __int64);
+long _InterlockedCompareExchange_np(long volatile *_Destination, long _Exchange,
+ long _Comparand);
+unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination,
+ __int64 _ExchangeHigh,
+ __int64 _ExchangeLow,
+ __int64 *_CompareandResult);
+unsigned char _InterlockedCompareExchange128_np(__int64 volatile *_Destination,
+ __int64 _ExchangeHigh,
+ __int64 _ExchangeLow,
+ __int64 *_ComparandResult);
+short _InterlockedCompareExchange16_np(short volatile *_Destination,
+ short _Exchange, short _Comparand);
+__int64 _InterlockedCompareExchange64_np(__int64 volatile *_Destination,
+ __int64 _Exchange, __int64 _Comparand);
+void *_InterlockedCompareExchangePointer_np(void *volatile *_Destination,
+ void *_Exchange, void *_Comparand);
+long _InterlockedOr_np(long volatile *_Value, long _Mask);
+short _InterlockedOr16_np(short volatile *_Value, short _Mask);
+__int64 _InterlockedOr64_np(__int64 volatile *_Value, __int64 _Mask);
+char _InterlockedOr8_np(char volatile *_Value, char _Mask);
+long _InterlockedXor_np(long volatile *_Value, long _Mask);
+short _InterlockedXor16_np(short volatile *_Value, short _Mask);
+__int64 _InterlockedXor64_np(__int64 volatile *_Value, __int64 _Mask);
+char _InterlockedXor8_np(char volatile *_Value, char _Mask);
+unsigned __int64 _lzcnt_u64(unsigned __int64);
+__int64 _mul128(__int64 _Multiplier, __int64 _Multiplicand,
+ __int64 *_HighProduct);
+unsigned int __cdecl _readfsbase_u32(void);
+unsigned __int64 __cdecl _readfsbase_u64(void);
+unsigned int __cdecl _readgsbase_u32(void);
+unsigned __int64 __cdecl _readgsbase_u64(void);
+unsigned __int64 _rorx_u64(unsigned __int64, const unsigned int);
+unsigned __int64 _tzcnt_u64(unsigned __int64);
+unsigned __int64 _tzmsk_u64(unsigned __int64);
+unsigned __int64 _umul128(unsigned __int64 _Multiplier,
+ unsigned __int64 _Multiplicand,
+ unsigned __int64 *_HighProduct);
+void __cdecl _writefsbase_u32(unsigned int);
+void _cdecl _writefsbase_u64(unsigned __int64);
+void __cdecl _writegsbase_u32(unsigned int);
+void __cdecl _writegsbase_u64(unsigned __int64);
+void __cdecl _xrstor64(void const *, unsigned __int64);
+void __cdecl _xsave64(void *, unsigned __int64);
+void __cdecl _xsaveopt64(void *, unsigned __int64);
+
+#endif /* __x86_64__ */
+
+/*----------------------------------------------------------------------------*\
+|* Bit Twiddling
+\*----------------------------------------------------------------------------*/
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_rotl8(unsigned char _Value, unsigned char _Shift) {
+ _Shift &= 0x7;
+ return _Shift ? (_Value << _Shift) | (_Value >> (8 - _Shift)) : _Value;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_rotr8(unsigned char _Value, unsigned char _Shift) {
+ _Shift &= 0x7;
+ return _Shift ? (_Value >> _Shift) | (_Value << (8 - _Shift)) : _Value;
+}
+static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))
+_rotl16(unsigned short _Value, unsigned char _Shift) {
+ _Shift &= 0xf;
+ return _Shift ? (_Value << _Shift) | (_Value >> (16 - _Shift)) : _Value;
+}
+static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))
+_rotr16(unsigned short _Value, unsigned char _Shift) {
+ _Shift &= 0xf;
+ return _Shift ? (_Value >> _Shift) | (_Value << (16 - _Shift)) : _Value;
+}
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_rotl(unsigned int _Value, int _Shift) {
+ _Shift &= 0x1f;
+ return _Shift ? (_Value << _Shift) | (_Value >> (32 - _Shift)) : _Value;
+}
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_rotr(unsigned int _Value, int _Shift) {
+ _Shift &= 0x1f;
+ return _Shift ? (_Value >> _Shift) | (_Value << (32 - _Shift)) : _Value;
+}
+static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__))
+_lrotl(unsigned long _Value, int _Shift) {
+ _Shift &= 0x1f;
+ return _Shift ? (_Value << _Shift) | (_Value >> (32 - _Shift)) : _Value;
+}
+static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__))
+_lrotr(unsigned long _Value, int _Shift) {
+ _Shift &= 0x1f;
+ return _Shift ? (_Value >> _Shift) | (_Value << (32 - _Shift)) : _Value;
+}
+static
+__inline__ unsigned __int64 __attribute__((__always_inline__, __nodebug__))
+_rotl64(unsigned __int64 _Value, int _Shift) {
+ _Shift &= 0x3f;
+ return _Shift ? (_Value << _Shift) | (_Value >> (64 - _Shift)) : _Value;
+}
+static
+__inline__ unsigned __int64 __attribute__((__always_inline__, __nodebug__))
+_rotr64(unsigned __int64 _Value, int _Shift) {
+ _Shift &= 0x3f;
+ return _Shift ? (_Value >> _Shift) | (_Value << (64 - _Shift)) : _Value;
+}
+/*----------------------------------------------------------------------------*\
+|* Bit Counting and Testing
+\*----------------------------------------------------------------------------*/
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_BitScanForward(unsigned long *_Index, unsigned long _Mask) {
+ if (!_Mask)
+ return 0;
+ *_Index = __builtin_ctzl(_Mask);
+ return 1;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_BitScanReverse(unsigned long *_Index, unsigned long _Mask) {
+ if (!_Mask)
+ return 0;
+ *_Index = 31 - __builtin_clzl(_Mask);
+ return 1;
+}
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_lzcnt_u32(unsigned int a) {
+ if (!a)
+ return 32;
+ return __builtin_clzl(a);
+}
+static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))
+__popcnt16(unsigned short value) {
+ return __builtin_popcount((int)value);
+}
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__popcnt(unsigned int value) {
+ return __builtin_popcount(value);
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittest(long const *a, long b) {
+ return (*a >> b) & 1;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittestandcomplement(long *a, long b) {
+ unsigned char x = (*a >> b) & 1;
+ *a = *a ^ (1 << b);
+ return x;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittestandreset(long *a, long b) {
+ unsigned char x = (*a >> b) & 1;
+ *a = *a & ~(1 << b);
+ return x;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittestandset(long *a, long b) {
+ unsigned char x = (*a >> b) & 1;
+ *a = *a | (1 << b);
+ return x;
+}
+#ifdef __x86_64__
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask) {
+ if (!_Mask)
+ return 0;
+ *_Index = __builtin_ctzll(_Mask);
+ return 1;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask) {
+ if (!_Mask)
+ return 0;
+ *_Index = 63 - __builtin_clzll(_Mask);
+ return 1;
+}
+static
+__inline__ unsigned __int64 __attribute__((__always_inline__, __nodebug__))
+_lzcnt_u64(unsigned __int64 a) {
+ if (!a)
+ return 64;
+ return __builtin_clzll(a);
+}
+static __inline__
+unsigned __int64 __attribute__((__always_inline__, __nodebug__))
+ __popcnt64(unsigned __int64 value) {
+ return __builtin_popcountll(value);
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittest64(__int64 const *a, __int64 b) {
+ return (*a >> b) & 1;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittestandcomplement64(__int64 *a, __int64 b) {
+ unsigned char x = (*a >> b) & 1;
+ *a = *a ^ (1ll << b);
+ return x;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittestandreset64(__int64 *a, __int64 b) {
+ unsigned char x = (*a >> b) & 1;
+ *a = *a & ~(1ll << b);
+ return x;
+}
+static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__))
+_bittestandset64(__int64 *a, __int64 b) {
+ unsigned char x = (*a >> b) & 1;
+ *a = *a | (1ll << b);
+ return x;
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Exchange Add
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeAdd8(char volatile *_Addend, char _Value) {
+ return __atomic_add_fetch(_Addend, _Value, 0) - _Value;
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeAdd16(short volatile *_Addend, short _Value) {
+ return __atomic_add_fetch(_Addend, _Value, 0) - _Value;
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeAdd(long volatile *_Addend, long _Value) {
+ return __atomic_add_fetch(_Addend, _Value, 0) - _Value;
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value) {
+ return __atomic_add_fetch(_Addend, _Value, 0) - _Value;
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Exchange Sub
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeSub8(char volatile *_Subend, char _Value) {
+ return __atomic_sub_fetch(_Subend, _Value, 0) + _Value;
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeSub16(short volatile *_Subend, short _Value) {
+ return __atomic_sub_fetch(_Subend, _Value, 0) + _Value;
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeSub(long volatile *_Subend, long _Value) {
+ return __atomic_sub_fetch(_Subend, _Value, 0) + _Value;
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value) {
+ return __atomic_sub_fetch(_Subend, _Value, 0) + _Value;
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Increment
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedIncrement16(char volatile *_Value) {
+ return __atomic_add_fetch(_Value, 1, 0);
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedIncrement(long volatile *_Value) {
+ return __atomic_add_fetch(_Value, 1, 0);
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedIncrement64(__int64 volatile *_Value) {
+ return __atomic_add_fetch(_Value, 1, 0);
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Decrement
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedDecrement16(char volatile *_Value) {
+ return __atomic_sub_fetch(_Value, 1, 0);
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedDecrement(long volatile *_Value) {
+ return __atomic_sub_fetch(_Value, 1, 0);
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedDecrement64(__int64 volatile *_Value) {
+ return __atomic_sub_fetch(_Value, 1, 0);
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked And
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedAnd8(char volatile *_Value, char _Mask) {
+ return __atomic_and_fetch(_Value, _Mask, 0);
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedAnd16(short volatile *_Value, short _Mask) {
+ return __atomic_and_fetch(_Value, _Mask, 0);
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedAnd(long volatile *_Value, long _Mask) {
+ return __atomic_and_fetch(_Value, _Mask, 0);
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask) {
+ return __atomic_and_fetch(_Value, _Mask, 0);
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Or
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedOr8(char volatile *_Value, char _Mask) {
+ return __atomic_or_fetch(_Value, _Mask, 0);
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedOr16(short volatile *_Value, short _Mask) {
+ return __atomic_or_fetch(_Value, _Mask, 0);
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedOr(long volatile *_Value, long _Mask) {
+ return __atomic_or_fetch(_Value, _Mask, 0);
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedOr64(__int64 volatile *_Value, __int64 _Mask) {
+ return __atomic_or_fetch(_Value, _Mask, 0);
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Xor
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedXor8(char volatile *_Value, char _Mask) {
+ return __atomic_xor_fetch(_Value, _Mask, 0);
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedXor16(short volatile *_Value, short _Mask) {
+ return __atomic_xor_fetch(_Value, _Mask, 0);
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedXor(long volatile *_Value, long _Mask) {
+ return __atomic_xor_fetch(_Value, _Mask, 0);
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedXor64(__int64 volatile *_Value, __int64 _Mask) {
+ return __atomic_xor_fetch(_Value, _Mask, 0);
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Exchange
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchange8(char volatile *_Target, char _Value) {
+ __atomic_exchange(_Target, &_Value, &_Value, 0);
+ return _Value;
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchange16(short volatile *_Target, short _Value) {
+ __atomic_exchange(_Target, &_Value, &_Value, 0);
+ return _Value;
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchange(long volatile *_Target, long _Value) {
+ __atomic_exchange(_Target, &_Value, &_Value, 0);
+ return _Value;
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedExchange64(__int64 volatile *_Target, __int64 _Value) {
+ __atomic_exchange(_Target, &_Value, &_Value, 0);
+ return _Value;
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Interlocked Compare Exchange
+\*----------------------------------------------------------------------------*/
+static __inline__ char __attribute__((__always_inline__, __nodebug__))
+_InterlockedCompareExchange8(char volatile *_Destination,
+ char _Exchange, char _Comparand) {
+ __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0, 0, 0);
+ return _Comparand;
+}
+static __inline__ short __attribute__((__always_inline__, __nodebug__))
+_InterlockedCompareExchange16(short volatile *_Destination,
+ short _Exchange, short _Comparand) {
+ __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0, 0, 0);
+ return _Comparand;
+}
+static __inline__ long __attribute__((__always_inline__, __nodebug__))
+_InterlockedCompareExchange(long volatile *_Destination,
+ long _Exchange, long _Comparand) {
+ __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0, 0, 0);
+ return _Comparand;
+}
+#ifdef __x86_64__
+static __inline__ __int64 __attribute__((__always_inline__, __nodebug__))
+_InterlockedCompareExchange64(__int64 volatile *_Destination,
+ __int64 _Exchange, __int64 _Comparand) {
+ __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0, 0, 0);
+ return _Comparand;
+}
+#endif
+/*----------------------------------------------------------------------------*\
+|* Barriers
+\*----------------------------------------------------------------------------*/
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+__attribute__((deprecated("use other intrinsics or C++11 atomics instead")))
+_ReadWriteBarrier(void) {
+ __asm__ volatile ("" : : : "memory");
+}
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+__attribute__((deprecated("use other intrinsics or C++11 atomics instead")))
+_ReadBarrier(void) {
+ __asm__ volatile ("" : : : "memory");
+}
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+__attribute__((deprecated("use other intrinsics or C++11 atomics instead")))
+_WriteBarrier(void) {
+ __asm__ volatile ("" : : : "memory");
+}
+/*----------------------------------------------------------------------------*\
+|* Misc
+\*----------------------------------------------------------------------------*/
+static __inline__ void * __attribute__((__always_inline__, __nodebug__))
+_AddressOfReturnAddress(void) {
+ return (void*)((char*)__builtin_frame_address(0) + sizeof(void*));
+}
+static __inline__ void * __attribute__((__always_inline__, __nodebug__))
+_ReturnAddress(void) {
+ return __builtin_return_address(0);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __INTRIN_H */
+#endif /* _MSC_VER */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/__wmmintrin_aes.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/__wmmintrin_aes.h
new file mode 100755
index 0000000..2bfa027
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/__wmmintrin_aes.h
@@ -0,0 +1,67 @@
+/*===---- __wmmintrin_aes.h - AES intrinsics -------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+#ifndef _WMMINTRIN_AES_H
+#define _WMMINTRIN_AES_H
+
+#include
+
+#if !defined (__AES__)
+# error "AES instructions not enabled"
+#else
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_aesenc_si128(__m128i __V, __m128i __R)
+{
+ return (__m128i)__builtin_ia32_aesenc128(__V, __R);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_aesenclast_si128(__m128i __V, __m128i __R)
+{
+ return (__m128i)__builtin_ia32_aesenclast128(__V, __R);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_aesdec_si128(__m128i __V, __m128i __R)
+{
+ return (__m128i)__builtin_ia32_aesdec128(__V, __R);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_aesdeclast_si128(__m128i __V, __m128i __R)
+{
+ return (__m128i)__builtin_ia32_aesdeclast128(__V, __R);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_aesimc_si128(__m128i __V)
+{
+ return (__m128i)__builtin_ia32_aesimc128(__V);
+}
+
+#define _mm_aeskeygenassist_si128(C, R) \
+ __builtin_ia32_aeskeygenassist128((C), (R))
+
+#endif
+
+#endif /* _WMMINTRIN_AES_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/__wmmintrin_pclmul.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/__wmmintrin_pclmul.h
new file mode 100755
index 0000000..8d1f1b7
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/__wmmintrin_pclmul.h
@@ -0,0 +1,34 @@
+/*===---- __wmmintrin_pclmul.h - AES intrinsics ----------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+#ifndef _WMMINTRIN_PCLMUL_H
+#define _WMMINTRIN_PCLMUL_H
+
+#if !defined (__PCLMUL__)
+# error "PCLMUL instruction is not enabled"
+#else
+#define _mm_clmulepi64_si128(__X, __Y, __I) \
+ ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
+ (__v2di)(__m128i)(__Y), (char)(__I)))
+#endif
+
+#endif /* _WMMINTRIN_PCLMUL_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/altivec.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/altivec.h
new file mode 100755
index 0000000..74ce08a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/altivec.h
@@ -0,0 +1,11856 @@
+/*===---- altivec.h - Standard header for type generic math ---------------===*\
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+\*===----------------------------------------------------------------------===*/
+
+#ifndef __ALTIVEC_H
+#define __ALTIVEC_H
+
+#ifndef __ALTIVEC__
+#error "AltiVec support not enabled"
+#endif
+
+/* constants for mapping CR6 bits to predicate result. */
+
+#define __CR6_EQ 0
+#define __CR6_EQ_REV 1
+#define __CR6_LT 2
+#define __CR6_LT_REV 3
+
+#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
+
+static vector signed char __ATTRS_o_ai
+vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c);
+
+static vector unsigned char __ATTRS_o_ai
+vec_perm(vector unsigned char __a,
+ vector unsigned char __b,
+ vector unsigned char __c);
+
+static vector bool char __ATTRS_o_ai
+vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c);
+
+static vector short __ATTRS_o_ai
+vec_perm(vector short __a, vector short __b, vector unsigned char __c);
+
+static vector unsigned short __ATTRS_o_ai
+vec_perm(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned char __c);
+
+static vector bool short __ATTRS_o_ai
+vec_perm(vector bool short __a, vector bool short __b, vector unsigned char __c);
+
+static vector pixel __ATTRS_o_ai
+vec_perm(vector pixel __a, vector pixel __b, vector unsigned char __c);
+
+static vector int __ATTRS_o_ai
+vec_perm(vector int __a, vector int __b, vector unsigned char __c);
+
+static vector unsigned int __ATTRS_o_ai
+vec_perm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c);
+
+static vector bool int __ATTRS_o_ai
+vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c);
+
+static vector float __ATTRS_o_ai
+vec_perm(vector float __a, vector float __b, vector unsigned char __c);
+
+/* vec_abs */
+
+#define __builtin_altivec_abs_v16qi vec_abs
+#define __builtin_altivec_abs_v8hi vec_abs
+#define __builtin_altivec_abs_v4si vec_abs
+
+static vector signed char __ATTRS_o_ai
+vec_abs(vector signed char __a)
+{
+ return __builtin_altivec_vmaxsb(__a, -__a);
+}
+
+static vector signed short __ATTRS_o_ai
+vec_abs(vector signed short __a)
+{
+ return __builtin_altivec_vmaxsh(__a, -__a);
+}
+
+static vector signed int __ATTRS_o_ai
+vec_abs(vector signed int __a)
+{
+ return __builtin_altivec_vmaxsw(__a, -__a);
+}
+
+static vector float __ATTRS_o_ai
+vec_abs(vector float __a)
+{
+ vector unsigned int __res = (vector unsigned int)__a
+ & (vector unsigned int)(0x7FFFFFFF);
+ return (vector float)__res;
+}
+
+/* vec_abss */
+
+#define __builtin_altivec_abss_v16qi vec_abss
+#define __builtin_altivec_abss_v8hi vec_abss
+#define __builtin_altivec_abss_v4si vec_abss
+
+static vector signed char __ATTRS_o_ai
+vec_abss(vector signed char __a)
+{
+ return __builtin_altivec_vmaxsb
+ (__a, __builtin_altivec_vsubsbs((vector signed char)(0), __a));
+}
+
+static vector signed short __ATTRS_o_ai
+vec_abss(vector signed short __a)
+{
+ return __builtin_altivec_vmaxsh
+ (__a, __builtin_altivec_vsubshs((vector signed short)(0), __a));
+}
+
+static vector signed int __ATTRS_o_ai
+vec_abss(vector signed int __a)
+{
+ return __builtin_altivec_vmaxsw
+ (__a, __builtin_altivec_vsubsws((vector signed int)(0), __a));
+}
+
+/* vec_add */
+
+static vector signed char __ATTRS_o_ai
+vec_add(vector signed char __a, vector signed char __b)
+{
+ return __a + __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_add(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a + __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_add(vector signed char __a, vector bool char __b)
+{
+ return __a + (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_add(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a + __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_add(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a + __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_add(vector unsigned char __a, vector bool char __b)
+{
+ return __a + (vector unsigned char)__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_add(vector short __a, vector short __b)
+{
+ return __a + __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_add(vector bool short __a, vector short __b)
+{
+ return (vector short)__a + __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_add(vector short __a, vector bool short __b)
+{
+ return __a + (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_add(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a + __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_add(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a + __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_add(vector unsigned short __a, vector bool short __b)
+{
+ return __a + (vector unsigned short)__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_add(vector int __a, vector int __b)
+{
+ return __a + __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_add(vector bool int __a, vector int __b)
+{
+ return (vector int)__a + __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_add(vector int __a, vector bool int __b)
+{
+ return __a + (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_add(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a + __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_add(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a + __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_add(vector unsigned int __a, vector bool int __b)
+{
+ return __a + (vector unsigned int)__b;
+}
+
+static vector float __ATTRS_o_ai
+vec_add(vector float __a, vector float __b)
+{
+ return __a + __b;
+}
+
+/* vec_vaddubm */
+
+#define __builtin_altivec_vaddubm vec_vaddubm
+
+static vector signed char __ATTRS_o_ai
+vec_vaddubm(vector signed char __a, vector signed char __b)
+{
+ return __a + __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vaddubm(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a + __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vaddubm(vector signed char __a, vector bool char __b)
+{
+ return __a + (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vaddubm(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a + __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vaddubm(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a + __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vaddubm(vector unsigned char __a, vector bool char __b)
+{
+ return __a + (vector unsigned char)__b;
+}
+
+/* vec_vadduhm */
+
+#define __builtin_altivec_vadduhm vec_vadduhm
+
+static vector short __ATTRS_o_ai
+vec_vadduhm(vector short __a, vector short __b)
+{
+ return __a + __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vadduhm(vector bool short __a, vector short __b)
+{
+ return (vector short)__a + __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vadduhm(vector short __a, vector bool short __b)
+{
+ return __a + (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vadduhm(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a + __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vadduhm(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a + __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vadduhm(vector unsigned short __a, vector bool short __b)
+{
+ return __a + (vector unsigned short)__b;
+}
+
+/* vec_vadduwm */
+
+#define __builtin_altivec_vadduwm vec_vadduwm
+
+static vector int __ATTRS_o_ai
+vec_vadduwm(vector int __a, vector int __b)
+{
+ return __a + __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vadduwm(vector bool int __a, vector int __b)
+{
+ return (vector int)__a + __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vadduwm(vector int __a, vector bool int __b)
+{
+ return __a + (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vadduwm(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a + __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vadduwm(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a + __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vadduwm(vector unsigned int __a, vector bool int __b)
+{
+ return __a + (vector unsigned int)__b;
+}
+
+/* vec_vaddfp */
+
+#define __builtin_altivec_vaddfp vec_vaddfp
+
+static vector float __attribute__((__always_inline__))
+vec_vaddfp(vector float __a, vector float __b)
+{
+ return __a + __b;
+}
+
+/* vec_addc */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_addc(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vaddcuw(__a, __b);
+}
+
+/* vec_vaddcuw */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vaddcuw(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vaddcuw(__a, __b);
+}
+
+/* vec_adds */
+
+static vector signed char __ATTRS_o_ai
+vec_adds(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vaddsbs(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_adds(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_adds(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_adds(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vaddubs(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_adds(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_adds(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_adds(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vaddshs(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_adds(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vaddshs((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_adds(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vaddshs(__a, (vector short)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_adds(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vadduhs(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_adds(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_adds(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_adds(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vaddsws(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_adds(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vaddsws((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_adds(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vaddsws(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_adds(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vadduws(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_adds(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_adds(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
+}
+
+/* vec_vaddsbs */
+
+static vector signed char __ATTRS_o_ai
+vec_vaddsbs(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vaddsbs(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vaddsbs(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vaddsbs(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
+}
+
+/* vec_vaddubs */
+
+static vector unsigned char __ATTRS_o_ai
+vec_vaddubs(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vaddubs(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vaddubs(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vaddubs(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
+}
+
+/* vec_vaddshs */
+
+static vector short __ATTRS_o_ai
+vec_vaddshs(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vaddshs(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vaddshs(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vaddshs((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vaddshs(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vaddshs(__a, (vector short)__b);
+}
+
+/* vec_vadduhs */
+
+static vector unsigned short __ATTRS_o_ai
+vec_vadduhs(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vadduhs(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vadduhs(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vadduhs(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
+}
+
+/* vec_vaddsws */
+
+static vector int __ATTRS_o_ai
+vec_vaddsws(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vaddsws(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vaddsws(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vaddsws((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vaddsws(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vaddsws(__a, (vector int)__b);
+}
+
+/* vec_vadduws */
+
+static vector unsigned int __ATTRS_o_ai
+vec_vadduws(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vadduws(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vadduws(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vadduws(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
+}
+
+/* vec_and */
+
+#define __builtin_altivec_vand vec_and
+
+static vector signed char __ATTRS_o_ai
+vec_and(vector signed char __a, vector signed char __b)
+{
+ return __a & __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_and(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a & __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_and(vector signed char __a, vector bool char __b)
+{
+ return __a & (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_and(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a & __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_and(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a & __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_and(vector unsigned char __a, vector bool char __b)
+{
+ return __a & (vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_and(vector bool char __a, vector bool char __b)
+{
+ return __a & __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_and(vector short __a, vector short __b)
+{
+ return __a & __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_and(vector bool short __a, vector short __b)
+{
+ return (vector short)__a & __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_and(vector short __a, vector bool short __b)
+{
+ return __a & (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_and(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a & __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_and(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a & __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_and(vector unsigned short __a, vector bool short __b)
+{
+ return __a & (vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_and(vector bool short __a, vector bool short __b)
+{
+ return __a & __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_and(vector int __a, vector int __b)
+{
+ return __a & __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_and(vector bool int __a, vector int __b)
+{
+ return (vector int)__a & __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_and(vector int __a, vector bool int __b)
+{
+ return __a & (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_and(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a & __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_and(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a & __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_and(vector unsigned int __a, vector bool int __b)
+{
+ return __a & (vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_and(vector bool int __a, vector bool int __b)
+{
+ return __a & __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_and(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_and(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_and(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_vand */
+
+static vector signed char __ATTRS_o_ai
+vec_vand(vector signed char __a, vector signed char __b)
+{
+ return __a & __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vand(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a & __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vand(vector signed char __a, vector bool char __b)
+{
+ return __a & (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vand(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a & __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vand(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a & __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vand(vector unsigned char __a, vector bool char __b)
+{
+ return __a & (vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vand(vector bool char __a, vector bool char __b)
+{
+ return __a & __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vand(vector short __a, vector short __b)
+{
+ return __a & __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vand(vector bool short __a, vector short __b)
+{
+ return (vector short)__a & __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vand(vector short __a, vector bool short __b)
+{
+ return __a & (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vand(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a & __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vand(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a & __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vand(vector unsigned short __a, vector bool short __b)
+{
+ return __a & (vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vand(vector bool short __a, vector bool short __b)
+{
+ return __a & __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vand(vector int __a, vector int __b)
+{
+ return __a & __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vand(vector bool int __a, vector int __b)
+{
+ return (vector int)__a & __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vand(vector int __a, vector bool int __b)
+{
+ return __a & (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vand(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a & __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vand(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a & __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vand(vector unsigned int __a, vector bool int __b)
+{
+ return __a & (vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vand(vector bool int __a, vector bool int __b)
+{
+ return __a & __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_vand(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vand(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vand(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_andc */
+
+#define __builtin_altivec_vandc vec_andc
+
+static vector signed char __ATTRS_o_ai
+vec_andc(vector signed char __a, vector signed char __b)
+{
+ return __a & ~__b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_andc(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a & ~__b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_andc(vector signed char __a, vector bool char __b)
+{
+ return __a & ~(vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_andc(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a & ~__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_andc(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a & ~__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_andc(vector unsigned char __a, vector bool char __b)
+{
+ return __a & ~(vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_andc(vector bool char __a, vector bool char __b)
+{
+ return __a & ~__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_andc(vector short __a, vector short __b)
+{
+ return __a & ~__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_andc(vector bool short __a, vector short __b)
+{
+ return (vector short)__a & ~__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_andc(vector short __a, vector bool short __b)
+{
+ return __a & ~(vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_andc(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a & ~__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_andc(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a & ~__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_andc(vector unsigned short __a, vector bool short __b)
+{
+ return __a & ~(vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_andc(vector bool short __a, vector bool short __b)
+{
+ return __a & ~__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_andc(vector int __a, vector int __b)
+{
+ return __a & ~__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_andc(vector bool int __a, vector int __b)
+{
+ return (vector int)__a & ~__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_andc(vector int __a, vector bool int __b)
+{
+ return __a & ~(vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_andc(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a & ~__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_andc(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a & ~__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_andc(vector unsigned int __a, vector bool int __b)
+{
+ return __a & ~(vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_andc(vector bool int __a, vector bool int __b)
+{
+ return __a & ~__b;
+}
+
+static vector float __ATTRS_o_ai
+vec_andc(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_andc(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_andc(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_vandc */
+
+static vector signed char __ATTRS_o_ai
+vec_vandc(vector signed char __a, vector signed char __b)
+{
+ return __a & ~__b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vandc(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a & ~__b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vandc(vector signed char __a, vector bool char __b)
+{
+ return __a & ~(vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vandc(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a & ~__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vandc(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a & ~__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vandc(vector unsigned char __a, vector bool char __b)
+{
+ return __a & ~(vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vandc(vector bool char __a, vector bool char __b)
+{
+ return __a & ~__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vandc(vector short __a, vector short __b)
+{
+ return __a & ~__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vandc(vector bool short __a, vector short __b)
+{
+ return (vector short)__a & ~__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vandc(vector short __a, vector bool short __b)
+{
+ return __a & ~(vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vandc(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a & ~__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vandc(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a & ~__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vandc(vector unsigned short __a, vector bool short __b)
+{
+ return __a & ~(vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vandc(vector bool short __a, vector bool short __b)
+{
+ return __a & ~__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vandc(vector int __a, vector int __b)
+{
+ return __a & ~__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vandc(vector bool int __a, vector int __b)
+{
+ return (vector int)__a & ~__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vandc(vector int __a, vector bool int __b)
+{
+ return __a & ~(vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vandc(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a & ~__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vandc(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a & ~__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vandc(vector unsigned int __a, vector bool int __b)
+{
+ return __a & ~(vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vandc(vector bool int __a, vector bool int __b)
+{
+ return __a & ~__b;
+}
+
+static vector float __ATTRS_o_ai
+vec_vandc(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vandc(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vandc(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_avg */
+
+static vector signed char __ATTRS_o_ai
+vec_avg(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vavgsb(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_avg(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vavgub(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_avg(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vavgsh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_avg(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vavguh(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_avg(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vavgsw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_avg(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vavguw(__a, __b);
+}
+
+/* vec_vavgsb */
+
+static vector signed char __attribute__((__always_inline__))
+vec_vavgsb(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vavgsb(__a, __b);
+}
+
+/* vec_vavgub */
+
+static vector unsigned char __attribute__((__always_inline__))
+vec_vavgub(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vavgub(__a, __b);
+}
+
+/* vec_vavgsh */
+
+static vector short __attribute__((__always_inline__))
+vec_vavgsh(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vavgsh(__a, __b);
+}
+
+/* vec_vavguh */
+
+static vector unsigned short __attribute__((__always_inline__))
+vec_vavguh(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vavguh(__a, __b);
+}
+
+/* vec_vavgsw */
+
+static vector int __attribute__((__always_inline__))
+vec_vavgsw(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vavgsw(__a, __b);
+}
+
+/* vec_vavguw */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vavguw(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vavguw(__a, __b);
+}
+
+/* vec_ceil */
+
+static vector float __attribute__((__always_inline__))
+vec_ceil(vector float __a)
+{
+ return __builtin_altivec_vrfip(__a);
+}
+
+/* vec_vrfip */
+
+static vector float __attribute__((__always_inline__))
+vec_vrfip(vector float __a)
+{
+ return __builtin_altivec_vrfip(__a);
+}
+
+/* vec_cmpb */
+
+static vector int __attribute__((__always_inline__))
+vec_cmpb(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpbfp(__a, __b);
+}
+
+/* vec_vcmpbfp */
+
+static vector int __attribute__((__always_inline__))
+vec_vcmpbfp(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpbfp(__a, __b);
+}
+
+/* vec_cmpeq */
+
+static vector bool char __ATTRS_o_ai
+vec_cmpeq(vector signed char __a, vector signed char __b)
+{
+ return (vector bool char)
+ __builtin_altivec_vcmpequb((vector char)__a, (vector char)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_cmpeq(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector bool char)
+ __builtin_altivec_vcmpequb((vector char)__a, (vector char)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_cmpeq(vector short __a, vector short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpequh(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_cmpeq(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector bool short)
+ __builtin_altivec_vcmpequh((vector short)__a, (vector short)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmpeq(vector int __a, vector int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpequw(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmpeq(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector bool int)
+ __builtin_altivec_vcmpequw((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmpeq(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpeqfp(__a, __b);
+}
+
+/* vec_cmpge */
+
+static vector bool int __attribute__((__always_inline__))
+vec_cmpge(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
+}
+
+/* vec_vcmpgefp */
+
+static vector bool int __attribute__((__always_inline__))
+vec_vcmpgefp(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
+}
+
+/* vec_cmpgt */
+
+static vector bool char __ATTRS_o_ai
+vec_cmpgt(vector signed char __a, vector signed char __b)
+{
+ return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_cmpgt(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_cmpgt(vector short __a, vector short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_cmpgt(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmpgt(vector int __a, vector int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmpgt(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmpgt(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
+}
+
+/* vec_vcmpgtsb */
+
+static vector bool char __attribute__((__always_inline__))
+vec_vcmpgtsb(vector signed char __a, vector signed char __b)
+{
+ return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
+}
+
+/* vec_vcmpgtub */
+
+static vector bool char __attribute__((__always_inline__))
+vec_vcmpgtub(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
+}
+
+/* vec_vcmpgtsh */
+
+static vector bool short __attribute__((__always_inline__))
+vec_vcmpgtsh(vector short __a, vector short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
+}
+
+/* vec_vcmpgtuh */
+
+static vector bool short __attribute__((__always_inline__))
+vec_vcmpgtuh(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
+}
+
+/* vec_vcmpgtsw */
+
+static vector bool int __attribute__((__always_inline__))
+vec_vcmpgtsw(vector int __a, vector int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
+}
+
+/* vec_vcmpgtuw */
+
+static vector bool int __attribute__((__always_inline__))
+vec_vcmpgtuw(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
+}
+
+/* vec_vcmpgtfp */
+
+static vector bool int __attribute__((__always_inline__))
+vec_vcmpgtfp(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
+}
+
+/* vec_cmple */
+
+static vector bool int __attribute__((__always_inline__))
+vec_cmple(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgefp(__b, __a);
+}
+
+/* vec_cmplt */
+
+static vector bool char __ATTRS_o_ai
+vec_cmplt(vector signed char __a, vector signed char __b)
+{
+ return (vector bool char)__builtin_altivec_vcmpgtsb(__b, __a);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_cmplt(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vcmpgtub(__b, __a);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_cmplt(vector short __a, vector short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpgtsh(__b, __a);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_cmplt(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vcmpgtuh(__b, __a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmplt(vector int __a, vector int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtsw(__b, __a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmplt(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtuw(__b, __a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_cmplt(vector float __a, vector float __b)
+{
+ return (vector bool int)__builtin_altivec_vcmpgtfp(__b, __a);
+}
+
+/* vec_ctf */
+
+static vector float __ATTRS_o_ai
+vec_ctf(vector int __a, int __b)
+{
+ return __builtin_altivec_vcfsx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_ctf(vector unsigned int __a, int __b)
+{
+ return __builtin_altivec_vcfux((vector int)__a, __b);
+}
+
+/* vec_vcfsx */
+
+static vector float __attribute__((__always_inline__))
+vec_vcfsx(vector int __a, int __b)
+{
+ return __builtin_altivec_vcfsx(__a, __b);
+}
+
+/* vec_vcfux */
+
+static vector float __attribute__((__always_inline__))
+vec_vcfux(vector unsigned int __a, int __b)
+{
+ return __builtin_altivec_vcfux((vector int)__a, __b);
+}
+
+/* vec_cts */
+
+static vector int __attribute__((__always_inline__))
+vec_cts(vector float __a, int __b)
+{
+ return __builtin_altivec_vctsxs(__a, __b);
+}
+
+/* vec_vctsxs */
+
+static vector int __attribute__((__always_inline__))
+vec_vctsxs(vector float __a, int __b)
+{
+ return __builtin_altivec_vctsxs(__a, __b);
+}
+
+/* vec_ctu */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_ctu(vector float __a, int __b)
+{
+ return __builtin_altivec_vctuxs(__a, __b);
+}
+
+/* vec_vctuxs */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vctuxs(vector float __a, int __b)
+{
+ return __builtin_altivec_vctuxs(__a, __b);
+}
+
+/* vec_dss */
+
+static void __attribute__((__always_inline__))
+vec_dss(int __a)
+{
+ __builtin_altivec_dss(__a);
+}
+
+/* vec_dssall */
+
+static void __attribute__((__always_inline__))
+vec_dssall(void)
+{
+ __builtin_altivec_dssall();
+}
+
+/* vec_dst */
+
+static void __attribute__((__always_inline__))
+vec_dst(const void *__a, int __b, int __c)
+{
+ __builtin_altivec_dst(__a, __b, __c);
+}
+
+/* vec_dstst */
+
+static void __attribute__((__always_inline__))
+vec_dstst(const void *__a, int __b, int __c)
+{
+ __builtin_altivec_dstst(__a, __b, __c);
+}
+
+/* vec_dststt */
+
+static void __attribute__((__always_inline__))
+vec_dststt(const void *__a, int __b, int __c)
+{
+ __builtin_altivec_dststt(__a, __b, __c);
+}
+
+/* vec_dstt */
+
+static void __attribute__((__always_inline__))
+vec_dstt(const void *__a, int __b, int __c)
+{
+ __builtin_altivec_dstt(__a, __b, __c);
+}
+
+/* vec_expte */
+
+static vector float __attribute__((__always_inline__))
+vec_expte(vector float __a)
+{
+ return __builtin_altivec_vexptefp(__a);
+}
+
+/* vec_vexptefp */
+
+static vector float __attribute__((__always_inline__))
+vec_vexptefp(vector float __a)
+{
+ return __builtin_altivec_vexptefp(__a);
+}
+
+/* vec_floor */
+
+static vector float __attribute__((__always_inline__))
+vec_floor(vector float __a)
+{
+ return __builtin_altivec_vrfim(__a);
+}
+
+/* vec_vrfim */
+
+static vector float __attribute__((__always_inline__))
+vec_vrfim(vector float __a)
+{
+ return __builtin_altivec_vrfim(__a);
+}
+
+/* vec_ld */
+
+static vector signed char __ATTRS_o_ai
+vec_ld(int __a, const vector signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_ld(int __a, const signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_ld(int __a, const vector unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_ld(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_ld(int __a, const vector bool char *__b)
+{
+ return (vector bool char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_ld(int __a, const vector short *__b)
+{
+ return (vector short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_ld(int __a, const short *__b)
+{
+ return (vector short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_ld(int __a, const vector unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_ld(int __a, const unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_ld(int __a, const vector bool short *__b)
+{
+ return (vector bool short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_ld(int __a, const vector pixel *__b)
+{
+ return (vector pixel)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_ld(int __a, const vector int *__b)
+{
+ return (vector int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_ld(int __a, const int *__b)
+{
+ return (vector int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_ld(int __a, const vector unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_ld(int __a, const unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_ld(int __a, const vector bool int *__b)
+{
+ return (vector bool int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_ld(int __a, const vector float *__b)
+{
+ return (vector float)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_ld(int __a, const float *__b)
+{
+ return (vector float)__builtin_altivec_lvx(__a, __b);
+}
+
+/* vec_lvx */
+
+static vector signed char __ATTRS_o_ai
+vec_lvx(int __a, const vector signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_lvx(int __a, const signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvx(int __a, const vector unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvx(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_lvx(int __a, const vector bool char *__b)
+{
+ return (vector bool char)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_lvx(int __a, const vector short *__b)
+{
+ return (vector short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_lvx(int __a, const short *__b)
+{
+ return (vector short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvx(int __a, const vector unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvx(int __a, const unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_lvx(int __a, const vector bool short *__b)
+{
+ return (vector bool short)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_lvx(int __a, const vector pixel *__b)
+{
+ return (vector pixel)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_lvx(int __a, const vector int *__b)
+{
+ return (vector int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_lvx(int __a, const int *__b)
+{
+ return (vector int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvx(int __a, const vector unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvx(int __a, const unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_lvx(int __a, const vector bool int *__b)
+{
+ return (vector bool int)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_lvx(int __a, const vector float *__b)
+{
+ return (vector float)__builtin_altivec_lvx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_lvx(int __a, const float *__b)
+{
+ return (vector float)__builtin_altivec_lvx(__a, __b);
+}
+
+/* vec_lde */
+
+static vector signed char __ATTRS_o_ai
+vec_lde(int __a, const signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvebx(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lde(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_lde(int __a, const short *__b)
+{
+ return (vector short)__builtin_altivec_lvehx(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lde(int __a, const unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_lde(int __a, const int *__b)
+{
+ return (vector int)__builtin_altivec_lvewx(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lde(int __a, const unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_lde(int __a, const float *__b)
+{
+ return (vector float)__builtin_altivec_lvewx(__a, __b);
+}
+
+/* vec_lvebx */
+
+static vector signed char __ATTRS_o_ai
+vec_lvebx(int __a, const signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvebx(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvebx(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
+}
+
+/* vec_lvehx */
+
+static vector short __ATTRS_o_ai
+vec_lvehx(int __a, const short *__b)
+{
+ return (vector short)__builtin_altivec_lvehx(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvehx(int __a, const unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
+}
+
+/* vec_lvewx */
+
+static vector int __ATTRS_o_ai
+vec_lvewx(int __a, const int *__b)
+{
+ return (vector int)__builtin_altivec_lvewx(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvewx(int __a, const unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_lvewx(int __a, const float *__b)
+{
+ return (vector float)__builtin_altivec_lvewx(__a, __b);
+}
+
+/* vec_ldl */
+
+static vector signed char __ATTRS_o_ai
+vec_ldl(int __a, const vector signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_ldl(int __a, const signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_ldl(int __a, const vector unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_ldl(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_ldl(int __a, const vector bool char *__b)
+{
+ return (vector bool char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_ldl(int __a, const vector short *__b)
+{
+ return (vector short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_ldl(int __a, const short *__b)
+{
+ return (vector short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_ldl(int __a, const vector unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_ldl(int __a, const unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_ldl(int __a, const vector bool short *__b)
+{
+ return (vector bool short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_ldl(int __a, const vector pixel *__b)
+{
+ return (vector pixel short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_ldl(int __a, const vector int *__b)
+{
+ return (vector int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_ldl(int __a, const int *__b)
+{
+ return (vector int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_ldl(int __a, const vector unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_ldl(int __a, const unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_ldl(int __a, const vector bool int *__b)
+{
+ return (vector bool int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_ldl(int __a, const vector float *__b)
+{
+ return (vector float)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_ldl(int __a, const float *__b)
+{
+ return (vector float)__builtin_altivec_lvxl(__a, __b);
+}
+
+/* vec_lvxl */
+
+static vector signed char __ATTRS_o_ai
+vec_lvxl(int __a, const vector signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_lvxl(int __a, const signed char *__b)
+{
+ return (vector signed char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvxl(int __a, const vector unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvxl(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_lvxl(int __a, const vector bool char *__b)
+{
+ return (vector bool char)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_lvxl(int __a, const vector short *__b)
+{
+ return (vector short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_lvxl(int __a, const short *__b)
+{
+ return (vector short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvxl(int __a, const vector unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvxl(int __a, const unsigned short *__b)
+{
+ return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_lvxl(int __a, const vector bool short *__b)
+{
+ return (vector bool short)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_lvxl(int __a, const vector pixel *__b)
+{
+ return (vector pixel)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_lvxl(int __a, const vector int *__b)
+{
+ return (vector int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_lvxl(int __a, const int *__b)
+{
+ return (vector int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvxl(int __a, const vector unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvxl(int __a, const unsigned int *__b)
+{
+ return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_lvxl(int __a, const vector bool int *__b)
+{
+ return (vector bool int)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_lvxl(int __a, const vector float *__b)
+{
+ return (vector float)__builtin_altivec_lvxl(__a, __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_lvxl(int __a, const float *__b)
+{
+ return (vector float)__builtin_altivec_lvxl(__a, __b);
+}
+
+/* vec_loge */
+
+static vector float __attribute__((__always_inline__))
+vec_loge(vector float __a)
+{
+ return __builtin_altivec_vlogefp(__a);
+}
+
+/* vec_vlogefp */
+
+static vector float __attribute__((__always_inline__))
+vec_vlogefp(vector float __a)
+{
+ return __builtin_altivec_vlogefp(__a);
+}
+
+/* vec_lvsl */
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const signed char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const short *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const unsigned short *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const int *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const unsigned int *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsl(int __a, const float *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
+}
+
+/* vec_lvsr */
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const signed char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const unsigned char *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const short *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const unsigned short *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const int *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const unsigned int *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvsr(int __a, const float *__b)
+{
+ return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
+}
+
+/* vec_madd */
+
+static vector float __attribute__((__always_inline__))
+vec_madd(vector float __a, vector float __b, vector float __c)
+{
+ return __builtin_altivec_vmaddfp(__a, __b, __c);
+}
+
+/* vec_vmaddfp */
+
+static vector float __attribute__((__always_inline__))
+vec_vmaddfp(vector float __a, vector float __b, vector float __c)
+{
+ return __builtin_altivec_vmaddfp(__a, __b, __c);
+}
+
+/* vec_madds */
+
+static vector signed short __attribute__((__always_inline__))
+vec_madds(vector signed short __a, vector signed short __b, vector signed short __c)
+{
+ return __builtin_altivec_vmhaddshs(__a, __b, __c);
+}
+
+/* vec_vmhaddshs */
+static vector signed short __attribute__((__always_inline__))
+vec_vmhaddshs(vector signed short __a,
+ vector signed short __b,
+ vector signed short __c)
+{
+ return __builtin_altivec_vmhaddshs(__a, __b, __c);
+}
+
+/* vec_max */
+
+static vector signed char __ATTRS_o_ai
+vec_max(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmaxsb(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_max(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_max(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_max(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmaxub(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_max(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_max(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_max(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vmaxsh(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_max(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vmaxsh((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_max(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vmaxsh(__a, (vector short)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_max(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmaxuh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_max(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_max(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_max(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vmaxsw(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_max(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vmaxsw((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_max(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vmaxsw(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_max(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vmaxuw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_max(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_max(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_max(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vmaxfp(__a, __b);
+}
+
+/* vec_vmaxsb */
+
+static vector signed char __ATTRS_o_ai
+vec_vmaxsb(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmaxsb(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vmaxsb(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vmaxsb(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
+}
+
+/* vec_vmaxub */
+
+static vector unsigned char __ATTRS_o_ai
+vec_vmaxub(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmaxub(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vmaxub(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vmaxub(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
+}
+
+/* vec_vmaxsh */
+
+static vector short __ATTRS_o_ai
+vec_vmaxsh(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vmaxsh(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vmaxsh(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vmaxsh((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vmaxsh(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vmaxsh(__a, (vector short)__b);
+}
+
+/* vec_vmaxuh */
+
+static vector unsigned short __ATTRS_o_ai
+vec_vmaxuh(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmaxuh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vmaxuh(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vmaxuh(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
+}
+
+/* vec_vmaxsw */
+
+static vector int __ATTRS_o_ai
+vec_vmaxsw(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vmaxsw(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vmaxsw(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vmaxsw((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vmaxsw(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vmaxsw(__a, (vector int)__b);
+}
+
+/* vec_vmaxuw */
+
+static vector unsigned int __ATTRS_o_ai
+vec_vmaxuw(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vmaxuw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vmaxuw(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vmaxuw(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
+}
+
+/* vec_vmaxfp */
+
+static vector float __attribute__((__always_inline__))
+vec_vmaxfp(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vmaxfp(__a, __b);
+}
+
+/* vec_mergeh */
+
+static vector signed char __ATTRS_o_ai
+vec_mergeh(vector signed char __a, vector signed char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
+ 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_mergeh(vector unsigned char __a, vector unsigned char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
+ 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_mergeh(vector bool char __a, vector bool char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
+ 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
+}
+
+static vector short __ATTRS_o_ai
+vec_mergeh(vector short __a, vector short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_mergeh(vector unsigned short __a, vector unsigned short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_mergeh(vector bool short __a, vector bool short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_mergeh(vector pixel __a, vector pixel __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector int __ATTRS_o_ai
+vec_mergeh(vector int __a, vector int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_mergeh(vector unsigned int __a, vector unsigned int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_mergeh(vector bool int __a, vector bool int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+static vector float __ATTRS_o_ai
+vec_mergeh(vector float __a, vector float __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+/* vec_vmrghb */
+
+#define __builtin_altivec_vmrghb vec_vmrghb
+
+static vector signed char __ATTRS_o_ai
+vec_vmrghb(vector signed char __a, vector signed char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
+ 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vmrghb(vector unsigned char __a, vector unsigned char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
+ 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vmrghb(vector bool char __a, vector bool char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
+ 0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
+}
+
+/* vec_vmrghh */
+
+#define __builtin_altivec_vmrghh vec_vmrghh
+
+static vector short __ATTRS_o_ai
+vec_vmrghh(vector short __a, vector short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vmrghh(vector unsigned short __a, vector unsigned short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vmrghh(vector bool short __a, vector bool short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vmrghh(vector pixel __a, vector pixel __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
+ 0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
+}
+
+/* vec_vmrghw */
+
+#define __builtin_altivec_vmrghw vec_vmrghw
+
+static vector int __ATTRS_o_ai
+vec_vmrghw(vector int __a, vector int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vmrghw(vector unsigned int __a, vector unsigned int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vmrghw(vector bool int __a, vector bool int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+static vector float __ATTRS_o_ai
+vec_vmrghw(vector float __a, vector float __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
+ 0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
+}
+
+/* vec_mergel */
+
+static vector signed char __ATTRS_o_ai
+vec_mergel(vector signed char __a, vector signed char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
+ 0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_mergel(vector unsigned char __a, vector unsigned char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
+ 0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_mergel(vector bool char __a, vector bool char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
+ 0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
+}
+
+static vector short __ATTRS_o_ai
+vec_mergel(vector short __a, vector short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_mergel(vector unsigned short __a, vector unsigned short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_mergel(vector bool short __a, vector bool short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_mergel(vector pixel __a, vector pixel __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector int __ATTRS_o_ai
+vec_mergel(vector int __a, vector int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_mergel(vector unsigned int __a, vector unsigned int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_mergel(vector bool int __a, vector bool int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+static vector float __ATTRS_o_ai
+vec_mergel(vector float __a, vector float __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+/* vec_vmrglb */
+
+#define __builtin_altivec_vmrglb vec_vmrglb
+
+static vector signed char __ATTRS_o_ai
+vec_vmrglb(vector signed char __a, vector signed char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
+ 0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vmrglb(vector unsigned char __a, vector unsigned char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
+ 0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vmrglb(vector bool char __a, vector bool char __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
+ 0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
+}
+
+/* vec_vmrglh */
+
+#define __builtin_altivec_vmrglh vec_vmrglh
+
+static vector short __ATTRS_o_ai
+vec_vmrglh(vector short __a, vector short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vmrglh(vector unsigned short __a, vector unsigned short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vmrglh(vector bool short __a, vector bool short __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vmrglh(vector pixel __a, vector pixel __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
+}
+
+/* vec_vmrglw */
+
+#define __builtin_altivec_vmrglw vec_vmrglw
+
+static vector int __ATTRS_o_ai
+vec_vmrglw(vector int __a, vector int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vmrglw(vector unsigned int __a, vector unsigned int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vmrglw(vector bool int __a, vector bool int __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+static vector float __ATTRS_o_ai
+vec_vmrglw(vector float __a, vector float __b)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
+}
+
+/* vec_mfvscr */
+
+static vector unsigned short __attribute__((__always_inline__))
+vec_mfvscr(void)
+{
+ return __builtin_altivec_mfvscr();
+}
+
+/* vec_min */
+
+static vector signed char __ATTRS_o_ai
+vec_min(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vminsb(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_min(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vminsb((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_min(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vminsb(__a, (vector signed char)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_min(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vminub(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_min(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vminub((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_min(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_min(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vminsh(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_min(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vminsh((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_min(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vminsh(__a, (vector short)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_min(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vminuh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_min(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_min(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_min(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vminsw(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_min(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vminsw((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_min(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vminsw(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_min(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vminuw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_min(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_min(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_min(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vminfp(__a, __b);
+}
+
+/* vec_vminsb */
+
+static vector signed char __ATTRS_o_ai
+vec_vminsb(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vminsb(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vminsb(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vminsb((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vminsb(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vminsb(__a, (vector signed char)__b);
+}
+
+/* vec_vminub */
+
+static vector unsigned char __ATTRS_o_ai
+vec_vminub(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vminub(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vminub(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vminub((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vminub(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
+}
+
+/* vec_vminsh */
+
+static vector short __ATTRS_o_ai
+vec_vminsh(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vminsh(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vminsh(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vminsh((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vminsh(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vminsh(__a, (vector short)__b);
+}
+
+/* vec_vminuh */
+
+static vector unsigned short __ATTRS_o_ai
+vec_vminuh(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vminuh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vminuh(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vminuh(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
+}
+
+/* vec_vminsw */
+
+static vector int __ATTRS_o_ai
+vec_vminsw(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vminsw(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vminsw(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vminsw((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vminsw(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vminsw(__a, (vector int)__b);
+}
+
+/* vec_vminuw */
+
+static vector unsigned int __ATTRS_o_ai
+vec_vminuw(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vminuw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vminuw(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vminuw(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
+}
+
+/* vec_vminfp */
+
+static vector float __attribute__((__always_inline__))
+vec_vminfp(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vminfp(__a, __b);
+}
+
+/* vec_mladd */
+
+#define __builtin_altivec_vmladduhm vec_mladd
+
+static vector short __ATTRS_o_ai
+vec_mladd(vector short __a, vector short __b, vector short __c)
+{
+ return __a * __b + __c;
+}
+
+static vector short __ATTRS_o_ai
+vec_mladd(vector short __a, vector unsigned short __b, vector unsigned short __c)
+{
+ return __a * (vector short)__b + (vector short)__c;
+}
+
+static vector short __ATTRS_o_ai
+vec_mladd(vector unsigned short __a, vector short __b, vector short __c)
+{
+ return (vector short)__a * __b + __c;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_mladd(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned short __c)
+{
+ return __a * __b + __c;
+}
+
+/* vec_vmladduhm */
+
+static vector short __ATTRS_o_ai
+vec_vmladduhm(vector short __a, vector short __b, vector short __c)
+{
+ return __a * __b + __c;
+}
+
+static vector short __ATTRS_o_ai
+vec_vmladduhm(vector short __a, vector unsigned short __b, vector unsigned short __c)
+{
+ return __a * (vector short)__b + (vector short)__c;
+}
+
+static vector short __ATTRS_o_ai
+vec_vmladduhm(vector unsigned short __a, vector short __b, vector short __c)
+{
+ return (vector short)__a * __b + __c;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vmladduhm(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned short __c)
+{
+ return __a * __b + __c;
+}
+
+/* vec_mradds */
+
+static vector short __attribute__((__always_inline__))
+vec_mradds(vector short __a, vector short __b, vector short __c)
+{
+ return __builtin_altivec_vmhraddshs(__a, __b, __c);
+}
+
+/* vec_vmhraddshs */
+
+static vector short __attribute__((__always_inline__))
+vec_vmhraddshs(vector short __a, vector short __b, vector short __c)
+{
+ return __builtin_altivec_vmhraddshs(__a, __b, __c);
+}
+
+/* vec_msum */
+
+static vector int __ATTRS_o_ai
+vec_msum(vector signed char __a, vector unsigned char __b, vector int __c)
+{
+ return __builtin_altivec_vmsummbm(__a, __b, __c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_msum(vector unsigned char __a, vector unsigned char __b, vector unsigned int __c)
+{
+ return __builtin_altivec_vmsumubm(__a, __b, __c);
+}
+
+static vector int __ATTRS_o_ai
+vec_msum(vector short __a, vector short __b, vector int __c)
+{
+ return __builtin_altivec_vmsumshm(__a, __b, __c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_msum(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned int __c)
+{
+ return __builtin_altivec_vmsumuhm(__a, __b, __c);
+}
+
+/* vec_vmsummbm */
+
+static vector int __attribute__((__always_inline__))
+vec_vmsummbm(vector signed char __a, vector unsigned char __b, vector int __c)
+{
+ return __builtin_altivec_vmsummbm(__a, __b, __c);
+}
+
+/* vec_vmsumubm */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vmsumubm(vector unsigned char __a,
+ vector unsigned char __b,
+ vector unsigned int __c)
+{
+ return __builtin_altivec_vmsumubm(__a, __b, __c);
+}
+
+/* vec_vmsumshm */
+
+static vector int __attribute__((__always_inline__))
+vec_vmsumshm(vector short __a, vector short __b, vector int __c)
+{
+ return __builtin_altivec_vmsumshm(__a, __b, __c);
+}
+
+/* vec_vmsumuhm */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vmsumuhm(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned int __c)
+{
+ return __builtin_altivec_vmsumuhm(__a, __b, __c);
+}
+
+/* vec_msums */
+
+static vector int __ATTRS_o_ai
+vec_msums(vector short __a, vector short __b, vector int __c)
+{
+ return __builtin_altivec_vmsumshs(__a, __b, __c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_msums(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned int __c)
+{
+ return __builtin_altivec_vmsumuhs(__a, __b, __c);
+}
+
+/* vec_vmsumshs */
+
+static vector int __attribute__((__always_inline__))
+vec_vmsumshs(vector short __a, vector short __b, vector int __c)
+{
+ return __builtin_altivec_vmsumshs(__a, __b, __c);
+}
+
+/* vec_vmsumuhs */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vmsumuhs(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned int __c)
+{
+ return __builtin_altivec_vmsumuhs(__a, __b, __c);
+}
+
+/* vec_mtvscr */
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector signed char __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector unsigned char __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector bool char __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector short __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector unsigned short __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector bool short __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector pixel __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector int __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector unsigned int __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector bool int __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+static void __ATTRS_o_ai
+vec_mtvscr(vector float __a)
+{
+ __builtin_altivec_mtvscr((vector int)__a);
+}
+
+/* vec_mule */
+
+static vector short __ATTRS_o_ai
+vec_mule(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmulesb(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_mule(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmuleub(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_mule(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vmulesh(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_mule(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmuleuh(__a, __b);
+}
+
+/* vec_vmulesb */
+
+static vector short __attribute__((__always_inline__))
+vec_vmulesb(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmulesb(__a, __b);
+}
+
+/* vec_vmuleub */
+
+static vector unsigned short __attribute__((__always_inline__))
+vec_vmuleub(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmuleub(__a, __b);
+}
+
+/* vec_vmulesh */
+
+static vector int __attribute__((__always_inline__))
+vec_vmulesh(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vmulesh(__a, __b);
+}
+
+/* vec_vmuleuh */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vmuleuh(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmuleuh(__a, __b);
+}
+
+/* vec_mulo */
+
+static vector short __ATTRS_o_ai
+vec_mulo(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmulosb(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_mulo(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmuloub(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_mulo(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vmulosh(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_mulo(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmulouh(__a, __b);
+}
+
+/* vec_vmulosb */
+
+static vector short __attribute__((__always_inline__))
+vec_vmulosb(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vmulosb(__a, __b);
+}
+
+/* vec_vmuloub */
+
+static vector unsigned short __attribute__((__always_inline__))
+vec_vmuloub(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vmuloub(__a, __b);
+}
+
+/* vec_vmulosh */
+
+static vector int __attribute__((__always_inline__))
+vec_vmulosh(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vmulosh(__a, __b);
+}
+
+/* vec_vmulouh */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vmulouh(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vmulouh(__a, __b);
+}
+
+/* vec_nmsub */
+
+static vector float __attribute__((__always_inline__))
+vec_nmsub(vector float __a, vector float __b, vector float __c)
+{
+ return __builtin_altivec_vnmsubfp(__a, __b, __c);
+}
+
+/* vec_vnmsubfp */
+
+static vector float __attribute__((__always_inline__))
+vec_vnmsubfp(vector float __a, vector float __b, vector float __c)
+{
+ return __builtin_altivec_vnmsubfp(__a, __b, __c);
+}
+
+/* vec_nor */
+
+#define __builtin_altivec_vnor vec_nor
+
+static vector signed char __ATTRS_o_ai
+vec_nor(vector signed char __a, vector signed char __b)
+{
+ return ~(__a | __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_nor(vector unsigned char __a, vector unsigned char __b)
+{
+ return ~(__a | __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_nor(vector bool char __a, vector bool char __b)
+{
+ return ~(__a | __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_nor(vector short __a, vector short __b)
+{
+ return ~(__a | __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_nor(vector unsigned short __a, vector unsigned short __b)
+{
+ return ~(__a | __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_nor(vector bool short __a, vector bool short __b)
+{
+ return ~(__a | __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_nor(vector int __a, vector int __b)
+{
+ return ~(__a | __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_nor(vector unsigned int __a, vector unsigned int __b)
+{
+ return ~(__a | __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_nor(vector bool int __a, vector bool int __b)
+{
+ return ~(__a | __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_nor(vector float __a, vector float __b)
+{
+ vector unsigned int __res = ~((vector unsigned int)__a | (vector unsigned int)__b);
+ return (vector float)__res;
+}
+
+/* vec_vnor */
+
+static vector signed char __ATTRS_o_ai
+vec_vnor(vector signed char __a, vector signed char __b)
+{
+ return ~(__a | __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vnor(vector unsigned char __a, vector unsigned char __b)
+{
+ return ~(__a | __b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vnor(vector bool char __a, vector bool char __b)
+{
+ return ~(__a | __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vnor(vector short __a, vector short __b)
+{
+ return ~(__a | __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vnor(vector unsigned short __a, vector unsigned short __b)
+{
+ return ~(__a | __b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vnor(vector bool short __a, vector bool short __b)
+{
+ return ~(__a | __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vnor(vector int __a, vector int __b)
+{
+ return ~(__a | __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vnor(vector unsigned int __a, vector unsigned int __b)
+{
+ return ~(__a | __b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vnor(vector bool int __a, vector bool int __b)
+{
+ return ~(__a | __b);
+}
+
+static vector float __ATTRS_o_ai
+vec_vnor(vector float __a, vector float __b)
+{
+ vector unsigned int __res = ~((vector unsigned int)__a | (vector unsigned int)__b);
+ return (vector float)__res;
+}
+
+/* vec_or */
+
+#define __builtin_altivec_vor vec_or
+
+static vector signed char __ATTRS_o_ai
+vec_or(vector signed char __a, vector signed char __b)
+{
+ return __a | __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_or(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a | __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_or(vector signed char __a, vector bool char __b)
+{
+ return __a | (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_or(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a | __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_or(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a | __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_or(vector unsigned char __a, vector bool char __b)
+{
+ return __a | (vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_or(vector bool char __a, vector bool char __b)
+{
+ return __a | __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_or(vector short __a, vector short __b)
+{
+ return __a | __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_or(vector bool short __a, vector short __b)
+{
+ return (vector short)__a | __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_or(vector short __a, vector bool short __b)
+{
+ return __a | (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_or(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a | __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_or(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a | __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_or(vector unsigned short __a, vector bool short __b)
+{
+ return __a | (vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_or(vector bool short __a, vector bool short __b)
+{
+ return __a | __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_or(vector int __a, vector int __b)
+{
+ return __a | __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_or(vector bool int __a, vector int __b)
+{
+ return (vector int)__a | __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_or(vector int __a, vector bool int __b)
+{
+ return __a | (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_or(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a | __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_or(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a | __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_or(vector unsigned int __a, vector bool int __b)
+{
+ return __a | (vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_or(vector bool int __a, vector bool int __b)
+{
+ return __a | __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_or(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_or(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_or(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_vor */
+
+static vector signed char __ATTRS_o_ai
+vec_vor(vector signed char __a, vector signed char __b)
+{
+ return __a | __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vor(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a | __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vor(vector signed char __a, vector bool char __b)
+{
+ return __a | (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vor(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a | __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vor(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a | __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vor(vector unsigned char __a, vector bool char __b)
+{
+ return __a | (vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vor(vector bool char __a, vector bool char __b)
+{
+ return __a | __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vor(vector short __a, vector short __b)
+{
+ return __a | __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vor(vector bool short __a, vector short __b)
+{
+ return (vector short)__a | __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vor(vector short __a, vector bool short __b)
+{
+ return __a | (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vor(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a | __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vor(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a | __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vor(vector unsigned short __a, vector bool short __b)
+{
+ return __a | (vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vor(vector bool short __a, vector bool short __b)
+{
+ return __a | __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vor(vector int __a, vector int __b)
+{
+ return __a | __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vor(vector bool int __a, vector int __b)
+{
+ return (vector int)__a | __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vor(vector int __a, vector bool int __b)
+{
+ return __a | (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vor(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a | __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vor(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a | __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vor(vector unsigned int __a, vector bool int __b)
+{
+ return __a | (vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vor(vector bool int __a, vector bool int __b)
+{
+ return __a | __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_vor(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vor(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vor(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_pack */
+
+static vector signed char __ATTRS_o_ai
+vec_pack(vector signed short __a, vector signed short __b)
+{
+ return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
+ (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
+ 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_pack(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
+ (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
+ 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_pack(vector bool short __a, vector bool short __b)
+{
+ return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
+ (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
+ 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
+}
+
+static vector short __ATTRS_o_ai
+vec_pack(vector int __a, vector int __b)
+{
+ return (vector short)vec_perm(__a, __b, (vector unsigned char)
+ (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
+ 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_pack(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
+ (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
+ 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_pack(vector bool int __a, vector bool int __b)
+{
+ return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
+ (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
+ 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
+}
+
+/* vec_vpkuhum */
+
+#define __builtin_altivec_vpkuhum vec_vpkuhum
+
+static vector signed char __ATTRS_o_ai
+vec_vpkuhum(vector signed short __a, vector signed short __b)
+{
+ return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
+ (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
+ 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vpkuhum(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
+ (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
+ 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vpkuhum(vector bool short __a, vector bool short __b)
+{
+ return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
+ (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
+ 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
+}
+
+/* vec_vpkuwum */
+
+#define __builtin_altivec_vpkuwum vec_vpkuwum
+
+static vector short __ATTRS_o_ai
+vec_vpkuwum(vector int __a, vector int __b)
+{
+ return (vector short)vec_perm(__a, __b, (vector unsigned char)
+ (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
+ 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vpkuwum(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
+ (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
+ 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vpkuwum(vector bool int __a, vector bool int __b)
+{
+ return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
+ (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
+ 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
+}
+
+/* vec_packpx */
+
+static vector pixel __attribute__((__always_inline__))
+vec_packpx(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
+}
+
+/* vec_vpkpx */
+
+static vector pixel __attribute__((__always_inline__))
+vec_vpkpx(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
+}
+
+/* vec_packs */
+
+static vector signed char __ATTRS_o_ai
+vec_packs(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vpkshss(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_packs(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vpkuhus(__a, __b);
+}
+
+static vector signed short __ATTRS_o_ai
+vec_packs(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vpkswss(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_packs(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vpkuwus(__a, __b);
+}
+
+/* vec_vpkshss */
+
+static vector signed char __attribute__((__always_inline__))
+vec_vpkshss(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vpkshss(__a, __b);
+}
+
+/* vec_vpkuhus */
+
+static vector unsigned char __attribute__((__always_inline__))
+vec_vpkuhus(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vpkuhus(__a, __b);
+}
+
+/* vec_vpkswss */
+
+static vector signed short __attribute__((__always_inline__))
+vec_vpkswss(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vpkswss(__a, __b);
+}
+
+/* vec_vpkuwus */
+
+static vector unsigned short __attribute__((__always_inline__))
+vec_vpkuwus(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vpkuwus(__a, __b);
+}
+
+/* vec_packsu */
+
+static vector unsigned char __ATTRS_o_ai
+vec_packsu(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vpkshus(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_packsu(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vpkuhus(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_packsu(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vpkswus(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_packsu(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vpkuwus(__a, __b);
+}
+
+/* vec_vpkshus */
+
+static vector unsigned char __ATTRS_o_ai
+vec_vpkshus(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vpkshus(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vpkshus(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vpkuhus(__a, __b);
+}
+
+/* vec_vpkswus */
+
+static vector unsigned short __ATTRS_o_ai
+vec_vpkswus(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vpkswus(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vpkswus(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vpkuwus(__a, __b);
+}
+
+/* vec_perm */
+
+vector signed char __ATTRS_o_ai
+vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
+{
+ return (vector signed char)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector unsigned char __ATTRS_o_ai
+vec_perm(vector unsigned char __a,
+ vector unsigned char __b,
+ vector unsigned char __c)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector bool char __ATTRS_o_ai
+vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c)
+{
+ return (vector bool char)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector short __ATTRS_o_ai
+vec_perm(vector short __a, vector short __b, vector unsigned char __c)
+{
+ return (vector short)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector unsigned short __ATTRS_o_ai
+vec_perm(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned char __c)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector bool short __ATTRS_o_ai
+vec_perm(vector bool short __a, vector bool short __b, vector unsigned char __c)
+{
+ return (vector bool short)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector pixel __ATTRS_o_ai
+vec_perm(vector pixel __a, vector pixel __b, vector unsigned char __c)
+{
+ return (vector pixel)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector int __ATTRS_o_ai
+vec_perm(vector int __a, vector int __b, vector unsigned char __c)
+{
+ return (vector int)__builtin_altivec_vperm_4si(__a, __b, __c);
+}
+
+vector unsigned int __ATTRS_o_ai
+vec_perm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector bool int __ATTRS_o_ai
+vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c)
+{
+ return (vector bool int)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+vector float __ATTRS_o_ai
+vec_perm(vector float __a, vector float __b, vector unsigned char __c)
+{
+ return (vector float)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+/* vec_vperm */
+
+static vector signed char __ATTRS_o_ai
+vec_vperm(vector signed char __a, vector signed char __b, vector unsigned char __c)
+{
+ return (vector signed char)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vperm(vector unsigned char __a,
+ vector unsigned char __b,
+ vector unsigned char __c)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vperm(vector bool char __a, vector bool char __b, vector unsigned char __c)
+{
+ return (vector bool char)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector short __ATTRS_o_ai
+vec_vperm(vector short __a, vector short __b, vector unsigned char __c)
+{
+ return (vector short)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vperm(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned char __c)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vperm(vector bool short __a, vector bool short __b, vector unsigned char __c)
+{
+ return (vector bool short)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vperm(vector pixel __a, vector pixel __b, vector unsigned char __c)
+{
+ return (vector pixel)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector int __ATTRS_o_ai
+vec_vperm(vector int __a, vector int __b, vector unsigned char __c)
+{
+ return (vector int)__builtin_altivec_vperm_4si(__a, __b, __c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vperm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vperm(vector bool int __a, vector bool int __b, vector unsigned char __c)
+{
+ return (vector bool int)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+static vector float __ATTRS_o_ai
+vec_vperm(vector float __a, vector float __b, vector unsigned char __c)
+{
+ return (vector float)
+ __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
+}
+
+/* vec_re */
+
+static vector float __attribute__((__always_inline__))
+vec_re(vector float __a)
+{
+ return __builtin_altivec_vrefp(__a);
+}
+
+/* vec_vrefp */
+
+static vector float __attribute__((__always_inline__))
+vec_vrefp(vector float __a)
+{
+ return __builtin_altivec_vrefp(__a);
+}
+
+/* vec_rl */
+
+static vector signed char __ATTRS_o_ai
+vec_rl(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_rl(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_rl(vector short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vrlh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_rl(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_rl(vector int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vrlw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_rl(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
+}
+
+/* vec_vrlb */
+
+static vector signed char __ATTRS_o_ai
+vec_vrlb(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vrlb(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
+}
+
+/* vec_vrlh */
+
+static vector short __ATTRS_o_ai
+vec_vrlh(vector short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vrlh(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vrlh(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
+}
+
+/* vec_vrlw */
+
+static vector int __ATTRS_o_ai
+vec_vrlw(vector int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vrlw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vrlw(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
+}
+
+/* vec_round */
+
+static vector float __attribute__((__always_inline__))
+vec_round(vector float __a)
+{
+ return __builtin_altivec_vrfin(__a);
+}
+
+/* vec_vrfin */
+
+static vector float __attribute__((__always_inline__))
+vec_vrfin(vector float __a)
+{
+ return __builtin_altivec_vrfin(__a);
+}
+
+/* vec_rsqrte */
+
+static __vector float __attribute__((__always_inline__))
+vec_rsqrte(vector float __a)
+{
+ return __builtin_altivec_vrsqrtefp(__a);
+}
+
+/* vec_vrsqrtefp */
+
+static __vector float __attribute__((__always_inline__))
+vec_vrsqrtefp(vector float __a)
+{
+ return __builtin_altivec_vrsqrtefp(__a);
+}
+
+/* vec_sel */
+
+#define __builtin_altivec_vsel_4si vec_sel
+
+static vector signed char __ATTRS_o_ai
+vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
+{
+ return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_sel(vector signed char __a, vector signed char __b, vector bool char __c)
+{
+ return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sel(vector unsigned char __a, vector unsigned char __b, vector unsigned char __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sel(vector unsigned char __a, vector unsigned char __b, vector bool char __c)
+{
+ return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c)
+{
+ return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_sel(vector bool char __a, vector bool char __b, vector bool char __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector short __ATTRS_o_ai
+vec_sel(vector short __a, vector short __b, vector unsigned short __c)
+{
+ return (__a & ~(vector short)__c) | (__b & (vector short)__c);
+}
+
+static vector short __ATTRS_o_ai
+vec_sel(vector short __a, vector short __b, vector bool short __c)
+{
+ return (__a & ~(vector short)__c) | (__b & (vector short)__c);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sel(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned short __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sel(vector unsigned short __a, vector unsigned short __b, vector bool short __c)
+{
+ return (__a & ~(vector unsigned short)__c) | (__b & (vector unsigned short)__c);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_sel(vector bool short __a, vector bool short __b, vector unsigned short __c)
+{
+ return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_sel(vector bool short __a, vector bool short __b, vector bool short __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector int __ATTRS_o_ai
+vec_sel(vector int __a, vector int __b, vector unsigned int __c)
+{
+ return (__a & ~(vector int)__c) | (__b & (vector int)__c);
+}
+
+static vector int __ATTRS_o_ai
+vec_sel(vector int __a, vector int __b, vector bool int __c)
+{
+ return (__a & ~(vector int)__c) | (__b & (vector int)__c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sel(vector unsigned int __a, vector unsigned int __b, vector unsigned int __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c)
+{
+ return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c)
+{
+ return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_sel(vector bool int __a, vector bool int __b, vector bool int __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector float __ATTRS_o_ai
+vec_sel(vector float __a, vector float __b, vector unsigned int __c)
+{
+ vector int __res = ((vector int)__a & ~(vector int)__c)
+ | ((vector int)__b & (vector int)__c);
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_sel(vector float __a, vector float __b, vector bool int __c)
+{
+ vector int __res = ((vector int)__a & ~(vector int)__c)
+ | ((vector int)__b & (vector int)__c);
+ return (vector float)__res;
+}
+
+/* vec_vsel */
+
+static vector signed char __ATTRS_o_ai
+vec_vsel(vector signed char __a, vector signed char __b, vector unsigned char __c)
+{
+ return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsel(vector signed char __a, vector signed char __b, vector bool char __c)
+{
+ return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsel(vector unsigned char __a, vector unsigned char __b, vector unsigned char __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsel(vector unsigned char __a, vector unsigned char __b, vector bool char __c)
+{
+ return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsel(vector bool char __a, vector bool char __b, vector unsigned char __c)
+{
+ return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsel(vector bool char __a, vector bool char __b, vector bool char __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsel(vector short __a, vector short __b, vector unsigned short __c)
+{
+ return (__a & ~(vector short)__c) | (__b & (vector short)__c);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsel(vector short __a, vector short __b, vector bool short __c)
+{
+ return (__a & ~(vector short)__c) | (__b & (vector short)__c);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsel(vector unsigned short __a,
+ vector unsigned short __b,
+ vector unsigned short __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsel(vector unsigned short __a, vector unsigned short __b, vector bool short __c)
+{
+ return (__a & ~(vector unsigned short)__c) | (__b & (vector unsigned short)__c);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsel(vector bool short __a, vector bool short __b, vector unsigned short __c)
+{
+ return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsel(vector bool short __a, vector bool short __b, vector bool short __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsel(vector int __a, vector int __b, vector unsigned int __c)
+{
+ return (__a & ~(vector int)__c) | (__b & (vector int)__c);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsel(vector int __a, vector int __b, vector bool int __c)
+{
+ return (__a & ~(vector int)__c) | (__b & (vector int)__c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsel(vector unsigned int __a, vector unsigned int __b, vector unsigned int __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsel(vector unsigned int __a, vector unsigned int __b, vector bool int __c)
+{
+ return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsel(vector bool int __a, vector bool int __b, vector unsigned int __c)
+{
+ return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsel(vector bool int __a, vector bool int __b, vector bool int __c)
+{
+ return (__a & ~__c) | (__b & __c);
+}
+
+static vector float __ATTRS_o_ai
+vec_vsel(vector float __a, vector float __b, vector unsigned int __c)
+{
+ vector int __res = ((vector int)__a & ~(vector int)__c)
+ | ((vector int)__b & (vector int)__c);
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vsel(vector float __a, vector float __b, vector bool int __c)
+{
+ vector int __res = ((vector int)__a & ~(vector int)__c)
+ | ((vector int)__b & (vector int)__c);
+ return (vector float)__res;
+}
+
+/* vec_sl */
+
+static vector signed char __ATTRS_o_ai
+vec_sl(vector signed char __a, vector unsigned char __b)
+{
+ return __a << (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sl(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a << __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_sl(vector short __a, vector unsigned short __b)
+{
+ return __a << (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sl(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a << __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_sl(vector int __a, vector unsigned int __b)
+{
+ return __a << (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sl(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a << __b;
+}
+
+/* vec_vslb */
+
+#define __builtin_altivec_vslb vec_vslb
+
+static vector signed char __ATTRS_o_ai
+vec_vslb(vector signed char __a, vector unsigned char __b)
+{
+ return vec_sl(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vslb(vector unsigned char __a, vector unsigned char __b)
+{
+ return vec_sl(__a, __b);
+}
+
+/* vec_vslh */
+
+#define __builtin_altivec_vslh vec_vslh
+
+static vector short __ATTRS_o_ai
+vec_vslh(vector short __a, vector unsigned short __b)
+{
+ return vec_sl(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vslh(vector unsigned short __a, vector unsigned short __b)
+{
+ return vec_sl(__a, __b);
+}
+
+/* vec_vslw */
+
+#define __builtin_altivec_vslw vec_vslw
+
+static vector int __ATTRS_o_ai
+vec_vslw(vector int __a, vector unsigned int __b)
+{
+ return vec_sl(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vslw(vector unsigned int __a, vector unsigned int __b)
+{
+ return vec_sl(__a, __b);
+}
+
+/* vec_sld */
+
+#define __builtin_altivec_vsldoi_4si vec_sld
+
+static vector signed char __ATTRS_o_ai
+vec_sld(vector signed char __a, vector signed char __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sld(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector short __ATTRS_o_ai
+vec_sld(vector short __a, vector short __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sld(vector unsigned short __a, vector unsigned short __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_sld(vector pixel __a, vector pixel __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector int __ATTRS_o_ai
+vec_sld(vector int __a, vector int __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sld(vector unsigned int __a, vector unsigned int __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector float __ATTRS_o_ai
+vec_sld(vector float __a, vector float __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+/* vec_vsldoi */
+
+static vector signed char __ATTRS_o_ai
+vec_vsldoi(vector signed char __a, vector signed char __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsldoi(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector short __ATTRS_o_ai
+vec_vsldoi(vector short __a, vector short __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsldoi(vector unsigned short __a, vector unsigned short __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsldoi(vector pixel __a, vector pixel __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector int __ATTRS_o_ai
+vec_vsldoi(vector int __a, vector int __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsldoi(vector unsigned int __a, vector unsigned int __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+static vector float __ATTRS_o_ai
+vec_vsldoi(vector float __a, vector float __b, unsigned char __c)
+{
+ return vec_perm(__a, __b, (vector unsigned char)
+ (__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
+ __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
+}
+
+/* vec_sll */
+
+static vector signed char __ATTRS_o_ai
+vec_sll(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_sll(vector signed char __a, vector unsigned short __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_sll(vector signed char __a, vector unsigned int __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sll(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sll(vector unsigned char __a, vector unsigned short __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sll(vector unsigned char __a, vector unsigned int __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_sll(vector bool char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_sll(vector bool char __a, vector unsigned short __b)
+{
+ return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_sll(vector bool char __a, vector unsigned int __b)
+{
+ return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_sll(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_sll(vector short __a, vector unsigned short __b)
+{
+ return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_sll(vector short __a, vector unsigned int __b)
+{
+ return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sll(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sll(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sll(vector unsigned short __a, vector unsigned int __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_sll(vector bool short __a, vector unsigned char __b)
+{
+ return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_sll(vector bool short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_sll(vector bool short __a, vector unsigned int __b)
+{
+ return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_sll(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_sll(vector pixel __a, vector unsigned short __b)
+{
+ return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_sll(vector pixel __a, vector unsigned int __b)
+{
+ return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sll(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sll(vector int __a, vector unsigned short __b)
+{
+ return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sll(vector int __a, vector unsigned int __b)
+{
+ return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sll(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sll(vector unsigned int __a, vector unsigned short __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sll(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_sll(vector bool int __a, vector unsigned char __b)
+{
+ return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_sll(vector bool int __a, vector unsigned short __b)
+{
+ return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_sll(vector bool int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+/* vec_vsl */
+
+static vector signed char __ATTRS_o_ai
+vec_vsl(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsl(vector signed char __a, vector unsigned short __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsl(vector signed char __a, vector unsigned int __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsl(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsl(vector unsigned char __a, vector unsigned short __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsl(vector unsigned char __a, vector unsigned int __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsl(vector bool char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsl(vector bool char __a, vector unsigned short __b)
+{
+ return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsl(vector bool char __a, vector unsigned int __b)
+{
+ return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsl(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsl(vector short __a, vector unsigned short __b)
+{
+ return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsl(vector short __a, vector unsigned int __b)
+{
+ return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsl(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsl(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsl(vector unsigned short __a, vector unsigned int __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsl(vector bool short __a, vector unsigned char __b)
+{
+ return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsl(vector bool short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsl(vector bool short __a, vector unsigned int __b)
+{
+ return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsl(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsl(vector pixel __a, vector unsigned short __b)
+{
+ return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsl(vector pixel __a, vector unsigned int __b)
+{
+ return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsl(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsl(vector int __a, vector unsigned short __b)
+{
+ return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsl(vector int __a, vector unsigned int __b)
+{
+ return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsl(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsl(vector unsigned int __a, vector unsigned short __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsl(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsl(vector bool int __a, vector unsigned char __b)
+{
+ return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsl(vector bool int __a, vector unsigned short __b)
+{
+ return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsl(vector bool int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
+}
+
+/* vec_slo */
+
+static vector signed char __ATTRS_o_ai
+vec_slo(vector signed char __a, vector signed char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_slo(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_slo(vector unsigned char __a, vector signed char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_slo(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_slo(vector short __a, vector signed char __b)
+{
+ return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_slo(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_slo(vector unsigned short __a, vector signed char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_slo(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_slo(vector pixel __a, vector signed char __b)
+{
+ return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_slo(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_slo(vector int __a, vector signed char __b)
+{
+ return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_slo(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_slo(vector unsigned int __a, vector signed char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_slo(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_slo(vector float __a, vector signed char __b)
+{
+ return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_slo(vector float __a, vector unsigned char __b)
+{
+ return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+/* vec_vslo */
+
+static vector signed char __ATTRS_o_ai
+vec_vslo(vector signed char __a, vector signed char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vslo(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vslo(vector unsigned char __a, vector signed char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vslo(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vslo(vector short __a, vector signed char __b)
+{
+ return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vslo(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vslo(vector unsigned short __a, vector signed char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vslo(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vslo(vector pixel __a, vector signed char __b)
+{
+ return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vslo(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vslo(vector int __a, vector signed char __b)
+{
+ return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vslo(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vslo(vector unsigned int __a, vector signed char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vslo(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_vslo(vector float __a, vector signed char __b)
+{
+ return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_vslo(vector float __a, vector unsigned char __b)
+{
+ return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
+}
+
+/* vec_splat */
+
+static vector signed char __ATTRS_o_ai
+vec_splat(vector signed char __a, unsigned char __b)
+{
+ return vec_perm(__a, __a, (vector unsigned char)(__b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_splat(vector unsigned char __a, unsigned char __b)
+{
+ return vec_perm(__a, __a, (vector unsigned char)(__b));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_splat(vector bool char __a, unsigned char __b)
+{
+ return vec_perm(__a, __a, (vector unsigned char)(__b));
+}
+
+static vector short __ATTRS_o_ai
+vec_splat(vector short __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_splat(vector unsigned short __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_splat(vector bool short __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_splat(vector pixel __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector int __ATTRS_o_ai
+vec_splat(vector int __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_splat(vector unsigned int __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_splat(vector bool int __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+static vector float __ATTRS_o_ai
+vec_splat(vector float __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+/* vec_vspltb */
+
+#define __builtin_altivec_vspltb vec_vspltb
+
+static vector signed char __ATTRS_o_ai
+vec_vspltb(vector signed char __a, unsigned char __b)
+{
+ return vec_perm(__a, __a, (vector unsigned char)(__b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vspltb(vector unsigned char __a, unsigned char __b)
+{
+ return vec_perm(__a, __a, (vector unsigned char)(__b));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vspltb(vector bool char __a, unsigned char __b)
+{
+ return vec_perm(__a, __a, (vector unsigned char)(__b));
+}
+
+/* vec_vsplth */
+
+#define __builtin_altivec_vsplth vec_vsplth
+
+static vector short __ATTRS_o_ai
+vec_vsplth(vector short __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsplth(vector unsigned short __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsplth(vector bool short __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsplth(vector pixel __a, unsigned char __b)
+{
+ __b *= 2;
+ unsigned char b1=__b+1;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
+}
+
+/* vec_vspltw */
+
+#define __builtin_altivec_vspltw vec_vspltw
+
+static vector int __ATTRS_o_ai
+vec_vspltw(vector int __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vspltw(vector unsigned int __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vspltw(vector bool int __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+static vector float __ATTRS_o_ai
+vec_vspltw(vector float __a, unsigned char __b)
+{
+ __b *= 4;
+ unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
+ return vec_perm(__a, __a, (vector unsigned char)
+ (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
+}
+
+/* vec_splat_s8 */
+
+#define __builtin_altivec_vspltisb vec_splat_s8
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector signed char __ATTRS_o_ai
+vec_splat_s8(signed char __a)
+{
+ return (vector signed char)(__a);
+}
+
+/* vec_vspltisb */
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector signed char __ATTRS_o_ai
+vec_vspltisb(signed char __a)
+{
+ return (vector signed char)(__a);
+}
+
+/* vec_splat_s16 */
+
+#define __builtin_altivec_vspltish vec_splat_s16
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector short __ATTRS_o_ai
+vec_splat_s16(signed char __a)
+{
+ return (vector short)(__a);
+}
+
+/* vec_vspltish */
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector short __ATTRS_o_ai
+vec_vspltish(signed char __a)
+{
+ return (vector short)(__a);
+}
+
+/* vec_splat_s32 */
+
+#define __builtin_altivec_vspltisw vec_splat_s32
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector int __ATTRS_o_ai
+vec_splat_s32(signed char __a)
+{
+ return (vector int)(__a);
+}
+
+/* vec_vspltisw */
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector int __ATTRS_o_ai
+vec_vspltisw(signed char __a)
+{
+ return (vector int)(__a);
+}
+
+/* vec_splat_u8 */
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector unsigned char __ATTRS_o_ai
+vec_splat_u8(unsigned char __a)
+{
+ return (vector unsigned char)(__a);
+}
+
+/* vec_splat_u16 */
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector unsigned short __ATTRS_o_ai
+vec_splat_u16(signed char __a)
+{
+ return (vector unsigned short)(__a);
+}
+
+/* vec_splat_u32 */
+
+// FIXME: parameter should be treated as 5-bit signed literal
+static vector unsigned int __ATTRS_o_ai
+vec_splat_u32(signed char __a)
+{
+ return (vector unsigned int)(__a);
+}
+
+/* vec_sr */
+
+static vector signed char __ATTRS_o_ai
+vec_sr(vector signed char __a, vector unsigned char __b)
+{
+ return __a >> (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sr(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a >> __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_sr(vector short __a, vector unsigned short __b)
+{
+ return __a >> (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sr(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a >> __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_sr(vector int __a, vector unsigned int __b)
+{
+ return __a >> (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sr(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a >> __b;
+}
+
+/* vec_vsrb */
+
+#define __builtin_altivec_vsrb vec_vsrb
+
+static vector signed char __ATTRS_o_ai
+vec_vsrb(vector signed char __a, vector unsigned char __b)
+{
+ return __a >> (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsrb(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a >> __b;
+}
+
+/* vec_vsrh */
+
+#define __builtin_altivec_vsrh vec_vsrh
+
+static vector short __ATTRS_o_ai
+vec_vsrh(vector short __a, vector unsigned short __b)
+{
+ return __a >> (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsrh(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a >> __b;
+}
+
+/* vec_vsrw */
+
+#define __builtin_altivec_vsrw vec_vsrw
+
+static vector int __ATTRS_o_ai
+vec_vsrw(vector int __a, vector unsigned int __b)
+{
+ return __a >> (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsrw(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a >> __b;
+}
+
+/* vec_sra */
+
+static vector signed char __ATTRS_o_ai
+vec_sra(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sra(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_sra(vector short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sra(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sra(vector int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsraw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sra(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
+}
+
+/* vec_vsrab */
+
+static vector signed char __ATTRS_o_ai
+vec_vsrab(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsrab(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
+}
+
+/* vec_vsrah */
+
+static vector short __ATTRS_o_ai
+vec_vsrah(vector short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsrah(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
+}
+
+/* vec_vsraw */
+
+static vector int __ATTRS_o_ai
+vec_vsraw(vector int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsraw(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsraw(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
+}
+
+/* vec_srl */
+
+static vector signed char __ATTRS_o_ai
+vec_srl(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_srl(vector signed char __a, vector unsigned short __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_srl(vector signed char __a, vector unsigned int __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_srl(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_srl(vector unsigned char __a, vector unsigned short __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_srl(vector unsigned char __a, vector unsigned int __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_srl(vector bool char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_srl(vector bool char __a, vector unsigned short __b)
+{
+ return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_srl(vector bool char __a, vector unsigned int __b)
+{
+ return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_srl(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_srl(vector short __a, vector unsigned short __b)
+{
+ return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_srl(vector short __a, vector unsigned int __b)
+{
+ return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_srl(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_srl(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_srl(vector unsigned short __a, vector unsigned int __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_srl(vector bool short __a, vector unsigned char __b)
+{
+ return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_srl(vector bool short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_srl(vector bool short __a, vector unsigned int __b)
+{
+ return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_srl(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_srl(vector pixel __a, vector unsigned short __b)
+{
+ return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_srl(vector pixel __a, vector unsigned int __b)
+{
+ return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_srl(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_srl(vector int __a, vector unsigned short __b)
+{
+ return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_srl(vector int __a, vector unsigned int __b)
+{
+ return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_srl(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_srl(vector unsigned int __a, vector unsigned short __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_srl(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_srl(vector bool int __a, vector unsigned char __b)
+{
+ return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_srl(vector bool int __a, vector unsigned short __b)
+{
+ return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_srl(vector bool int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+/* vec_vsr */
+
+static vector signed char __ATTRS_o_ai
+vec_vsr(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsr(vector signed char __a, vector unsigned short __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsr(vector signed char __a, vector unsigned int __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsr(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsr(vector unsigned char __a, vector unsigned short __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsr(vector unsigned char __a, vector unsigned int __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsr(vector bool char __a, vector unsigned char __b)
+{
+ return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsr(vector bool char __a, vector unsigned short __b)
+{
+ return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vsr(vector bool char __a, vector unsigned int __b)
+{
+ return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsr(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsr(vector short __a, vector unsigned short __b)
+{
+ return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsr(vector short __a, vector unsigned int __b)
+{
+ return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsr(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsr(vector unsigned short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsr(vector unsigned short __a, vector unsigned int __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsr(vector bool short __a, vector unsigned char __b)
+{
+ return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsr(vector bool short __a, vector unsigned short __b)
+{
+ return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vsr(vector bool short __a, vector unsigned int __b)
+{
+ return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsr(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsr(vector pixel __a, vector unsigned short __b)
+{
+ return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsr(vector pixel __a, vector unsigned int __b)
+{
+ return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsr(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsr(vector int __a, vector unsigned short __b)
+{
+ return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsr(vector int __a, vector unsigned int __b)
+{
+ return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsr(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsr(vector unsigned int __a, vector unsigned short __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsr(vector unsigned int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsr(vector bool int __a, vector unsigned char __b)
+{
+ return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsr(vector bool int __a, vector unsigned short __b)
+{
+ return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vsr(vector bool int __a, vector unsigned int __b)
+{
+ return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
+}
+
+/* vec_sro */
+
+static vector signed char __ATTRS_o_ai
+vec_sro(vector signed char __a, vector signed char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_sro(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sro(vector unsigned char __a, vector signed char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sro(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_sro(vector short __a, vector signed char __b)
+{
+ return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_sro(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sro(vector unsigned short __a, vector signed char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sro(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_sro(vector pixel __a, vector signed char __b)
+{
+ return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_sro(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sro(vector int __a, vector signed char __b)
+{
+ return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sro(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sro(vector unsigned int __a, vector signed char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sro(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_sro(vector float __a, vector signed char __b)
+{
+ return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_sro(vector float __a, vector unsigned char __b)
+{
+ return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+/* vec_vsro */
+
+static vector signed char __ATTRS_o_ai
+vec_vsro(vector signed char __a, vector signed char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsro(vector signed char __a, vector unsigned char __b)
+{
+ return (vector signed char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsro(vector unsigned char __a, vector signed char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsro(vector unsigned char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsro(vector short __a, vector signed char __b)
+{
+ return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsro(vector short __a, vector unsigned char __b)
+{
+ return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsro(vector unsigned short __a, vector signed char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsro(vector unsigned short __a, vector unsigned char __b)
+{
+ return (vector unsigned short)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsro(vector pixel __a, vector signed char __b)
+{
+ return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector pixel __ATTRS_o_ai
+vec_vsro(vector pixel __a, vector unsigned char __b)
+{
+ return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsro(vector int __a, vector signed char __b)
+{
+ return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsro(vector int __a, vector unsigned char __b)
+{
+ return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsro(vector unsigned int __a, vector signed char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsro(vector unsigned int __a, vector unsigned char __b)
+{
+ return (vector unsigned int)
+ __builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_vsro(vector float __a, vector signed char __b)
+{
+ return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+static vector float __ATTRS_o_ai
+vec_vsro(vector float __a, vector unsigned char __b)
+{
+ return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
+}
+
+/* vec_st */
+
+static void __ATTRS_o_ai
+vec_st(vector signed char __a, int __b, vector signed char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector signed char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool char __a, int __b, vector bool char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector short __a, int __b, vector short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool short __a, int __b, vector bool short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector pixel __a, int __b, short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector pixel __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector pixel __a, int __b, vector pixel *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector int __a, int __b, vector int *__c)
+{
+ __builtin_altivec_stvx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector bool int __a, int __b, vector bool int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector float __a, int __b, vector float *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_st(vector float __a, int __b, float *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+/* vec_stvx */
+
+static void __ATTRS_o_ai
+vec_stvx(vector signed char __a, int __b, vector signed char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector signed char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool char __a, int __b, vector bool char *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector short __a, int __b, vector short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool short __a, int __b, vector bool short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector pixel __a, int __b, short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector pixel __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector pixel __a, int __b, vector pixel *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector int __a, int __b, vector int *__c)
+{
+ __builtin_altivec_stvx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector bool int __a, int __b, vector bool int *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector float __a, int __b, vector float *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvx(vector float __a, int __b, float *__c)
+{
+ __builtin_altivec_stvx((vector int)__a, __b, __c);
+}
+
+/* vec_ste */
+
+static void __ATTRS_o_ai
+vec_ste(vector signed char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector bool char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector bool char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvehx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector bool short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector bool short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector pixel __a, int __b, short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector pixel __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvewx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector bool int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector bool int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_ste(vector float __a, int __b, float *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+/* vec_stvebx */
+
+static void __ATTRS_o_ai
+vec_stvebx(vector signed char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvebx(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvebx(vector bool char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvebx(vector bool char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvebx((vector char)__a, __b, __c);
+}
+
+/* vec_stvehx */
+
+static void __ATTRS_o_ai
+vec_stvehx(vector short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvehx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvehx(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvehx(vector bool short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvehx(vector bool short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvehx(vector pixel __a, int __b, short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvehx(vector pixel __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvehx((vector short)__a, __b, __c);
+}
+
+/* vec_stvewx */
+
+static void __ATTRS_o_ai
+vec_stvewx(vector int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvewx(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvewx(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvewx(vector bool int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvewx(vector bool int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvewx(vector float __a, int __b, float *__c)
+{
+ __builtin_altivec_stvewx((vector int)__a, __b, __c);
+}
+
+/* vec_stl */
+
+static void __ATTRS_o_ai
+vec_stl(vector signed char __a, int __b, vector signed char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector signed char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool char __a, int __b, vector bool char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector short __a, int __b, vector short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool short __a, int __b, vector bool short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector pixel __a, int __b, short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector pixel __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector pixel __a, int __b, vector pixel *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector int __a, int __b, vector int *__c)
+{
+ __builtin_altivec_stvxl(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvxl(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector bool int __a, int __b, vector bool int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector float __a, int __b, vector float *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stl(vector float __a, int __b, float *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+/* vec_stvxl */
+
+static void __ATTRS_o_ai
+vec_stvxl(vector signed char __a, int __b, vector signed char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector signed char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool char __a, int __b, signed char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool char __a, int __b, unsigned char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool char __a, int __b, vector bool char *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector short __a, int __b, vector short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool short __a, int __b, short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool short __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool short __a, int __b, vector bool short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector pixel __a, int __b, short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector pixel __a, int __b, unsigned short *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector pixel __a, int __b, vector pixel *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector int __a, int __b, vector int *__c)
+{
+ __builtin_altivec_stvxl(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvxl(__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool int __a, int __b, int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool int __a, int __b, unsigned int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector bool int __a, int __b, vector bool int *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector float __a, int __b, vector float *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvxl(vector float __a, int __b, float *__c)
+{
+ __builtin_altivec_stvxl((vector int)__a, __b, __c);
+}
+
+/* vec_sub */
+
+static vector signed char __ATTRS_o_ai
+vec_sub(vector signed char __a, vector signed char __b)
+{
+ return __a - __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_sub(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a - __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_sub(vector signed char __a, vector bool char __b)
+{
+ return __a - (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sub(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a - __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sub(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a - __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_sub(vector unsigned char __a, vector bool char __b)
+{
+ return __a - (vector unsigned char)__b;
+}
+
+static vector short __ATTRS_o_ai
+vec_sub(vector short __a, vector short __b)
+{
+ return __a - __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_sub(vector bool short __a, vector short __b)
+{
+ return (vector short)__a - __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_sub(vector short __a, vector bool short __b)
+{
+ return __a - (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sub(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a - __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sub(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a - __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_sub(vector unsigned short __a, vector bool short __b)
+{
+ return __a - (vector unsigned short)__b;
+}
+
+static vector int __ATTRS_o_ai
+vec_sub(vector int __a, vector int __b)
+{
+ return __a - __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_sub(vector bool int __a, vector int __b)
+{
+ return (vector int)__a - __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_sub(vector int __a, vector bool int __b)
+{
+ return __a - (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sub(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a - __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sub(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a - __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sub(vector unsigned int __a, vector bool int __b)
+{
+ return __a - (vector unsigned int)__b;
+}
+
+static vector float __ATTRS_o_ai
+vec_sub(vector float __a, vector float __b)
+{
+ return __a - __b;
+}
+
+/* vec_vsububm */
+
+#define __builtin_altivec_vsububm vec_vsububm
+
+static vector signed char __ATTRS_o_ai
+vec_vsububm(vector signed char __a, vector signed char __b)
+{
+ return __a - __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsububm(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a - __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsububm(vector signed char __a, vector bool char __b)
+{
+ return __a - (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsububm(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a - __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsububm(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a - __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsububm(vector unsigned char __a, vector bool char __b)
+{
+ return __a - (vector unsigned char)__b;
+}
+
+/* vec_vsubuhm */
+
+#define __builtin_altivec_vsubuhm vec_vsubuhm
+
+static vector short __ATTRS_o_ai
+vec_vsubuhm(vector short __a, vector short __b)
+{
+ return __a - __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vsubuhm(vector bool short __a, vector short __b)
+{
+ return (vector short)__a - __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vsubuhm(vector short __a, vector bool short __b)
+{
+ return __a - (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsubuhm(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a - __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsubuhm(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a - __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsubuhm(vector unsigned short __a, vector bool short __b)
+{
+ return __a - (vector unsigned short)__b;
+}
+
+/* vec_vsubuwm */
+
+#define __builtin_altivec_vsubuwm vec_vsubuwm
+
+static vector int __ATTRS_o_ai
+vec_vsubuwm(vector int __a, vector int __b)
+{
+ return __a - __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vsubuwm(vector bool int __a, vector int __b)
+{
+ return (vector int)__a - __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vsubuwm(vector int __a, vector bool int __b)
+{
+ return __a - (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsubuwm(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a - __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsubuwm(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a - __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsubuwm(vector unsigned int __a, vector bool int __b)
+{
+ return __a - (vector unsigned int)__b;
+}
+
+/* vec_vsubfp */
+
+#define __builtin_altivec_vsubfp vec_vsubfp
+
+static vector float __attribute__((__always_inline__))
+vec_vsubfp(vector float __a, vector float __b)
+{
+ return __a - __b;
+}
+
+/* vec_subc */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_subc(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsubcuw(__a, __b);
+}
+
+/* vec_vsubcuw */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vsubcuw(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsubcuw(__a, __b);
+}
+
+/* vec_subs */
+
+static vector signed char __ATTRS_o_ai
+vec_subs(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vsubsbs(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_subs(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_subs(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_subs(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vsububs(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_subs(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_subs(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
+}
+
+static vector short __ATTRS_o_ai
+vec_subs(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vsubshs(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_subs(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vsubshs((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_subs(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vsubshs(__a, (vector short)__b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_subs(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vsubuhs(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_subs(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_subs(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
+}
+
+static vector int __ATTRS_o_ai
+vec_subs(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vsubsws(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_subs(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vsubsws((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_subs(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vsubsws(__a, (vector int)__b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_subs(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsubuws(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_subs(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_subs(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
+}
+
+/* vec_vsubsbs */
+
+static vector signed char __ATTRS_o_ai
+vec_vsubsbs(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vsubsbs(__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsubsbs(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vsubsbs(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
+}
+
+/* vec_vsububs */
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsububs(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vsububs(__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsububs(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vsububs(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
+}
+
+/* vec_vsubshs */
+
+static vector short __ATTRS_o_ai
+vec_vsubshs(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vsubshs(__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsubshs(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vsubshs((vector short)__a, __b);
+}
+
+static vector short __ATTRS_o_ai
+vec_vsubshs(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vsubshs(__a, (vector short)__b);
+}
+
+/* vec_vsubuhs */
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsubuhs(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vsubuhs(__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsubuhs(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vsubuhs(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
+}
+
+/* vec_vsubsws */
+
+static vector int __ATTRS_o_ai
+vec_vsubsws(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vsubsws(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsubsws(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vsubsws((vector int)__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_vsubsws(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vsubsws(__a, (vector int)__b);
+}
+
+/* vec_vsubuws */
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsubuws(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsubuws(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsubuws(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vsubuws(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
+}
+
+/* vec_sum4s */
+
+static vector int __ATTRS_o_ai
+vec_sum4s(vector signed char __a, vector int __b)
+{
+ return __builtin_altivec_vsum4sbs(__a, __b);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_sum4s(vector unsigned char __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsum4ubs(__a, __b);
+}
+
+static vector int __ATTRS_o_ai
+vec_sum4s(vector signed short __a, vector int __b)
+{
+ return __builtin_altivec_vsum4shs(__a, __b);
+}
+
+/* vec_vsum4sbs */
+
+static vector int __attribute__((__always_inline__))
+vec_vsum4sbs(vector signed char __a, vector int __b)
+{
+ return __builtin_altivec_vsum4sbs(__a, __b);
+}
+
+/* vec_vsum4ubs */
+
+static vector unsigned int __attribute__((__always_inline__))
+vec_vsum4ubs(vector unsigned char __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vsum4ubs(__a, __b);
+}
+
+/* vec_vsum4shs */
+
+static vector int __attribute__((__always_inline__))
+vec_vsum4shs(vector signed short __a, vector int __b)
+{
+ return __builtin_altivec_vsum4shs(__a, __b);
+}
+
+/* vec_sum2s */
+
+static vector signed int __attribute__((__always_inline__))
+vec_sum2s(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vsum2sws(__a, __b);
+}
+
+/* vec_vsum2sws */
+
+static vector signed int __attribute__((__always_inline__))
+vec_vsum2sws(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vsum2sws(__a, __b);
+}
+
+/* vec_sums */
+
+static vector signed int __attribute__((__always_inline__))
+vec_sums(vector signed int __a, vector signed int __b)
+{
+ return __builtin_altivec_vsumsws(__a, __b);
+}
+
+/* vec_vsumsws */
+
+static vector signed int __attribute__((__always_inline__))
+vec_vsumsws(vector signed int __a, vector signed int __b)
+{
+ return __builtin_altivec_vsumsws(__a, __b);
+}
+
+/* vec_trunc */
+
+static vector float __attribute__((__always_inline__))
+vec_trunc(vector float __a)
+{
+ return __builtin_altivec_vrfiz(__a);
+}
+
+/* vec_vrfiz */
+
+static vector float __attribute__((__always_inline__))
+vec_vrfiz(vector float __a)
+{
+ return __builtin_altivec_vrfiz(__a);
+}
+
+/* vec_unpackh */
+
+static vector short __ATTRS_o_ai
+vec_unpackh(vector signed char __a)
+{
+ return __builtin_altivec_vupkhsb((vector char)__a);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_unpackh(vector bool char __a)
+{
+ return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
+}
+
+static vector int __ATTRS_o_ai
+vec_unpackh(vector short __a)
+{
+ return __builtin_altivec_vupkhsh(__a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_unpackh(vector bool short __a)
+{
+ return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_unpackh(vector pixel __a)
+{
+ return (vector unsigned int)__builtin_altivec_vupkhsh((vector short)__a);
+}
+
+/* vec_vupkhsb */
+
+static vector short __ATTRS_o_ai
+vec_vupkhsb(vector signed char __a)
+{
+ return __builtin_altivec_vupkhsb((vector char)__a);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vupkhsb(vector bool char __a)
+{
+ return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
+}
+
+/* vec_vupkhsh */
+
+static vector int __ATTRS_o_ai
+vec_vupkhsh(vector short __a)
+{
+ return __builtin_altivec_vupkhsh(__a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vupkhsh(vector bool short __a)
+{
+ return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vupkhsh(vector pixel __a)
+{
+ return (vector unsigned int)__builtin_altivec_vupkhsh((vector short)__a);
+}
+
+/* vec_unpackl */
+
+static vector short __ATTRS_o_ai
+vec_unpackl(vector signed char __a)
+{
+ return __builtin_altivec_vupklsb((vector char)__a);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_unpackl(vector bool char __a)
+{
+ return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
+}
+
+static vector int __ATTRS_o_ai
+vec_unpackl(vector short __a)
+{
+ return __builtin_altivec_vupklsh(__a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_unpackl(vector bool short __a)
+{
+ return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_unpackl(vector pixel __a)
+{
+ return (vector unsigned int)__builtin_altivec_vupklsh((vector short)__a);
+}
+
+/* vec_vupklsb */
+
+static vector short __ATTRS_o_ai
+vec_vupklsb(vector signed char __a)
+{
+ return __builtin_altivec_vupklsb((vector char)__a);
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vupklsb(vector bool char __a)
+{
+ return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
+}
+
+/* vec_vupklsh */
+
+static vector int __ATTRS_o_ai
+vec_vupklsh(vector short __a)
+{
+ return __builtin_altivec_vupklsh(__a);
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vupklsh(vector bool short __a)
+{
+ return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vupklsh(vector pixel __a)
+{
+ return (vector unsigned int)__builtin_altivec_vupklsh((vector short)__a);
+}
+
+/* vec_xor */
+
+#define __builtin_altivec_vxor vec_xor
+
+static vector signed char __ATTRS_o_ai
+vec_xor(vector signed char __a, vector signed char __b)
+{
+ return __a ^ __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_xor(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a ^ __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_xor(vector signed char __a, vector bool char __b)
+{
+ return __a ^ (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_xor(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a ^ __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_xor(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a ^ __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_xor(vector unsigned char __a, vector bool char __b)
+{
+ return __a ^ (vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_xor(vector bool char __a, vector bool char __b)
+{
+ return __a ^ __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_xor(vector short __a, vector short __b)
+{
+ return __a ^ __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_xor(vector bool short __a, vector short __b)
+{
+ return (vector short)__a ^ __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_xor(vector short __a, vector bool short __b)
+{
+ return __a ^ (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_xor(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a ^ __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_xor(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a ^ __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_xor(vector unsigned short __a, vector bool short __b)
+{
+ return __a ^ (vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_xor(vector bool short __a, vector bool short __b)
+{
+ return __a ^ __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_xor(vector int __a, vector int __b)
+{
+ return __a ^ __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_xor(vector bool int __a, vector int __b)
+{
+ return (vector int)__a ^ __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_xor(vector int __a, vector bool int __b)
+{
+ return __a ^ (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_xor(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a ^ __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_xor(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a ^ __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_xor(vector unsigned int __a, vector bool int __b)
+{
+ return __a ^ (vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_xor(vector bool int __a, vector bool int __b)
+{
+ return __a ^ __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_xor(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_xor(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_xor(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* vec_vxor */
+
+static vector signed char __ATTRS_o_ai
+vec_vxor(vector signed char __a, vector signed char __b)
+{
+ return __a ^ __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vxor(vector bool char __a, vector signed char __b)
+{
+ return (vector signed char)__a ^ __b;
+}
+
+static vector signed char __ATTRS_o_ai
+vec_vxor(vector signed char __a, vector bool char __b)
+{
+ return __a ^ (vector signed char)__b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vxor(vector unsigned char __a, vector unsigned char __b)
+{
+ return __a ^ __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vxor(vector bool char __a, vector unsigned char __b)
+{
+ return (vector unsigned char)__a ^ __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_vxor(vector unsigned char __a, vector bool char __b)
+{
+ return __a ^ (vector unsigned char)__b;
+}
+
+static vector bool char __ATTRS_o_ai
+vec_vxor(vector bool char __a, vector bool char __b)
+{
+ return __a ^ __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vxor(vector short __a, vector short __b)
+{
+ return __a ^ __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vxor(vector bool short __a, vector short __b)
+{
+ return (vector short)__a ^ __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_vxor(vector short __a, vector bool short __b)
+{
+ return __a ^ (vector short)__b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vxor(vector unsigned short __a, vector unsigned short __b)
+{
+ return __a ^ __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vxor(vector bool short __a, vector unsigned short __b)
+{
+ return (vector unsigned short)__a ^ __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_vxor(vector unsigned short __a, vector bool short __b)
+{
+ return __a ^ (vector unsigned short)__b;
+}
+
+static vector bool short __ATTRS_o_ai
+vec_vxor(vector bool short __a, vector bool short __b)
+{
+ return __a ^ __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vxor(vector int __a, vector int __b)
+{
+ return __a ^ __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vxor(vector bool int __a, vector int __b)
+{
+ return (vector int)__a ^ __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_vxor(vector int __a, vector bool int __b)
+{
+ return __a ^ (vector int)__b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vxor(vector unsigned int __a, vector unsigned int __b)
+{
+ return __a ^ __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vxor(vector bool int __a, vector unsigned int __b)
+{
+ return (vector unsigned int)__a ^ __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_vxor(vector unsigned int __a, vector bool int __b)
+{
+ return __a ^ (vector unsigned int)__b;
+}
+
+static vector bool int __ATTRS_o_ai
+vec_vxor(vector bool int __a, vector bool int __b)
+{
+ return __a ^ __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_vxor(vector float __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vxor(vector bool int __a, vector float __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+static vector float __ATTRS_o_ai
+vec_vxor(vector float __a, vector bool int __b)
+{
+ vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
+ return (vector float)__res;
+}
+
+/* ------------------------ extensions for CBEA ----------------------------- */
+
+/* vec_extract */
+
+static signed char __ATTRS_o_ai
+vec_extract(vector signed char __a, int __b)
+{
+ return __a[__b];
+}
+
+static unsigned char __ATTRS_o_ai
+vec_extract(vector unsigned char __a, int __b)
+{
+ return __a[__b];
+}
+
+static short __ATTRS_o_ai
+vec_extract(vector short __a, int __b)
+{
+ return __a[__b];
+}
+
+static unsigned short __ATTRS_o_ai
+vec_extract(vector unsigned short __a, int __b)
+{
+ return __a[__b];
+}
+
+static int __ATTRS_o_ai
+vec_extract(vector int __a, int __b)
+{
+ return __a[__b];
+}
+
+static unsigned int __ATTRS_o_ai
+vec_extract(vector unsigned int __a, int __b)
+{
+ return __a[__b];
+}
+
+static float __ATTRS_o_ai
+vec_extract(vector float __a, int __b)
+{
+ return __a[__b];
+}
+
+/* vec_insert */
+
+static vector signed char __ATTRS_o_ai
+vec_insert(signed char __a, vector signed char __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_insert(unsigned char __a, vector unsigned char __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+static vector short __ATTRS_o_ai
+vec_insert(short __a, vector short __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_insert(unsigned short __a, vector unsigned short __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+static vector int __ATTRS_o_ai
+vec_insert(int __a, vector int __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_insert(unsigned int __a, vector unsigned int __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+static vector float __ATTRS_o_ai
+vec_insert(float __a, vector float __b, int __c)
+{
+ __b[__c] = __a;
+ return __b;
+}
+
+/* vec_lvlx */
+
+static vector signed char __ATTRS_o_ai
+vec_lvlx(int __a, const signed char *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector signed char)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector signed char __ATTRS_o_ai
+vec_lvlx(int __a, const vector signed char *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector signed char)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvlx(int __a, const unsigned char *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector unsigned char)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvlx(int __a, const vector unsigned char *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector unsigned char)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_lvlx(int __a, const vector bool char *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector bool char)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvlx(int __a, const short *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector short)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvlx(int __a, const vector short *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector short)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvlx(int __a, const unsigned short *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector unsigned short)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvlx(int __a, const vector unsigned short *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector unsigned short)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_lvlx(int __a, const vector bool short *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector bool short)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_lvlx(int __a, const vector pixel *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector pixel)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvlx(int __a, const int *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector int)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvlx(int __a, const vector int *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector int)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvlx(int __a, const unsigned int *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector unsigned int)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvlx(int __a, const vector unsigned int *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector unsigned int)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_lvlx(int __a, const vector bool int *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector bool int)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvlx(int __a, const float *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector float)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvlx(int __a, const vector float *__b)
+{
+ return vec_perm(vec_ld(__a, __b),
+ (vector float)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+/* vec_lvlxl */
+
+static vector signed char __ATTRS_o_ai
+vec_lvlxl(int __a, const signed char *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector signed char)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector signed char __ATTRS_o_ai
+vec_lvlxl(int __a, const vector signed char *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector signed char)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvlxl(int __a, const unsigned char *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector unsigned char)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvlxl(int __a, const vector unsigned char *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector unsigned char)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_lvlxl(int __a, const vector bool char *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector bool char)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvlxl(int __a, const short *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector short)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvlxl(int __a, const vector short *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector short)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvlxl(int __a, const unsigned short *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector unsigned short)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvlxl(int __a, const vector unsigned short *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector unsigned short)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_lvlxl(int __a, const vector bool short *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector bool short)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_lvlxl(int __a, const vector pixel *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector pixel)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvlxl(int __a, const int *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector int)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvlxl(int __a, const vector int *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector int)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvlxl(int __a, const unsigned int *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector unsigned int)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvlxl(int __a, const vector unsigned int *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector unsigned int)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_lvlxl(int __a, const vector bool int *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector bool int)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvlxl(int __a, const float *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector float)(0),
+ vec_lvsl(__a, __b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvlxl(int __a, vector float *__b)
+{
+ return vec_perm(vec_ldl(__a, __b),
+ (vector float)(0),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+/* vec_lvrx */
+
+static vector signed char __ATTRS_o_ai
+vec_lvrx(int __a, const signed char *__b)
+{
+ return vec_perm((vector signed char)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector signed char __ATTRS_o_ai
+vec_lvrx(int __a, const vector signed char *__b)
+{
+ return vec_perm((vector signed char)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvrx(int __a, const unsigned char *__b)
+{
+ return vec_perm((vector unsigned char)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvrx(int __a, const vector unsigned char *__b)
+{
+ return vec_perm((vector unsigned char)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_lvrx(int __a, const vector bool char *__b)
+{
+ return vec_perm((vector bool char)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvrx(int __a, const short *__b)
+{
+ return vec_perm((vector short)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvrx(int __a, const vector short *__b)
+{
+ return vec_perm((vector short)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvrx(int __a, const unsigned short *__b)
+{
+ return vec_perm((vector unsigned short)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvrx(int __a, const vector unsigned short *__b)
+{
+ return vec_perm((vector unsigned short)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_lvrx(int __a, const vector bool short *__b)
+{
+ return vec_perm((vector bool short)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_lvrx(int __a, const vector pixel *__b)
+{
+ return vec_perm((vector pixel)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvrx(int __a, const int *__b)
+{
+ return vec_perm((vector int)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvrx(int __a, const vector int *__b)
+{
+ return vec_perm((vector int)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvrx(int __a, const unsigned int *__b)
+{
+ return vec_perm((vector unsigned int)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvrx(int __a, const vector unsigned int *__b)
+{
+ return vec_perm((vector unsigned int)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_lvrx(int __a, const vector bool int *__b)
+{
+ return vec_perm((vector bool int)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvrx(int __a, const float *__b)
+{
+ return vec_perm((vector float)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvrx(int __a, const vector float *__b)
+{
+ return vec_perm((vector float)(0),
+ vec_ld(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+/* vec_lvrxl */
+
+static vector signed char __ATTRS_o_ai
+vec_lvrxl(int __a, const signed char *__b)
+{
+ return vec_perm((vector signed char)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector signed char __ATTRS_o_ai
+vec_lvrxl(int __a, const vector signed char *__b)
+{
+ return vec_perm((vector signed char)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvrxl(int __a, const unsigned char *__b)
+{
+ return vec_perm((vector unsigned char)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_lvrxl(int __a, const vector unsigned char *__b)
+{
+ return vec_perm((vector unsigned char)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool char __ATTRS_o_ai
+vec_lvrxl(int __a, const vector bool char *__b)
+{
+ return vec_perm((vector bool char)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvrxl(int __a, const short *__b)
+{
+ return vec_perm((vector short)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector short __ATTRS_o_ai
+vec_lvrxl(int __a, const vector short *__b)
+{
+ return vec_perm((vector short)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvrxl(int __a, const unsigned short *__b)
+{
+ return vec_perm((vector unsigned short)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_lvrxl(int __a, const vector unsigned short *__b)
+{
+ return vec_perm((vector unsigned short)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool short __ATTRS_o_ai
+vec_lvrxl(int __a, const vector bool short *__b)
+{
+ return vec_perm((vector bool short)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector pixel __ATTRS_o_ai
+vec_lvrxl(int __a, const vector pixel *__b)
+{
+ return vec_perm((vector pixel)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvrxl(int __a, const int *__b)
+{
+ return vec_perm((vector int)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector int __ATTRS_o_ai
+vec_lvrxl(int __a, const vector int *__b)
+{
+ return vec_perm((vector int)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvrxl(int __a, const unsigned int *__b)
+{
+ return vec_perm((vector unsigned int)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_lvrxl(int __a, const vector unsigned int *__b)
+{
+ return vec_perm((vector unsigned int)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector bool int __ATTRS_o_ai
+vec_lvrxl(int __a, const vector bool int *__b)
+{
+ return vec_perm((vector bool int)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvrxl(int __a, const float *__b)
+{
+ return vec_perm((vector float)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, __b));
+}
+
+static vector float __ATTRS_o_ai
+vec_lvrxl(int __a, const vector float *__b)
+{
+ return vec_perm((vector float)(0),
+ vec_ldl(__a, __b),
+ vec_lvsl(__a, (unsigned char *)__b));
+}
+
+/* vec_stvlx */
+
+static void __ATTRS_o_ai
+vec_stvlx(vector signed char __a, int __b, signed char *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector signed char __a, int __b, vector signed char *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector bool char __a, int __b, vector bool char *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector short __a, int __b, short *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector short __a, int __b, vector short *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector bool short __a, int __b, vector bool short *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector pixel __a, int __b, vector pixel *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector int __a, int __b, int *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector int __a, int __b, vector int *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector bool int __a, int __b, vector bool int *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlx(vector float __a, int __b, vector float *__c)
+{
+ return vec_st(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+/* vec_stvlxl */
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector signed char __a, int __b, signed char *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector signed char __a, int __b, vector signed char *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector bool char __a, int __b, vector bool char *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector short __a, int __b, short *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector short __a, int __b, vector short *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector bool short __a, int __b, vector bool short *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector pixel __a, int __b, vector pixel *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector int __a, int __b, int *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector int __a, int __b, vector int *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector bool int __a, int __b, vector bool int *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvlxl(vector float __a, int __b, vector float *__c)
+{
+ return vec_stl(vec_perm(vec_lvrx(__b, __c),
+ __a,
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+/* vec_stvrx */
+
+static void __ATTRS_o_ai
+vec_stvrx(vector signed char __a, int __b, signed char *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector signed char __a, int __b, vector signed char *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector bool char __a, int __b, vector bool char *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector short __a, int __b, short *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector short __a, int __b, vector short *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector bool short __a, int __b, vector bool short *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector pixel __a, int __b, vector pixel *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector int __a, int __b, int *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector int __a, int __b, vector int *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector bool int __a, int __b, vector bool int *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrx(vector float __a, int __b, vector float *__c)
+{
+ return vec_st(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+/* vec_stvrxl */
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector signed char __a, int __b, signed char *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector signed char __a, int __b, vector signed char *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector unsigned char __a, int __b, unsigned char *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector unsigned char __a, int __b, vector unsigned char *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector bool char __a, int __b, vector bool char *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector short __a, int __b, short *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector short __a, int __b, vector short *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector unsigned short __a, int __b, unsigned short *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector unsigned short __a, int __b, vector unsigned short *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector bool short __a, int __b, vector bool short *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector pixel __a, int __b, vector pixel *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector int __a, int __b, int *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector int __a, int __b, vector int *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector unsigned int __a, int __b, unsigned int *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, __c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector unsigned int __a, int __b, vector unsigned int *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector bool int __a, int __b, vector bool int *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+static void __ATTRS_o_ai
+vec_stvrxl(vector float __a, int __b, vector float *__c)
+{
+ return vec_stl(vec_perm(__a,
+ vec_lvlx(__b, __c),
+ vec_lvsr(__b, (unsigned char *)__c)),
+ __b, __c);
+}
+
+/* vec_promote */
+
+static vector signed char __ATTRS_o_ai
+vec_promote(signed char __a, int __b)
+{
+ vector signed char __res = (vector signed char)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_promote(unsigned char __a, int __b)
+{
+ vector unsigned char __res = (vector unsigned char)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+static vector short __ATTRS_o_ai
+vec_promote(short __a, int __b)
+{
+ vector short __res = (vector short)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_promote(unsigned short __a, int __b)
+{
+ vector unsigned short __res = (vector unsigned short)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+static vector int __ATTRS_o_ai
+vec_promote(int __a, int __b)
+{
+ vector int __res = (vector int)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_promote(unsigned int __a, int __b)
+{
+ vector unsigned int __res = (vector unsigned int)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+static vector float __ATTRS_o_ai
+vec_promote(float __a, int __b)
+{
+ vector float __res = (vector float)(0);
+ __res[__b] = __a;
+ return __res;
+}
+
+/* vec_splats */
+
+static vector signed char __ATTRS_o_ai
+vec_splats(signed char __a)
+{
+ return (vector signed char)(__a);
+}
+
+static vector unsigned char __ATTRS_o_ai
+vec_splats(unsigned char __a)
+{
+ return (vector unsigned char)(__a);
+}
+
+static vector short __ATTRS_o_ai
+vec_splats(short __a)
+{
+ return (vector short)(__a);
+}
+
+static vector unsigned short __ATTRS_o_ai
+vec_splats(unsigned short __a)
+{
+ return (vector unsigned short)(__a);
+}
+
+static vector int __ATTRS_o_ai
+vec_splats(int __a)
+{
+ return (vector int)(__a);
+}
+
+static vector unsigned int __ATTRS_o_ai
+vec_splats(unsigned int __a)
+{
+ return (vector unsigned int)(__a);
+}
+
+static vector float __ATTRS_o_ai
+vec_splats(float __a)
+{
+ return (vector float)(__a);
+}
+
+/* ----------------------------- predicates --------------------------------- */
+
+/* vec_all_eq */
+
+static int __ATTRS_o_ai
+vec_all_eq(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector unsigned short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector unsigned short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool short __a, vector short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector pixel __a, vector pixel __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_eq(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __b);
+}
+
+/* vec_all_ge */
+
+static int __ATTRS_o_ai
+vec_all_ge(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_ge(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_LT, __a, __b);
+}
+
+/* vec_all_gt */
+
+static int __ATTRS_o_ai
+vec_all_gt(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, (vector signed char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_gt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __a, __b);
+}
+
+/* vec_all_in */
+
+static int __attribute__((__always_inline__))
+vec_all_in(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpbfp_p(__CR6_EQ, __a, __b);
+}
+
+/* vec_all_le */
+
+static int __ATTRS_o_ai
+vec_all_le(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, (vector signed char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_le(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_LT, __b, __a);
+}
+
+/* vec_all_lt */
+
+static int __ATTRS_o_ai
+vec_all_lt(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_all_lt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __b, __a);
+}
+
+/* vec_all_nan */
+
+static int __attribute__((__always_inline__))
+vec_all_nan(vector float __a)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __a);
+}
+
+/* vec_all_ne */
+
+static int __ATTRS_o_ai
+vec_all_ne(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector unsigned short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector unsigned short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool short __a, vector short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector pixel __a, vector pixel __b)
+{
+ return
+ __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_all_ne(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __b);
+}
+
+/* vec_all_nge */
+
+static int __attribute__((__always_inline__))
+vec_all_nge(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __a, __b);
+}
+
+/* vec_all_ngt */
+
+static int __attribute__((__always_inline__))
+vec_all_ngt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __a, __b);
+}
+
+/* vec_all_nle */
+
+static int __attribute__((__always_inline__))
+vec_all_nle(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __b, __a);
+}
+
+/* vec_all_nlt */
+
+static int __attribute__((__always_inline__))
+vec_all_nlt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __b, __a);
+}
+
+/* vec_all_numeric */
+
+static int __attribute__((__always_inline__))
+vec_all_numeric(vector float __a)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __a);
+}
+
+/* vec_any_eq */
+
+static int __ATTRS_o_ai
+vec_any_eq(vector signed char __a, vector signed char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector signed char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector unsigned char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector unsigned char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool char __a, vector signed char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector pixel __a, vector pixel __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector unsigned int __a, vector unsigned int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector unsigned int __a, vector bool int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool int __a, vector int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool int __a, vector unsigned int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector bool int __a, vector bool int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_eq(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __b);
+}
+
+/* vec_any_ge */
+
+static int __ATTRS_o_ai
+vec_any_ge(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector unsigned char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector unsigned short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_ge(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __a, __b);
+}
+
+/* vec_any_gt */
+
+static int __ATTRS_o_ai
+vec_any_gt(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, (vector signed char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector unsigned char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector unsigned short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_gt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __a, __b);
+}
+
+/* vec_any_le */
+
+static int __ATTRS_o_ai
+vec_any_le(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, (vector signed char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector unsigned char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
+ (vector unsigned char)__a,
+ (vector unsigned char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector unsigned short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
+ (vector unsigned short)__a,
+ (vector unsigned short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
+ (vector unsigned int)__a,
+ (vector unsigned int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_le(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __b, __a);
+}
+
+/* vec_any_lt */
+
+static int __ATTRS_o_ai
+vec_any_lt(vector signed char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector signed char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector unsigned char __a, vector unsigned char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector unsigned char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool char __a, vector signed char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool char __a, vector bool char __b)
+{
+ return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
+ (vector unsigned char)__b,
+ (vector unsigned char)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector unsigned short __a, vector bool short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool short __a, vector unsigned short __b)
+{
+ return
+ __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
+ (vector unsigned short)__b,
+ (vector unsigned short)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector unsigned int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector unsigned int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b, __a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool int __a, vector unsigned int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector bool int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
+ (vector unsigned int)__b,
+ (vector unsigned int)__a);
+}
+
+static int __ATTRS_o_ai
+vec_any_lt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __b, __a);
+}
+
+/* vec_any_nan */
+
+static int __attribute__((__always_inline__))
+vec_any_nan(vector float __a)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __a);
+}
+
+/* vec_any_ne */
+
+static int __ATTRS_o_ai
+vec_any_ne(vector signed char __a, vector signed char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector signed char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector unsigned char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector unsigned char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool char __a, vector signed char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool char __a, vector unsigned char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool char __a, vector bool char __b)
+{
+ return
+ __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector unsigned short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector unsigned short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool short __a, vector short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool short __a, vector unsigned short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool short __a, vector bool short __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector pixel __a, vector pixel __b)
+{
+ return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
+ (vector short)__a,
+ (vector short)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector int __a, vector int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, __b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector int __a, vector bool int __b)
+{
+ return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector unsigned int __a, vector unsigned int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector unsigned int __a, vector bool int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool int __a, vector int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool int __a, vector unsigned int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector bool int __a, vector bool int __b)
+{
+ return
+ __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
+}
+
+static int __ATTRS_o_ai
+vec_any_ne(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __b);
+}
+
+/* vec_any_nge */
+
+static int __attribute__((__always_inline__))
+vec_any_nge(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __a, __b);
+}
+
+/* vec_any_ngt */
+
+static int __attribute__((__always_inline__))
+vec_any_ngt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __a, __b);
+}
+
+/* vec_any_nle */
+
+static int __attribute__((__always_inline__))
+vec_any_nle(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __b, __a);
+}
+
+/* vec_any_nlt */
+
+static int __attribute__((__always_inline__))
+vec_any_nlt(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __b, __a);
+}
+
+/* vec_any_numeric */
+
+static int __attribute__((__always_inline__))
+vec_any_numeric(vector float __a)
+{
+ return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __a);
+}
+
+/* vec_any_out */
+
+static int __attribute__((__always_inline__))
+vec_any_out(vector float __a, vector float __b)
+{
+ return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, __a, __b);
+}
+
+#undef __ATTRS_o_ai
+
+#endif /* __ALTIVEC_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/ammintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/ammintrin.h
new file mode 100755
index 0000000..d87b9cd
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/ammintrin.h
@@ -0,0 +1,68 @@
+/*===---- ammintrin.h - SSE4a intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __AMMINTRIN_H
+#define __AMMINTRIN_H
+
+#ifndef __SSE4A__
+#error "SSE4A instruction set not enabled"
+#else
+
+#include
+
+#define _mm_extracti_si64(x, len, idx) \
+ ((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \
+ (char)(len), (char)(idx)))
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_extract_si64(__m128i __x, __m128i __y)
+{
+ return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)__y);
+}
+
+#define _mm_inserti_si64(x, y, len, idx) \
+ ((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \
+ (__v2di)(__m128i)(y), \
+ (char)(len), (char)(idx)))
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_insert_si64(__m128i __x, __m128i __y)
+{
+ return (__m128i)__builtin_ia32_insertq((__v2di)__x, (__v2di)__y);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_sd(double *__p, __m128d __a)
+{
+ __builtin_ia32_movntsd(__p, (__v2df)__a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_ss(float *__p, __m128 __a)
+{
+ __builtin_ia32_movntss(__p, (__v4sf)__a);
+}
+
+#endif /* __SSE4A__ */
+
+#endif /* __AMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/arm_neon.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/arm_neon.h
new file mode 100755
index 0000000..c297518
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/arm_neon.h
@@ -0,0 +1,9595 @@
+/*===---- arm_neon.h - ARM Neon intrinsics ---------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __ARM_NEON_H
+#define __ARM_NEON_H
+
+#if !defined(__ARM_NEON__) && !defined(__ARM_NEON)
+#error "NEON support not enabled"
+#endif
+
+#include
+
+typedef float float32_t;
+typedef __fp16 float16_t;
+#ifdef __aarch64__
+typedef double float64_t;
+#endif
+
+#ifdef __aarch64__
+typedef uint8_t poly8_t;
+typedef uint16_t poly16_t;
+typedef uint64_t poly64_t;
+#else
+typedef int8_t poly8_t;
+typedef int16_t poly16_t;
+#endif
+typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t;
+typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t;
+typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t;
+typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t;
+typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t;
+typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t;
+typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t;
+typedef __attribute__((neon_vector_type(2))) int64_t int64x2_t;
+typedef __attribute__((neon_vector_type(8))) uint8_t uint8x8_t;
+typedef __attribute__((neon_vector_type(16))) uint8_t uint8x16_t;
+typedef __attribute__((neon_vector_type(4))) uint16_t uint16x4_t;
+typedef __attribute__((neon_vector_type(8))) uint16_t uint16x8_t;
+typedef __attribute__((neon_vector_type(2))) uint32_t uint32x2_t;
+typedef __attribute__((neon_vector_type(4))) uint32_t uint32x4_t;
+typedef __attribute__((neon_vector_type(1))) uint64_t uint64x1_t;
+typedef __attribute__((neon_vector_type(2))) uint64_t uint64x2_t;
+typedef __attribute__((neon_vector_type(4))) float16_t float16x4_t;
+typedef __attribute__((neon_vector_type(8))) float16_t float16x8_t;
+typedef __attribute__((neon_vector_type(2))) float32_t float32x2_t;
+typedef __attribute__((neon_vector_type(4))) float32_t float32x4_t;
+#ifdef __aarch64__
+typedef __attribute__((neon_vector_type(1))) float64_t float64x1_t;
+typedef __attribute__((neon_vector_type(2))) float64_t float64x2_t;
+#endif
+typedef __attribute__((neon_polyvector_type(8))) poly8_t poly8x8_t;
+typedef __attribute__((neon_polyvector_type(16))) poly8_t poly8x16_t;
+typedef __attribute__((neon_polyvector_type(4))) poly16_t poly16x4_t;
+typedef __attribute__((neon_polyvector_type(8))) poly16_t poly16x8_t;
+#ifdef __aarch64__
+typedef __attribute__((neon_polyvector_type(1))) poly64_t poly64x1_t;
+typedef __attribute__((neon_polyvector_type(2))) poly64_t poly64x2_t;
+#endif
+
+typedef struct int8x8x2_t {
+ int8x8_t val[2];
+} int8x8x2_t;
+
+typedef struct int8x16x2_t {
+ int8x16_t val[2];
+} int8x16x2_t;
+
+typedef struct int16x4x2_t {
+ int16x4_t val[2];
+} int16x4x2_t;
+
+typedef struct int16x8x2_t {
+ int16x8_t val[2];
+} int16x8x2_t;
+
+typedef struct int32x2x2_t {
+ int32x2_t val[2];
+} int32x2x2_t;
+
+typedef struct int32x4x2_t {
+ int32x4_t val[2];
+} int32x4x2_t;
+
+typedef struct int64x1x2_t {
+ int64x1_t val[2];
+} int64x1x2_t;
+
+typedef struct int64x2x2_t {
+ int64x2_t val[2];
+} int64x2x2_t;
+
+typedef struct uint8x8x2_t {
+ uint8x8_t val[2];
+} uint8x8x2_t;
+
+typedef struct uint8x16x2_t {
+ uint8x16_t val[2];
+} uint8x16x2_t;
+
+typedef struct uint16x4x2_t {
+ uint16x4_t val[2];
+} uint16x4x2_t;
+
+typedef struct uint16x8x2_t {
+ uint16x8_t val[2];
+} uint16x8x2_t;
+
+typedef struct uint32x2x2_t {
+ uint32x2_t val[2];
+} uint32x2x2_t;
+
+typedef struct uint32x4x2_t {
+ uint32x4_t val[2];
+} uint32x4x2_t;
+
+typedef struct uint64x1x2_t {
+ uint64x1_t val[2];
+} uint64x1x2_t;
+
+typedef struct uint64x2x2_t {
+ uint64x2_t val[2];
+} uint64x2x2_t;
+
+typedef struct float16x4x2_t {
+ float16x4_t val[2];
+} float16x4x2_t;
+
+typedef struct float16x8x2_t {
+ float16x8_t val[2];
+} float16x8x2_t;
+
+typedef struct float32x2x2_t {
+ float32x2_t val[2];
+} float32x2x2_t;
+
+typedef struct float32x4x2_t {
+ float32x4_t val[2];
+} float32x4x2_t;
+
+#ifdef __aarch64__
+typedef struct float64x1x2_t {
+ float64x1_t val[2];
+} float64x1x2_t;
+
+typedef struct float64x2x2_t {
+ float64x2_t val[2];
+} float64x2x2_t;
+
+#endif
+typedef struct poly8x8x2_t {
+ poly8x8_t val[2];
+} poly8x8x2_t;
+
+typedef struct poly8x16x2_t {
+ poly8x16_t val[2];
+} poly8x16x2_t;
+
+typedef struct poly16x4x2_t {
+ poly16x4_t val[2];
+} poly16x4x2_t;
+
+typedef struct poly16x8x2_t {
+ poly16x8_t val[2];
+} poly16x8x2_t;
+
+#ifdef __aarch64__
+typedef struct poly64x1x2_t {
+ poly64x1_t val[2];
+} poly64x1x2_t;
+
+typedef struct poly64x2x2_t {
+ poly64x2_t val[2];
+} poly64x2x2_t;
+
+#endif
+typedef struct int8x8x3_t {
+ int8x8_t val[3];
+} int8x8x3_t;
+
+typedef struct int8x16x3_t {
+ int8x16_t val[3];
+} int8x16x3_t;
+
+typedef struct int16x4x3_t {
+ int16x4_t val[3];
+} int16x4x3_t;
+
+typedef struct int16x8x3_t {
+ int16x8_t val[3];
+} int16x8x3_t;
+
+typedef struct int32x2x3_t {
+ int32x2_t val[3];
+} int32x2x3_t;
+
+typedef struct int32x4x3_t {
+ int32x4_t val[3];
+} int32x4x3_t;
+
+typedef struct int64x1x3_t {
+ int64x1_t val[3];
+} int64x1x3_t;
+
+typedef struct int64x2x3_t {
+ int64x2_t val[3];
+} int64x2x3_t;
+
+typedef struct uint8x8x3_t {
+ uint8x8_t val[3];
+} uint8x8x3_t;
+
+typedef struct uint8x16x3_t {
+ uint8x16_t val[3];
+} uint8x16x3_t;
+
+typedef struct uint16x4x3_t {
+ uint16x4_t val[3];
+} uint16x4x3_t;
+
+typedef struct uint16x8x3_t {
+ uint16x8_t val[3];
+} uint16x8x3_t;
+
+typedef struct uint32x2x3_t {
+ uint32x2_t val[3];
+} uint32x2x3_t;
+
+typedef struct uint32x4x3_t {
+ uint32x4_t val[3];
+} uint32x4x3_t;
+
+typedef struct uint64x1x3_t {
+ uint64x1_t val[3];
+} uint64x1x3_t;
+
+typedef struct uint64x2x3_t {
+ uint64x2_t val[3];
+} uint64x2x3_t;
+
+typedef struct float16x4x3_t {
+ float16x4_t val[3];
+} float16x4x3_t;
+
+typedef struct float16x8x3_t {
+ float16x8_t val[3];
+} float16x8x3_t;
+
+typedef struct float32x2x3_t {
+ float32x2_t val[3];
+} float32x2x3_t;
+
+typedef struct float32x4x3_t {
+ float32x4_t val[3];
+} float32x4x3_t;
+
+#ifdef __aarch64__
+typedef struct float64x1x3_t {
+ float64x1_t val[3];
+} float64x1x3_t;
+
+typedef struct float64x2x3_t {
+ float64x2_t val[3];
+} float64x2x3_t;
+
+#endif
+typedef struct poly8x8x3_t {
+ poly8x8_t val[3];
+} poly8x8x3_t;
+
+typedef struct poly8x16x3_t {
+ poly8x16_t val[3];
+} poly8x16x3_t;
+
+typedef struct poly16x4x3_t {
+ poly16x4_t val[3];
+} poly16x4x3_t;
+
+typedef struct poly16x8x3_t {
+ poly16x8_t val[3];
+} poly16x8x3_t;
+
+#ifdef __aarch64__
+typedef struct poly64x1x3_t {
+ poly64x1_t val[3];
+} poly64x1x3_t;
+
+typedef struct poly64x2x3_t {
+ poly64x2_t val[3];
+} poly64x2x3_t;
+
+#endif
+typedef struct int8x8x4_t {
+ int8x8_t val[4];
+} int8x8x4_t;
+
+typedef struct int8x16x4_t {
+ int8x16_t val[4];
+} int8x16x4_t;
+
+typedef struct int16x4x4_t {
+ int16x4_t val[4];
+} int16x4x4_t;
+
+typedef struct int16x8x4_t {
+ int16x8_t val[4];
+} int16x8x4_t;
+
+typedef struct int32x2x4_t {
+ int32x2_t val[4];
+} int32x2x4_t;
+
+typedef struct int32x4x4_t {
+ int32x4_t val[4];
+} int32x4x4_t;
+
+typedef struct int64x1x4_t {
+ int64x1_t val[4];
+} int64x1x4_t;
+
+typedef struct int64x2x4_t {
+ int64x2_t val[4];
+} int64x2x4_t;
+
+typedef struct uint8x8x4_t {
+ uint8x8_t val[4];
+} uint8x8x4_t;
+
+typedef struct uint8x16x4_t {
+ uint8x16_t val[4];
+} uint8x16x4_t;
+
+typedef struct uint16x4x4_t {
+ uint16x4_t val[4];
+} uint16x4x4_t;
+
+typedef struct uint16x8x4_t {
+ uint16x8_t val[4];
+} uint16x8x4_t;
+
+typedef struct uint32x2x4_t {
+ uint32x2_t val[4];
+} uint32x2x4_t;
+
+typedef struct uint32x4x4_t {
+ uint32x4_t val[4];
+} uint32x4x4_t;
+
+typedef struct uint64x1x4_t {
+ uint64x1_t val[4];
+} uint64x1x4_t;
+
+typedef struct uint64x2x4_t {
+ uint64x2_t val[4];
+} uint64x2x4_t;
+
+typedef struct float16x4x4_t {
+ float16x4_t val[4];
+} float16x4x4_t;
+
+typedef struct float16x8x4_t {
+ float16x8_t val[4];
+} float16x8x4_t;
+
+typedef struct float32x2x4_t {
+ float32x2_t val[4];
+} float32x2x4_t;
+
+typedef struct float32x4x4_t {
+ float32x4_t val[4];
+} float32x4x4_t;
+
+#ifdef __aarch64__
+typedef struct float64x1x4_t {
+ float64x1_t val[4];
+} float64x1x4_t;
+
+typedef struct float64x2x4_t {
+ float64x2_t val[4];
+} float64x2x4_t;
+
+#endif
+typedef struct poly8x8x4_t {
+ poly8x8_t val[4];
+} poly8x8x4_t;
+
+typedef struct poly8x16x4_t {
+ poly8x16_t val[4];
+} poly8x16x4_t;
+
+typedef struct poly16x4x4_t {
+ poly16x4_t val[4];
+} poly16x4x4_t;
+
+typedef struct poly16x8x4_t {
+ poly16x8_t val[4];
+} poly16x8x4_t;
+
+#ifdef __aarch64__
+typedef struct poly64x1x4_t {
+ poly64x1_t val[4];
+} poly64x1x4_t;
+
+typedef struct poly64x2x4_t {
+ poly64x2_t val[4];
+} poly64x2x4_t;
+
+#endif
+
+#define __ai static inline __attribute__((__always_inline__, __nodebug__))
+
+__ai int16x8_t vmovl_s8(int8x8_t __a) {
+ return (int16x8_t)__builtin_neon_vmovl_v(__a, 33); }
+__ai int32x4_t vmovl_s16(int16x4_t __a) {
+ return (int32x4_t)__builtin_neon_vmovl_v((int8x8_t)__a, 34); }
+__ai int64x2_t vmovl_s32(int32x2_t __a) {
+ return (int64x2_t)__builtin_neon_vmovl_v((int8x8_t)__a, 35); }
+__ai uint16x8_t vmovl_u8(uint8x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vmovl_v((int8x8_t)__a, 49); }
+__ai uint32x4_t vmovl_u16(uint16x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vmovl_v((int8x8_t)__a, 50); }
+__ai uint64x2_t vmovl_u32(uint32x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vmovl_v((int8x8_t)__a, 51); }
+
+__ai int16x8_t vmull_s8(int8x8_t __a, int8x8_t __b) {
+ return (int16x8_t)__builtin_neon_vmull_v(__a, __b, 33); }
+__ai int32x4_t vmull_s16(int16x4_t __a, int16x4_t __b) {
+ return (int32x4_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)__b, 34); }
+__ai int64x2_t vmull_s32(int32x2_t __a, int32x2_t __b) {
+ return (int64x2_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)__b, 35); }
+__ai uint16x8_t vmull_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)__b, 49); }
+__ai uint32x4_t vmull_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)__b, 50); }
+__ai uint64x2_t vmull_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)__b, 51); }
+__ai poly16x8_t vmull_p8(poly8x8_t __a, poly8x8_t __b) {
+ return (poly16x8_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)__b, 37); }
+
+__ai int8x8_t vabd_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vabd_v(__a, __b, 0); }
+__ai int16x4_t vabd_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vabd_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vabd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vabd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vabd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai float32x2_t vabd_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai int8x16_t vabdq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vabdq_v(__a, __b, 32); }
+__ai int16x8_t vabdq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vabdq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vabdq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vabdq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vabdq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai float32x4_t vabdq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+
+__ai int16x8_t vabdl_s8(int8x8_t __a, int8x8_t __b) {
+ return (int16x8_t)vmovl_u8((uint8x8_t)vabd_s8(__a, __b)); }
+__ai int32x4_t vabdl_s16(int16x4_t __a, int16x4_t __b) {
+ return (int32x4_t)vmovl_u16((uint16x4_t)vabd_s16(__a, __b)); }
+__ai int64x2_t vabdl_s32(int32x2_t __a, int32x2_t __b) {
+ return (int64x2_t)vmovl_u32((uint32x2_t)vabd_s32(__a, __b)); }
+__ai uint16x8_t vabdl_u8(uint8x8_t __a, uint8x8_t __b) {
+ return vmovl_u8(vabd_u8(__a, __b)); }
+__ai uint32x4_t vabdl_u16(uint16x4_t __a, uint16x4_t __b) {
+ return vmovl_u16(vabd_u16(__a, __b)); }
+__ai uint64x2_t vabdl_u32(uint32x2_t __a, uint32x2_t __b) {
+ return vmovl_u32(vabd_u32(__a, __b)); }
+
+__ai int8x8_t vaba_s8(int8x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return __a + vabd_s8(__b, __c); }
+__ai int16x4_t vaba_s16(int16x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return __a + vabd_s16(__b, __c); }
+__ai int32x2_t vaba_s32(int32x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return __a + vabd_s32(__b, __c); }
+__ai uint8x8_t vaba_u8(uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return __a + vabd_u8(__b, __c); }
+__ai uint16x4_t vaba_u16(uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return __a + vabd_u16(__b, __c); }
+__ai uint32x2_t vaba_u32(uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return __a + vabd_u32(__b, __c); }
+__ai int8x16_t vabaq_s8(int8x16_t __a, int8x16_t __b, int8x16_t __c) {
+ return __a + vabdq_s8(__b, __c); }
+__ai int16x8_t vabaq_s16(int16x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return __a + vabdq_s16(__b, __c); }
+__ai int32x4_t vabaq_s32(int32x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return __a + vabdq_s32(__b, __c); }
+__ai uint8x16_t vabaq_u8(uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return __a + vabdq_u8(__b, __c); }
+__ai uint16x8_t vabaq_u16(uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return __a + vabdq_u16(__b, __c); }
+__ai uint32x4_t vabaq_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return __a + vabdq_u32(__b, __c); }
+
+__ai int16x8_t vabal_s8(int16x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return __a + vabdl_s8(__b, __c); }
+__ai int32x4_t vabal_s16(int32x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return __a + vabdl_s16(__b, __c); }
+__ai int64x2_t vabal_s32(int64x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return __a + vabdl_s32(__b, __c); }
+__ai uint16x8_t vabal_u8(uint16x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return __a + vabdl_u8(__b, __c); }
+__ai uint32x4_t vabal_u16(uint32x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return __a + vabdl_u16(__b, __c); }
+__ai uint64x2_t vabal_u32(uint64x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return __a + vabdl_u32(__b, __c); }
+
+
+__ai int8x8_t vabs_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vabs_v(__a, 0); }
+__ai int16x4_t vabs_s16(int16x4_t __a) {
+ return (int16x4_t)__builtin_neon_vabs_v((int8x8_t)__a, 1); }
+__ai int32x2_t vabs_s32(int32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vabs_v((int8x8_t)__a, 2); }
+__ai float32x2_t vabs_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vabs_v((int8x8_t)__a, 8); }
+__ai int8x16_t vabsq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vabsq_v(__a, 32); }
+__ai int16x8_t vabsq_s16(int16x8_t __a) {
+ return (int16x8_t)__builtin_neon_vabsq_v((int8x16_t)__a, 33); }
+__ai int32x4_t vabsq_s32(int32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vabsq_v((int8x16_t)__a, 34); }
+__ai float32x4_t vabsq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vabsq_v((int8x16_t)__a, 40); }
+
+__ai int8x8_t vadd_s8(int8x8_t __a, int8x8_t __b) {
+ return __a + __b; }
+__ai int16x4_t vadd_s16(int16x4_t __a, int16x4_t __b) {
+ return __a + __b; }
+__ai int32x2_t vadd_s32(int32x2_t __a, int32x2_t __b) {
+ return __a + __b; }
+__ai int64x1_t vadd_s64(int64x1_t __a, int64x1_t __b) {
+ return __a + __b; }
+__ai float32x2_t vadd_f32(float32x2_t __a, float32x2_t __b) {
+ return __a + __b; }
+__ai uint8x8_t vadd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a + __b; }
+__ai uint16x4_t vadd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a + __b; }
+__ai uint32x2_t vadd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a + __b; }
+__ai uint64x1_t vadd_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a + __b; }
+__ai int8x16_t vaddq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a + __b; }
+__ai int16x8_t vaddq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a + __b; }
+__ai int32x4_t vaddq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a + __b; }
+__ai int64x2_t vaddq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a + __b; }
+__ai float32x4_t vaddq_f32(float32x4_t __a, float32x4_t __b) {
+ return __a + __b; }
+__ai uint8x16_t vaddq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a + __b; }
+__ai uint16x8_t vaddq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a + __b; }
+__ai uint32x4_t vaddq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a + __b; }
+__ai uint64x2_t vaddq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a + __b; }
+
+__ai int8x8_t vaddhn_s16(int16x8_t __a, int16x8_t __b) {
+ return (int8x8_t)__builtin_neon_vaddhn_v((int8x16_t)__a, (int8x16_t)__b, 0); }
+__ai int16x4_t vaddhn_s32(int32x4_t __a, int32x4_t __b) {
+ return (int16x4_t)__builtin_neon_vaddhn_v((int8x16_t)__a, (int8x16_t)__b, 1); }
+__ai int32x2_t vaddhn_s64(int64x2_t __a, int64x2_t __b) {
+ return (int32x2_t)__builtin_neon_vaddhn_v((int8x16_t)__a, (int8x16_t)__b, 2); }
+__ai uint8x8_t vaddhn_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vaddhn_v((int8x16_t)__a, (int8x16_t)__b, 16); }
+__ai uint16x4_t vaddhn_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vaddhn_v((int8x16_t)__a, (int8x16_t)__b, 17); }
+__ai uint32x2_t vaddhn_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vaddhn_v((int8x16_t)__a, (int8x16_t)__b, 18); }
+
+__ai int16x8_t vaddl_s8(int8x8_t __a, int8x8_t __b) {
+ return vmovl_s8(__a) + vmovl_s8(__b); }
+__ai int32x4_t vaddl_s16(int16x4_t __a, int16x4_t __b) {
+ return vmovl_s16(__a) + vmovl_s16(__b); }
+__ai int64x2_t vaddl_s32(int32x2_t __a, int32x2_t __b) {
+ return vmovl_s32(__a) + vmovl_s32(__b); }
+__ai uint16x8_t vaddl_u8(uint8x8_t __a, uint8x8_t __b) {
+ return vmovl_u8(__a) + vmovl_u8(__b); }
+__ai uint32x4_t vaddl_u16(uint16x4_t __a, uint16x4_t __b) {
+ return vmovl_u16(__a) + vmovl_u16(__b); }
+__ai uint64x2_t vaddl_u32(uint32x2_t __a, uint32x2_t __b) {
+ return vmovl_u32(__a) + vmovl_u32(__b); }
+
+__ai int16x8_t vaddw_s8(int16x8_t __a, int8x8_t __b) {
+ return __a + vmovl_s8(__b); }
+__ai int32x4_t vaddw_s16(int32x4_t __a, int16x4_t __b) {
+ return __a + vmovl_s16(__b); }
+__ai int64x2_t vaddw_s32(int64x2_t __a, int32x2_t __b) {
+ return __a + vmovl_s32(__b); }
+__ai uint16x8_t vaddw_u8(uint16x8_t __a, uint8x8_t __b) {
+ return __a + vmovl_u8(__b); }
+__ai uint32x4_t vaddw_u16(uint32x4_t __a, uint16x4_t __b) {
+ return __a + vmovl_u16(__b); }
+__ai uint64x2_t vaddw_u32(uint64x2_t __a, uint32x2_t __b) {
+ return __a + vmovl_u32(__b); }
+
+__ai int8x8_t vand_s8(int8x8_t __a, int8x8_t __b) {
+ return __a & __b; }
+__ai int16x4_t vand_s16(int16x4_t __a, int16x4_t __b) {
+ return __a & __b; }
+__ai int32x2_t vand_s32(int32x2_t __a, int32x2_t __b) {
+ return __a & __b; }
+__ai int64x1_t vand_s64(int64x1_t __a, int64x1_t __b) {
+ return __a & __b; }
+__ai uint8x8_t vand_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a & __b; }
+__ai uint16x4_t vand_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a & __b; }
+__ai uint32x2_t vand_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a & __b; }
+__ai uint64x1_t vand_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a & __b; }
+__ai int8x16_t vandq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a & __b; }
+__ai int16x8_t vandq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a & __b; }
+__ai int32x4_t vandq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a & __b; }
+__ai int64x2_t vandq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a & __b; }
+__ai uint8x16_t vandq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a & __b; }
+__ai uint16x8_t vandq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a & __b; }
+__ai uint32x4_t vandq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a & __b; }
+__ai uint64x2_t vandq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a & __b; }
+
+__ai int8x8_t vbic_s8(int8x8_t __a, int8x8_t __b) {
+ return __a & ~__b; }
+__ai int16x4_t vbic_s16(int16x4_t __a, int16x4_t __b) {
+ return __a & ~__b; }
+__ai int32x2_t vbic_s32(int32x2_t __a, int32x2_t __b) {
+ return __a & ~__b; }
+__ai int64x1_t vbic_s64(int64x1_t __a, int64x1_t __b) {
+ return __a & ~__b; }
+__ai uint8x8_t vbic_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a & ~__b; }
+__ai uint16x4_t vbic_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a & ~__b; }
+__ai uint32x2_t vbic_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a & ~__b; }
+__ai uint64x1_t vbic_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a & ~__b; }
+__ai int8x16_t vbicq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a & ~__b; }
+__ai int16x8_t vbicq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a & ~__b; }
+__ai int32x4_t vbicq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a & ~__b; }
+__ai int64x2_t vbicq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a & ~__b; }
+__ai uint8x16_t vbicq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a & ~__b; }
+__ai uint16x8_t vbicq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a & ~__b; }
+__ai uint32x4_t vbicq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a & ~__b; }
+__ai uint64x2_t vbicq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a & ~__b; }
+
+__ai int8x8_t vbsl_s8(uint8x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vbsl_v((int8x8_t)__a, __b, __c, 0); }
+__ai int16x4_t vbsl_s16(uint16x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return (int16x4_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 1); }
+__ai int32x2_t vbsl_s32(uint32x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return (int32x2_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 2); }
+__ai int64x1_t vbsl_s64(uint64x1_t __a, int64x1_t __b, int64x1_t __c) {
+ return (int64x1_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 3); }
+__ai uint8x8_t vbsl_u8(uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 16); }
+__ai uint16x4_t vbsl_u16(uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return (uint16x4_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 17); }
+__ai uint32x2_t vbsl_u32(uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return (uint32x2_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 18); }
+__ai uint64x1_t vbsl_u64(uint64x1_t __a, uint64x1_t __b, uint64x1_t __c) {
+ return (uint64x1_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 19); }
+__ai float32x2_t vbsl_f32(uint32x2_t __a, float32x2_t __b, float32x2_t __c) {
+ return (float32x2_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 8); }
+__ai poly8x8_t vbsl_p8(uint8x8_t __a, poly8x8_t __b, poly8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 4); }
+__ai poly16x4_t vbsl_p16(uint16x4_t __a, poly16x4_t __b, poly16x4_t __c) {
+ return (poly16x4_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 5); }
+__ai int8x16_t vbslq_s8(uint8x16_t __a, int8x16_t __b, int8x16_t __c) {
+ return (int8x16_t)__builtin_neon_vbslq_v((int8x16_t)__a, __b, __c, 32); }
+__ai int16x8_t vbslq_s16(uint16x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return (int16x8_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 33); }
+__ai int32x4_t vbslq_s32(uint32x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return (int32x4_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 34); }
+__ai int64x2_t vbslq_s64(uint64x2_t __a, int64x2_t __b, int64x2_t __c) {
+ return (int64x2_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 35); }
+__ai uint8x16_t vbslq_u8(uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return (uint8x16_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 48); }
+__ai uint16x8_t vbslq_u16(uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return (uint16x8_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 49); }
+__ai uint32x4_t vbslq_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 50); }
+__ai uint64x2_t vbslq_u64(uint64x2_t __a, uint64x2_t __b, uint64x2_t __c) {
+ return (uint64x2_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 51); }
+__ai float32x4_t vbslq_f32(uint32x4_t __a, float32x4_t __b, float32x4_t __c) {
+ return (float32x4_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 40); }
+__ai poly8x16_t vbslq_p8(uint8x16_t __a, poly8x16_t __b, poly8x16_t __c) {
+ return (poly8x16_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 36); }
+__ai poly16x8_t vbslq_p16(uint16x8_t __a, poly16x8_t __b, poly16x8_t __c) {
+ return (poly16x8_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 37); }
+
+__ai uint32x2_t vcage_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vcage_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint32x4_t vcageq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vcageq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai uint32x2_t vcagt_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vcagt_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint32x4_t vcagtq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vcagtq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai uint32x2_t vcale_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vcale_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint32x4_t vcaleq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vcaleq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai uint32x2_t vcalt_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vcalt_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint32x4_t vcaltq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vcaltq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai uint8x8_t vceq_s8(int8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)(__a == __b); }
+__ai uint16x4_t vceq_s16(int16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)(__a == __b); }
+__ai uint32x2_t vceq_s32(int32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)(__a == __b); }
+__ai uint32x2_t vceq_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)(__a == __b); }
+__ai uint8x8_t vceq_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)(__a == __b); }
+__ai uint16x4_t vceq_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)(__a == __b); }
+__ai uint32x2_t vceq_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)(__a == __b); }
+__ai uint8x8_t vceq_p8(poly8x8_t __a, poly8x8_t __b) {
+ return (uint8x8_t)(__a == __b); }
+__ai uint8x16_t vceqq_s8(int8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)(__a == __b); }
+__ai uint16x8_t vceqq_s16(int16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)(__a == __b); }
+__ai uint32x4_t vceqq_s32(int32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)(__a == __b); }
+__ai uint32x4_t vceqq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)(__a == __b); }
+__ai uint8x16_t vceqq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)(__a == __b); }
+__ai uint16x8_t vceqq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)(__a == __b); }
+__ai uint32x4_t vceqq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)(__a == __b); }
+__ai uint8x16_t vceqq_p8(poly8x16_t __a, poly8x16_t __b) {
+ return (uint8x16_t)(__a == __b); }
+
+__ai uint8x8_t vcge_s8(int8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)(__a >= __b); }
+__ai uint16x4_t vcge_s16(int16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)(__a >= __b); }
+__ai uint32x2_t vcge_s32(int32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)(__a >= __b); }
+__ai uint32x2_t vcge_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)(__a >= __b); }
+__ai uint8x8_t vcge_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)(__a >= __b); }
+__ai uint16x4_t vcge_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)(__a >= __b); }
+__ai uint32x2_t vcge_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)(__a >= __b); }
+__ai uint8x16_t vcgeq_s8(int8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)(__a >= __b); }
+__ai uint16x8_t vcgeq_s16(int16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)(__a >= __b); }
+__ai uint32x4_t vcgeq_s32(int32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)(__a >= __b); }
+__ai uint32x4_t vcgeq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)(__a >= __b); }
+__ai uint8x16_t vcgeq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)(__a >= __b); }
+__ai uint16x8_t vcgeq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)(__a >= __b); }
+__ai uint32x4_t vcgeq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)(__a >= __b); }
+
+__ai uint8x8_t vcgt_s8(int8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)(__a > __b); }
+__ai uint16x4_t vcgt_s16(int16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)(__a > __b); }
+__ai uint32x2_t vcgt_s32(int32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)(__a > __b); }
+__ai uint32x2_t vcgt_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)(__a > __b); }
+__ai uint8x8_t vcgt_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)(__a > __b); }
+__ai uint16x4_t vcgt_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)(__a > __b); }
+__ai uint32x2_t vcgt_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)(__a > __b); }
+__ai uint8x16_t vcgtq_s8(int8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)(__a > __b); }
+__ai uint16x8_t vcgtq_s16(int16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)(__a > __b); }
+__ai uint32x4_t vcgtq_s32(int32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)(__a > __b); }
+__ai uint32x4_t vcgtq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)(__a > __b); }
+__ai uint8x16_t vcgtq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)(__a > __b); }
+__ai uint16x8_t vcgtq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)(__a > __b); }
+__ai uint32x4_t vcgtq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)(__a > __b); }
+
+__ai uint8x8_t vcle_s8(int8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)(__a <= __b); }
+__ai uint16x4_t vcle_s16(int16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)(__a <= __b); }
+__ai uint32x2_t vcle_s32(int32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)(__a <= __b); }
+__ai uint32x2_t vcle_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)(__a <= __b); }
+__ai uint8x8_t vcle_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)(__a <= __b); }
+__ai uint16x4_t vcle_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)(__a <= __b); }
+__ai uint32x2_t vcle_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)(__a <= __b); }
+__ai uint8x16_t vcleq_s8(int8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)(__a <= __b); }
+__ai uint16x8_t vcleq_s16(int16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)(__a <= __b); }
+__ai uint32x4_t vcleq_s32(int32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)(__a <= __b); }
+__ai uint32x4_t vcleq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)(__a <= __b); }
+__ai uint8x16_t vcleq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)(__a <= __b); }
+__ai uint16x8_t vcleq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)(__a <= __b); }
+__ai uint32x4_t vcleq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)(__a <= __b); }
+
+__ai int8x8_t vcls_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vcls_v(__a, 0); }
+__ai int16x4_t vcls_s16(int16x4_t __a) {
+ return (int16x4_t)__builtin_neon_vcls_v((int8x8_t)__a, 1); }
+__ai int32x2_t vcls_s32(int32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vcls_v((int8x8_t)__a, 2); }
+__ai int8x16_t vclsq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vclsq_v(__a, 32); }
+__ai int16x8_t vclsq_s16(int16x8_t __a) {
+ return (int16x8_t)__builtin_neon_vclsq_v((int8x16_t)__a, 33); }
+__ai int32x4_t vclsq_s32(int32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vclsq_v((int8x16_t)__a, 34); }
+
+__ai uint8x8_t vclt_s8(int8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)(__a < __b); }
+__ai uint16x4_t vclt_s16(int16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)(__a < __b); }
+__ai uint32x2_t vclt_s32(int32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)(__a < __b); }
+__ai uint32x2_t vclt_f32(float32x2_t __a, float32x2_t __b) {
+ return (uint32x2_t)(__a < __b); }
+__ai uint8x8_t vclt_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)(__a < __b); }
+__ai uint16x4_t vclt_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)(__a < __b); }
+__ai uint32x2_t vclt_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)(__a < __b); }
+__ai uint8x16_t vcltq_s8(int8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)(__a < __b); }
+__ai uint16x8_t vcltq_s16(int16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)(__a < __b); }
+__ai uint32x4_t vcltq_s32(int32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)(__a < __b); }
+__ai uint32x4_t vcltq_f32(float32x4_t __a, float32x4_t __b) {
+ return (uint32x4_t)(__a < __b); }
+__ai uint8x16_t vcltq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)(__a < __b); }
+__ai uint16x8_t vcltq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)(__a < __b); }
+__ai uint32x4_t vcltq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)(__a < __b); }
+
+__ai int8x8_t vclz_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vclz_v(__a, 0); }
+__ai int16x4_t vclz_s16(int16x4_t __a) {
+ return (int16x4_t)__builtin_neon_vclz_v((int8x8_t)__a, 1); }
+__ai int32x2_t vclz_s32(int32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vclz_v((int8x8_t)__a, 2); }
+__ai uint8x8_t vclz_u8(uint8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vclz_v((int8x8_t)__a, 16); }
+__ai uint16x4_t vclz_u16(uint16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vclz_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vclz_u32(uint32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vclz_v((int8x8_t)__a, 18); }
+__ai int8x16_t vclzq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vclzq_v(__a, 32); }
+__ai int16x8_t vclzq_s16(int16x8_t __a) {
+ return (int16x8_t)__builtin_neon_vclzq_v((int8x16_t)__a, 33); }
+__ai int32x4_t vclzq_s32(int32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vclzq_v((int8x16_t)__a, 34); }
+__ai uint8x16_t vclzq_u8(uint8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vclzq_v((int8x16_t)__a, 48); }
+__ai uint16x8_t vclzq_u16(uint16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vclzq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vclzq_u32(uint32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vclzq_v((int8x16_t)__a, 50); }
+
+__ai uint8x8_t vcnt_u8(uint8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vcnt_v((int8x8_t)__a, 16); }
+__ai int8x8_t vcnt_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vcnt_v(__a, 0); }
+__ai poly8x8_t vcnt_p8(poly8x8_t __a) {
+ return (poly8x8_t)__builtin_neon_vcnt_v((int8x8_t)__a, 4); }
+__ai uint8x16_t vcntq_u8(uint8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vcntq_v((int8x16_t)__a, 48); }
+__ai int8x16_t vcntq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vcntq_v(__a, 32); }
+__ai poly8x16_t vcntq_p8(poly8x16_t __a) {
+ return (poly8x16_t)__builtin_neon_vcntq_v((int8x16_t)__a, 36); }
+
+__ai int8x16_t vcombine_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x16_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai int16x8_t vcombine_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x8_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai int32x4_t vcombine_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x4_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai int64x2_t vcombine_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x2_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai float16x8_t vcombine_f16(float16x4_t __a, float16x4_t __b) {
+ return (float16x8_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai float32x4_t vcombine_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x4_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai uint8x16_t vcombine_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x16_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai uint16x8_t vcombine_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x8_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai uint32x4_t vcombine_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x4_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai uint64x2_t vcombine_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x2_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai poly8x16_t vcombine_p8(poly8x8_t __a, poly8x8_t __b) {
+ return (poly8x16_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai poly16x8_t vcombine_p16(poly16x4_t __a, poly16x4_t __b) {
+ return (poly16x8_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+
+__ai int8x8_t vcreate_s8(uint64_t __a) {
+ return (int8x8_t)__a; }
+__ai int16x4_t vcreate_s16(uint64_t __a) {
+ return (int16x4_t)__a; }
+__ai int32x2_t vcreate_s32(uint64_t __a) {
+ return (int32x2_t)__a; }
+__ai float16x4_t vcreate_f16(uint64_t __a) {
+ return (float16x4_t)__a; }
+__ai float32x2_t vcreate_f32(uint64_t __a) {
+ return (float32x2_t)__a; }
+__ai uint8x8_t vcreate_u8(uint64_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint16x4_t vcreate_u16(uint64_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint32x2_t vcreate_u32(uint64_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint64x1_t vcreate_u64(uint64_t __a) {
+ return (uint64x1_t)__a; }
+__ai poly8x8_t vcreate_p8(uint64_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly16x4_t vcreate_p16(uint64_t __a) {
+ return (poly16x4_t)__a; }
+__ai int64x1_t vcreate_s64(uint64_t __a) {
+ return (int64x1_t)__a; }
+
+__ai float16x4_t vcvt_f16_f32(float32x4_t __a) {
+ return (float16x4_t)__builtin_neon_vcvt_f16_v((int8x16_t)__a, 7); }
+
+__ai float32x2_t vcvt_f32_s32(int32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vcvt_f32_v((int8x8_t)__a, 2); }
+__ai float32x2_t vcvt_f32_u32(uint32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vcvt_f32_v((int8x8_t)__a, 18); }
+__ai float32x4_t vcvtq_f32_s32(int32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vcvtq_f32_v((int8x16_t)__a, 34); }
+__ai float32x4_t vcvtq_f32_u32(uint32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vcvtq_f32_v((int8x16_t)__a, 50); }
+
+__ai float32x4_t vcvt_f32_f16(float16x4_t __a) {
+ return (float32x4_t)__builtin_neon_vcvt_f32_f16((int8x8_t)__a, 7); }
+
+#define vcvt_n_f32_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (float32x2_t)__builtin_neon_vcvt_n_f32_v((int8x8_t)__a, __b, 2); })
+#define vcvt_n_f32_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (float32x2_t)__builtin_neon_vcvt_n_f32_v((int8x8_t)__a, __b, 18); })
+#define vcvtq_n_f32_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (float32x4_t)__builtin_neon_vcvtq_n_f32_v((int8x16_t)__a, __b, 34); })
+#define vcvtq_n_f32_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (float32x4_t)__builtin_neon_vcvtq_n_f32_v((int8x16_t)__a, __b, 50); })
+
+#define vcvt_n_s32_f32(a, __b) __extension__ ({ \
+ float32x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vcvt_n_s32_v((int8x8_t)__a, __b, 2); })
+#define vcvtq_n_s32_f32(a, __b) __extension__ ({ \
+ float32x4_t __a = (a); \
+ (int32x4_t)__builtin_neon_vcvtq_n_s32_v((int8x16_t)__a, __b, 34); })
+
+#define vcvt_n_u32_f32(a, __b) __extension__ ({ \
+ float32x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vcvt_n_u32_v((int8x8_t)__a, __b, 18); })
+#define vcvtq_n_u32_f32(a, __b) __extension__ ({ \
+ float32x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vcvtq_n_u32_v((int8x16_t)__a, __b, 50); })
+
+__ai int32x2_t vcvt_s32_f32(float32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vcvt_s32_v((int8x8_t)__a, 2); }
+__ai int32x4_t vcvtq_s32_f32(float32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vcvtq_s32_v((int8x16_t)__a, 34); }
+
+__ai uint32x2_t vcvt_u32_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcvt_u32_v((int8x8_t)__a, 18); }
+__ai uint32x4_t vcvtq_u32_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcvtq_u32_v((int8x16_t)__a, 50); }
+
+#define vdup_lane_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdup_lane_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_lane_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_lane_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdup_lane_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_lane_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_lane_p8(a, __b) __extension__ ({ \
+ poly8x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdup_lane_p16(a, __b) __extension__ ({ \
+ poly16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_lane_f32(a, __b) __extension__ ({ \
+ float32x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdupq_lane_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdupq_lane_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdupq_lane_p8(a, __b) __extension__ ({ \
+ poly8x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_p16(a, __b) __extension__ ({ \
+ poly16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_f32(a, __b) __extension__ ({ \
+ float32x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_lane_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdup_lane_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdupq_lane_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdupq_lane_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+
+__ai uint8x8_t vdup_n_u8(uint8_t __a) {
+ return (uint8x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai uint16x4_t vdup_n_u16(uint16_t __a) {
+ return (uint16x4_t){ __a, __a, __a, __a }; }
+__ai uint32x2_t vdup_n_u32(uint32_t __a) {
+ return (uint32x2_t){ __a, __a }; }
+__ai int8x8_t vdup_n_s8(int8_t __a) {
+ return (int8x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai int16x4_t vdup_n_s16(int16_t __a) {
+ return (int16x4_t){ __a, __a, __a, __a }; }
+__ai int32x2_t vdup_n_s32(int32_t __a) {
+ return (int32x2_t){ __a, __a }; }
+__ai poly8x8_t vdup_n_p8(poly8_t __a) {
+ return (poly8x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai poly16x4_t vdup_n_p16(poly16_t __a) {
+ return (poly16x4_t){ __a, __a, __a, __a }; }
+__ai float32x2_t vdup_n_f32(float32_t __a) {
+ return (float32x2_t){ __a, __a }; }
+__ai uint8x16_t vdupq_n_u8(uint8_t __a) {
+ return (uint8x16_t){ __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai uint16x8_t vdupq_n_u16(uint16_t __a) {
+ return (uint16x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai uint32x4_t vdupq_n_u32(uint32_t __a) {
+ return (uint32x4_t){ __a, __a, __a, __a }; }
+__ai int8x16_t vdupq_n_s8(int8_t __a) {
+ return (int8x16_t){ __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai int16x8_t vdupq_n_s16(int16_t __a) {
+ return (int16x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai int32x4_t vdupq_n_s32(int32_t __a) {
+ return (int32x4_t){ __a, __a, __a, __a }; }
+__ai poly8x16_t vdupq_n_p8(poly8_t __a) {
+ return (poly8x16_t){ __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai poly16x8_t vdupq_n_p16(poly16_t __a) {
+ return (poly16x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai float32x4_t vdupq_n_f32(float32_t __a) {
+ return (float32x4_t){ __a, __a, __a, __a }; }
+__ai int64x1_t vdup_n_s64(int64_t __a) {
+ return (int64x1_t){ __a }; }
+__ai uint64x1_t vdup_n_u64(uint64_t __a) {
+ return (uint64x1_t){ __a }; }
+__ai int64x2_t vdupq_n_s64(int64_t __a) {
+ return (int64x2_t){ __a, __a }; }
+__ai uint64x2_t vdupq_n_u64(uint64_t __a) {
+ return (uint64x2_t){ __a, __a }; }
+
+__ai int8x8_t veor_s8(int8x8_t __a, int8x8_t __b) {
+ return __a ^ __b; }
+__ai int16x4_t veor_s16(int16x4_t __a, int16x4_t __b) {
+ return __a ^ __b; }
+__ai int32x2_t veor_s32(int32x2_t __a, int32x2_t __b) {
+ return __a ^ __b; }
+__ai int64x1_t veor_s64(int64x1_t __a, int64x1_t __b) {
+ return __a ^ __b; }
+__ai uint8x8_t veor_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a ^ __b; }
+__ai uint16x4_t veor_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a ^ __b; }
+__ai uint32x2_t veor_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a ^ __b; }
+__ai uint64x1_t veor_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a ^ __b; }
+__ai int8x16_t veorq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a ^ __b; }
+__ai int16x8_t veorq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a ^ __b; }
+__ai int32x4_t veorq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a ^ __b; }
+__ai int64x2_t veorq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a ^ __b; }
+__ai uint8x16_t veorq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a ^ __b; }
+__ai uint16x8_t veorq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a ^ __b; }
+__ai uint32x4_t veorq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a ^ __b; }
+__ai uint64x2_t veorq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a ^ __b; }
+
+#define vext_s8(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vext_v(__a, __b, __c, 0); })
+#define vext_u8(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 16); })
+#define vext_p8(a, b, __c) __extension__ ({ \
+ poly8x8_t __a = (a); poly8x8_t __b = (b); \
+ (poly8x8_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 4); })
+#define vext_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 1); })
+#define vext_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 17); })
+#define vext_p16(a, b, __c) __extension__ ({ \
+ poly16x4_t __a = (a); poly16x4_t __b = (b); \
+ (poly16x4_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 5); })
+#define vext_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 2); })
+#define vext_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 18); })
+#define vext_s64(a, b, __c) __extension__ ({ \
+ int64x1_t __a = (a); int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 3); })
+#define vext_u64(a, b, __c) __extension__ ({ \
+ uint64x1_t __a = (a); uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 19); })
+#define vext_f32(a, b, __c) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); \
+ (float32x2_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 8); })
+#define vextq_s8(a, b, __c) __extension__ ({ \
+ int8x16_t __a = (a); int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vextq_v(__a, __b, __c, 32); })
+#define vextq_u8(a, b, __c) __extension__ ({ \
+ uint8x16_t __a = (a); uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 48); })
+#define vextq_p8(a, b, __c) __extension__ ({ \
+ poly8x16_t __a = (a); poly8x16_t __b = (b); \
+ (poly8x16_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 36); })
+#define vextq_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 33); })
+#define vextq_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 49); })
+#define vextq_p16(a, b, __c) __extension__ ({ \
+ poly16x8_t __a = (a); poly16x8_t __b = (b); \
+ (poly16x8_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 37); })
+#define vextq_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 34); })
+#define vextq_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 50); })
+#define vextq_s64(a, b, __c) __extension__ ({ \
+ int64x2_t __a = (a); int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 35); })
+#define vextq_u64(a, b, __c) __extension__ ({ \
+ uint64x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 51); })
+#define vextq_f32(a, b, __c) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); \
+ (float32x4_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 40); })
+
+__ai float32x2_t vfma_f32(float32x2_t __a, float32x2_t __b, float32x2_t __c) {
+ return (float32x2_t)__builtin_neon_vfma_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 8); }
+__ai float32x4_t vfmaq_f32(float32x4_t __a, float32x4_t __b, float32x4_t __c) {
+ return (float32x4_t)__builtin_neon_vfmaq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 40); }
+
+__ai int8x8_t vget_high_s8(int8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai int16x4_t vget_high_s16(int16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 4, 5, 6, 7); }
+__ai int32x2_t vget_high_s32(int32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 2, 3); }
+__ai int64x1_t vget_high_s64(int64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1); }
+__ai float16x4_t vget_high_f16(float16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 4, 5, 6, 7); }
+__ai float32x2_t vget_high_f32(float32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 2, 3); }
+__ai uint8x8_t vget_high_u8(uint8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai uint16x4_t vget_high_u16(uint16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 4, 5, 6, 7); }
+__ai uint32x2_t vget_high_u32(uint32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 2, 3); }
+__ai uint64x1_t vget_high_u64(uint64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1); }
+__ai poly8x8_t vget_high_p8(poly8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai poly16x4_t vget_high_p16(poly16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 4, 5, 6, 7); }
+
+#define vget_lane_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint8_t)__builtin_neon_vget_lane_i8((int8x8_t)__a, __b); })
+#define vget_lane_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint16_t)__builtin_neon_vget_lane_i16((int16x4_t)__a, __b); })
+#define vget_lane_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint32_t)__builtin_neon_vget_lane_i32((int32x2_t)__a, __b); })
+#define vget_lane_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int8_t)__builtin_neon_vget_lane_i8(__a, __b); })
+#define vget_lane_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int16_t)__builtin_neon_vget_lane_i16(__a, __b); })
+#define vget_lane_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int32_t)__builtin_neon_vget_lane_i32(__a, __b); })
+#define vget_lane_p8(a, __b) __extension__ ({ \
+ poly8x8_t __a = (a); \
+ (poly8_t)__builtin_neon_vget_lane_i8((int8x8_t)__a, __b); })
+#define vget_lane_p16(a, __b) __extension__ ({ \
+ poly16x4_t __a = (a); \
+ (poly16_t)__builtin_neon_vget_lane_i16((int16x4_t)__a, __b); })
+#define vget_lane_f32(a, __b) __extension__ ({ \
+ float32x2_t __a = (a); \
+ (float32_t)__builtin_neon_vget_lane_f32(__a, __b); })
+#define vgetq_lane_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ (uint8_t)__builtin_neon_vgetq_lane_i8((int8x16_t)__a, __b); })
+#define vgetq_lane_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint16_t)__builtin_neon_vgetq_lane_i16((int16x8_t)__a, __b); })
+#define vgetq_lane_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint32_t)__builtin_neon_vgetq_lane_i32((int32x4_t)__a, __b); })
+#define vgetq_lane_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (int8_t)__builtin_neon_vgetq_lane_i8(__a, __b); })
+#define vgetq_lane_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int16_t)__builtin_neon_vgetq_lane_i16(__a, __b); })
+#define vgetq_lane_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int32_t)__builtin_neon_vgetq_lane_i32(__a, __b); })
+#define vgetq_lane_p8(a, __b) __extension__ ({ \
+ poly8x16_t __a = (a); \
+ (poly8_t)__builtin_neon_vgetq_lane_i8((int8x16_t)__a, __b); })
+#define vgetq_lane_p16(a, __b) __extension__ ({ \
+ poly16x8_t __a = (a); \
+ (poly16_t)__builtin_neon_vgetq_lane_i16((int16x8_t)__a, __b); })
+#define vgetq_lane_f32(a, __b) __extension__ ({ \
+ float32x4_t __a = (a); \
+ (float32_t)__builtin_neon_vgetq_lane_f32(__a, __b); })
+#define vget_lane_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (int64_t)__builtin_neon_vget_lane_i64(__a, __b); })
+#define vget_lane_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (uint64_t)__builtin_neon_vget_lane_i64((int64x1_t)__a, __b); })
+#define vgetq_lane_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int64_t)__builtin_neon_vgetq_lane_i64(__a, __b); })
+#define vgetq_lane_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint64_t)__builtin_neon_vgetq_lane_i64((int64x2_t)__a, __b); })
+
+__ai int8x8_t vget_low_s8(int8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai int16x4_t vget_low_s16(int16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); }
+__ai int32x2_t vget_low_s32(int32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1); }
+__ai int64x1_t vget_low_s64(int64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 0); }
+__ai float16x4_t vget_low_f16(float16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); }
+__ai float32x2_t vget_low_f32(float32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1); }
+__ai uint8x8_t vget_low_u8(uint8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai uint16x4_t vget_low_u16(uint16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); }
+__ai uint32x2_t vget_low_u32(uint32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1); }
+__ai uint64x1_t vget_low_u64(uint64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 0); }
+__ai poly8x8_t vget_low_p8(poly8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai poly16x4_t vget_low_p16(poly16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); }
+
+__ai int8x8_t vhadd_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vhadd_v(__a, __b, 0); }
+__ai int16x4_t vhadd_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vhadd_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vhadd_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vhadd_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vhadd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vhadd_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vhadd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vhadd_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vhadd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vhadd_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai int8x16_t vhaddq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vhaddq_v(__a, __b, 32); }
+__ai int16x8_t vhaddq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vhaddq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vhaddq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vhaddq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vhaddq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vhaddq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vhaddq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vhaddq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vhaddq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vhaddq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai int8x8_t vhsub_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vhsub_v(__a, __b, 0); }
+__ai int16x4_t vhsub_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vhsub_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vhsub_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vhsub_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vhsub_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vhsub_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vhsub_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vhsub_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vhsub_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vhsub_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai int8x16_t vhsubq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vhsubq_v(__a, __b, 32); }
+__ai int16x8_t vhsubq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vhsubq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vhsubq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vhsubq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vhsubq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vhsubq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vhsubq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vhsubq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vhsubq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vhsubq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+#define vld1q_u8(__a) __extension__ ({ \
+ (uint8x16_t)__builtin_neon_vld1q_v(__a, 48); })
+#define vld1q_u16(__a) __extension__ ({ \
+ (uint16x8_t)__builtin_neon_vld1q_v(__a, 49); })
+#define vld1q_u32(__a) __extension__ ({ \
+ (uint32x4_t)__builtin_neon_vld1q_v(__a, 50); })
+#define vld1q_u64(__a) __extension__ ({ \
+ (uint64x2_t)__builtin_neon_vld1q_v(__a, 51); })
+#define vld1q_s8(__a) __extension__ ({ \
+ (int8x16_t)__builtin_neon_vld1q_v(__a, 32); })
+#define vld1q_s16(__a) __extension__ ({ \
+ (int16x8_t)__builtin_neon_vld1q_v(__a, 33); })
+#define vld1q_s32(__a) __extension__ ({ \
+ (int32x4_t)__builtin_neon_vld1q_v(__a, 34); })
+#define vld1q_s64(__a) __extension__ ({ \
+ (int64x2_t)__builtin_neon_vld1q_v(__a, 35); })
+#define vld1q_f16(__a) __extension__ ({ \
+ (float16x8_t)__builtin_neon_vld1q_v(__a, 39); })
+#define vld1q_f32(__a) __extension__ ({ \
+ (float32x4_t)__builtin_neon_vld1q_v(__a, 40); })
+#define vld1q_p8(__a) __extension__ ({ \
+ (poly8x16_t)__builtin_neon_vld1q_v(__a, 36); })
+#define vld1q_p16(__a) __extension__ ({ \
+ (poly16x8_t)__builtin_neon_vld1q_v(__a, 37); })
+#define vld1_u8(__a) __extension__ ({ \
+ (uint8x8_t)__builtin_neon_vld1_v(__a, 16); })
+#define vld1_u16(__a) __extension__ ({ \
+ (uint16x4_t)__builtin_neon_vld1_v(__a, 17); })
+#define vld1_u32(__a) __extension__ ({ \
+ (uint32x2_t)__builtin_neon_vld1_v(__a, 18); })
+#define vld1_u64(__a) __extension__ ({ \
+ (uint64x1_t)__builtin_neon_vld1_v(__a, 19); })
+#define vld1_s8(__a) __extension__ ({ \
+ (int8x8_t)__builtin_neon_vld1_v(__a, 0); })
+#define vld1_s16(__a) __extension__ ({ \
+ (int16x4_t)__builtin_neon_vld1_v(__a, 1); })
+#define vld1_s32(__a) __extension__ ({ \
+ (int32x2_t)__builtin_neon_vld1_v(__a, 2); })
+#define vld1_s64(__a) __extension__ ({ \
+ (int64x1_t)__builtin_neon_vld1_v(__a, 3); })
+#define vld1_f16(__a) __extension__ ({ \
+ (float16x4_t)__builtin_neon_vld1_v(__a, 7); })
+#define vld1_f32(__a) __extension__ ({ \
+ (float32x2_t)__builtin_neon_vld1_v(__a, 8); })
+#define vld1_p8(__a) __extension__ ({ \
+ (poly8x8_t)__builtin_neon_vld1_v(__a, 4); })
+#define vld1_p16(__a) __extension__ ({ \
+ (poly16x4_t)__builtin_neon_vld1_v(__a, 5); })
+
+#define vld1q_dup_u8(__a) __extension__ ({ \
+ (uint8x16_t)__builtin_neon_vld1q_dup_v(__a, 48); })
+#define vld1q_dup_u16(__a) __extension__ ({ \
+ (uint16x8_t)__builtin_neon_vld1q_dup_v(__a, 49); })
+#define vld1q_dup_u32(__a) __extension__ ({ \
+ (uint32x4_t)__builtin_neon_vld1q_dup_v(__a, 50); })
+#define vld1q_dup_u64(__a) __extension__ ({ \
+ (uint64x2_t)__builtin_neon_vld1q_dup_v(__a, 51); })
+#define vld1q_dup_s8(__a) __extension__ ({ \
+ (int8x16_t)__builtin_neon_vld1q_dup_v(__a, 32); })
+#define vld1q_dup_s16(__a) __extension__ ({ \
+ (int16x8_t)__builtin_neon_vld1q_dup_v(__a, 33); })
+#define vld1q_dup_s32(__a) __extension__ ({ \
+ (int32x4_t)__builtin_neon_vld1q_dup_v(__a, 34); })
+#define vld1q_dup_s64(__a) __extension__ ({ \
+ (int64x2_t)__builtin_neon_vld1q_dup_v(__a, 35); })
+#define vld1q_dup_f16(__a) __extension__ ({ \
+ (float16x8_t)__builtin_neon_vld1q_dup_v(__a, 39); })
+#define vld1q_dup_f32(__a) __extension__ ({ \
+ (float32x4_t)__builtin_neon_vld1q_dup_v(__a, 40); })
+#define vld1q_dup_p8(__a) __extension__ ({ \
+ (poly8x16_t)__builtin_neon_vld1q_dup_v(__a, 36); })
+#define vld1q_dup_p16(__a) __extension__ ({ \
+ (poly16x8_t)__builtin_neon_vld1q_dup_v(__a, 37); })
+#define vld1_dup_u8(__a) __extension__ ({ \
+ (uint8x8_t)__builtin_neon_vld1_dup_v(__a, 16); })
+#define vld1_dup_u16(__a) __extension__ ({ \
+ (uint16x4_t)__builtin_neon_vld1_dup_v(__a, 17); })
+#define vld1_dup_u32(__a) __extension__ ({ \
+ (uint32x2_t)__builtin_neon_vld1_dup_v(__a, 18); })
+#define vld1_dup_u64(__a) __extension__ ({ \
+ (uint64x1_t)__builtin_neon_vld1_dup_v(__a, 19); })
+#define vld1_dup_s8(__a) __extension__ ({ \
+ (int8x8_t)__builtin_neon_vld1_dup_v(__a, 0); })
+#define vld1_dup_s16(__a) __extension__ ({ \
+ (int16x4_t)__builtin_neon_vld1_dup_v(__a, 1); })
+#define vld1_dup_s32(__a) __extension__ ({ \
+ (int32x2_t)__builtin_neon_vld1_dup_v(__a, 2); })
+#define vld1_dup_s64(__a) __extension__ ({ \
+ (int64x1_t)__builtin_neon_vld1_dup_v(__a, 3); })
+#define vld1_dup_f16(__a) __extension__ ({ \
+ (float16x4_t)__builtin_neon_vld1_dup_v(__a, 7); })
+#define vld1_dup_f32(__a) __extension__ ({ \
+ (float32x2_t)__builtin_neon_vld1_dup_v(__a, 8); })
+#define vld1_dup_p8(__a) __extension__ ({ \
+ (poly8x8_t)__builtin_neon_vld1_dup_v(__a, 4); })
+#define vld1_dup_p16(__a) __extension__ ({ \
+ (poly16x4_t)__builtin_neon_vld1_dup_v(__a, 5); })
+
+#define vld1q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 48); })
+#define vld1q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 49); })
+#define vld1q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 50); })
+#define vld1q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 51); })
+#define vld1q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vld1q_lane_v(__a, __b, __c, 32); })
+#define vld1q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 33); })
+#define vld1q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 34); })
+#define vld1q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 35); })
+#define vld1q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8_t __b = (b); \
+ (float16x8_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 39); })
+#define vld1q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4_t __b = (b); \
+ (float32x4_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 40); })
+#define vld1q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16_t __b = (b); \
+ (poly8x16_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 36); })
+#define vld1q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8_t __b = (b); \
+ (poly16x8_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 37); })
+#define vld1_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 16); })
+#define vld1_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 17); })
+#define vld1_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 18); })
+#define vld1_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 19); })
+#define vld1_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vld1_lane_v(__a, __b, __c, 0); })
+#define vld1_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 1); })
+#define vld1_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 2); })
+#define vld1_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 3); })
+#define vld1_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4_t __b = (b); \
+ (float16x4_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 7); })
+#define vld1_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2_t __b = (b); \
+ (float32x2_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 8); })
+#define vld1_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8_t __b = (b); \
+ (poly8x8_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 4); })
+#define vld1_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4_t __b = (b); \
+ (poly16x4_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 5); })
+
+#define vld2q_u8(__a) __extension__ ({ \
+ uint8x16x2_t r; __builtin_neon_vld2q_v(&r, __a, 48); r; })
+#define vld2q_u16(__a) __extension__ ({ \
+ uint16x8x2_t r; __builtin_neon_vld2q_v(&r, __a, 49); r; })
+#define vld2q_u32(__a) __extension__ ({ \
+ uint32x4x2_t r; __builtin_neon_vld2q_v(&r, __a, 50); r; })
+#define vld2q_s8(__a) __extension__ ({ \
+ int8x16x2_t r; __builtin_neon_vld2q_v(&r, __a, 32); r; })
+#define vld2q_s16(__a) __extension__ ({ \
+ int16x8x2_t r; __builtin_neon_vld2q_v(&r, __a, 33); r; })
+#define vld2q_s32(__a) __extension__ ({ \
+ int32x4x2_t r; __builtin_neon_vld2q_v(&r, __a, 34); r; })
+#define vld2q_f16(__a) __extension__ ({ \
+ float16x8x2_t r; __builtin_neon_vld2q_v(&r, __a, 39); r; })
+#define vld2q_f32(__a) __extension__ ({ \
+ float32x4x2_t r; __builtin_neon_vld2q_v(&r, __a, 40); r; })
+#define vld2q_p8(__a) __extension__ ({ \
+ poly8x16x2_t r; __builtin_neon_vld2q_v(&r, __a, 36); r; })
+#define vld2q_p16(__a) __extension__ ({ \
+ poly16x8x2_t r; __builtin_neon_vld2q_v(&r, __a, 37); r; })
+#define vld2_u8(__a) __extension__ ({ \
+ uint8x8x2_t r; __builtin_neon_vld2_v(&r, __a, 16); r; })
+#define vld2_u16(__a) __extension__ ({ \
+ uint16x4x2_t r; __builtin_neon_vld2_v(&r, __a, 17); r; })
+#define vld2_u32(__a) __extension__ ({ \
+ uint32x2x2_t r; __builtin_neon_vld2_v(&r, __a, 18); r; })
+#define vld2_u64(__a) __extension__ ({ \
+ uint64x1x2_t r; __builtin_neon_vld2_v(&r, __a, 19); r; })
+#define vld2_s8(__a) __extension__ ({ \
+ int8x8x2_t r; __builtin_neon_vld2_v(&r, __a, 0); r; })
+#define vld2_s16(__a) __extension__ ({ \
+ int16x4x2_t r; __builtin_neon_vld2_v(&r, __a, 1); r; })
+#define vld2_s32(__a) __extension__ ({ \
+ int32x2x2_t r; __builtin_neon_vld2_v(&r, __a, 2); r; })
+#define vld2_s64(__a) __extension__ ({ \
+ int64x1x2_t r; __builtin_neon_vld2_v(&r, __a, 3); r; })
+#define vld2_f16(__a) __extension__ ({ \
+ float16x4x2_t r; __builtin_neon_vld2_v(&r, __a, 7); r; })
+#define vld2_f32(__a) __extension__ ({ \
+ float32x2x2_t r; __builtin_neon_vld2_v(&r, __a, 8); r; })
+#define vld2_p8(__a) __extension__ ({ \
+ poly8x8x2_t r; __builtin_neon_vld2_v(&r, __a, 4); r; })
+#define vld2_p16(__a) __extension__ ({ \
+ poly16x4x2_t r; __builtin_neon_vld2_v(&r, __a, 5); r; })
+
+#define vld2_dup_u8(__a) __extension__ ({ \
+ uint8x8x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 16); r; })
+#define vld2_dup_u16(__a) __extension__ ({ \
+ uint16x4x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 17); r; })
+#define vld2_dup_u32(__a) __extension__ ({ \
+ uint32x2x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 18); r; })
+#define vld2_dup_u64(__a) __extension__ ({ \
+ uint64x1x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 19); r; })
+#define vld2_dup_s8(__a) __extension__ ({ \
+ int8x8x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 0); r; })
+#define vld2_dup_s16(__a) __extension__ ({ \
+ int16x4x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 1); r; })
+#define vld2_dup_s32(__a) __extension__ ({ \
+ int32x2x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 2); r; })
+#define vld2_dup_s64(__a) __extension__ ({ \
+ int64x1x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 3); r; })
+#define vld2_dup_f16(__a) __extension__ ({ \
+ float16x4x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 7); r; })
+#define vld2_dup_f32(__a) __extension__ ({ \
+ float32x2x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 8); r; })
+#define vld2_dup_p8(__a) __extension__ ({ \
+ poly8x8x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 4); r; })
+#define vld2_dup_p16(__a) __extension__ ({ \
+ poly16x4x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 5); r; })
+
+#define vld2q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8x2_t __b = (b); \
+ uint16x8x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 49); r; })
+#define vld2q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4x2_t __b = (b); \
+ uint32x4x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 50); r; })
+#define vld2q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8x2_t __b = (b); \
+ int16x8x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 33); r; })
+#define vld2q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4x2_t __b = (b); \
+ int32x4x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 34); r; })
+#define vld2q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8x2_t __b = (b); \
+ float16x8x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 39); r; })
+#define vld2q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4x2_t __b = (b); \
+ float32x4x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 40); r; })
+#define vld2q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8x2_t __b = (b); \
+ poly16x8x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 37); r; })
+#define vld2_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8x2_t __b = (b); \
+ uint8x8x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 16); r; })
+#define vld2_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4x2_t __b = (b); \
+ uint16x4x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 17); r; })
+#define vld2_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2x2_t __b = (b); \
+ uint32x2x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 18); r; })
+#define vld2_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8x2_t __b = (b); \
+ int8x8x2_t r; __builtin_neon_vld2_lane_v(&r, __a, __b.val[0], __b.val[1], __c, 0); r; })
+#define vld2_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4x2_t __b = (b); \
+ int16x4x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 1); r; })
+#define vld2_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2x2_t __b = (b); \
+ int32x2x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 2); r; })
+#define vld2_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4x2_t __b = (b); \
+ float16x4x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 7); r; })
+#define vld2_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2x2_t __b = (b); \
+ float32x2x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 8); r; })
+#define vld2_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8x2_t __b = (b); \
+ poly8x8x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 4); r; })
+#define vld2_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4x2_t __b = (b); \
+ poly16x4x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 5); r; })
+
+#define vld3q_u8(__a) __extension__ ({ \
+ uint8x16x3_t r; __builtin_neon_vld3q_v(&r, __a, 48); r; })
+#define vld3q_u16(__a) __extension__ ({ \
+ uint16x8x3_t r; __builtin_neon_vld3q_v(&r, __a, 49); r; })
+#define vld3q_u32(__a) __extension__ ({ \
+ uint32x4x3_t r; __builtin_neon_vld3q_v(&r, __a, 50); r; })
+#define vld3q_s8(__a) __extension__ ({ \
+ int8x16x3_t r; __builtin_neon_vld3q_v(&r, __a, 32); r; })
+#define vld3q_s16(__a) __extension__ ({ \
+ int16x8x3_t r; __builtin_neon_vld3q_v(&r, __a, 33); r; })
+#define vld3q_s32(__a) __extension__ ({ \
+ int32x4x3_t r; __builtin_neon_vld3q_v(&r, __a, 34); r; })
+#define vld3q_f16(__a) __extension__ ({ \
+ float16x8x3_t r; __builtin_neon_vld3q_v(&r, __a, 39); r; })
+#define vld3q_f32(__a) __extension__ ({ \
+ float32x4x3_t r; __builtin_neon_vld3q_v(&r, __a, 40); r; })
+#define vld3q_p8(__a) __extension__ ({ \
+ poly8x16x3_t r; __builtin_neon_vld3q_v(&r, __a, 36); r; })
+#define vld3q_p16(__a) __extension__ ({ \
+ poly16x8x3_t r; __builtin_neon_vld3q_v(&r, __a, 37); r; })
+#define vld3_u8(__a) __extension__ ({ \
+ uint8x8x3_t r; __builtin_neon_vld3_v(&r, __a, 16); r; })
+#define vld3_u16(__a) __extension__ ({ \
+ uint16x4x3_t r; __builtin_neon_vld3_v(&r, __a, 17); r; })
+#define vld3_u32(__a) __extension__ ({ \
+ uint32x2x3_t r; __builtin_neon_vld3_v(&r, __a, 18); r; })
+#define vld3_u64(__a) __extension__ ({ \
+ uint64x1x3_t r; __builtin_neon_vld3_v(&r, __a, 19); r; })
+#define vld3_s8(__a) __extension__ ({ \
+ int8x8x3_t r; __builtin_neon_vld3_v(&r, __a, 0); r; })
+#define vld3_s16(__a) __extension__ ({ \
+ int16x4x3_t r; __builtin_neon_vld3_v(&r, __a, 1); r; })
+#define vld3_s32(__a) __extension__ ({ \
+ int32x2x3_t r; __builtin_neon_vld3_v(&r, __a, 2); r; })
+#define vld3_s64(__a) __extension__ ({ \
+ int64x1x3_t r; __builtin_neon_vld3_v(&r, __a, 3); r; })
+#define vld3_f16(__a) __extension__ ({ \
+ float16x4x3_t r; __builtin_neon_vld3_v(&r, __a, 7); r; })
+#define vld3_f32(__a) __extension__ ({ \
+ float32x2x3_t r; __builtin_neon_vld3_v(&r, __a, 8); r; })
+#define vld3_p8(__a) __extension__ ({ \
+ poly8x8x3_t r; __builtin_neon_vld3_v(&r, __a, 4); r; })
+#define vld3_p16(__a) __extension__ ({ \
+ poly16x4x3_t r; __builtin_neon_vld3_v(&r, __a, 5); r; })
+
+#define vld3_dup_u8(__a) __extension__ ({ \
+ uint8x8x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 16); r; })
+#define vld3_dup_u16(__a) __extension__ ({ \
+ uint16x4x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 17); r; })
+#define vld3_dup_u32(__a) __extension__ ({ \
+ uint32x2x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 18); r; })
+#define vld3_dup_u64(__a) __extension__ ({ \
+ uint64x1x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 19); r; })
+#define vld3_dup_s8(__a) __extension__ ({ \
+ int8x8x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 0); r; })
+#define vld3_dup_s16(__a) __extension__ ({ \
+ int16x4x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 1); r; })
+#define vld3_dup_s32(__a) __extension__ ({ \
+ int32x2x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 2); r; })
+#define vld3_dup_s64(__a) __extension__ ({ \
+ int64x1x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 3); r; })
+#define vld3_dup_f16(__a) __extension__ ({ \
+ float16x4x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 7); r; })
+#define vld3_dup_f32(__a) __extension__ ({ \
+ float32x2x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 8); r; })
+#define vld3_dup_p8(__a) __extension__ ({ \
+ poly8x8x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 4); r; })
+#define vld3_dup_p16(__a) __extension__ ({ \
+ poly16x4x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 5); r; })
+
+#define vld3q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8x3_t __b = (b); \
+ uint16x8x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 49); r; })
+#define vld3q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4x3_t __b = (b); \
+ uint32x4x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 50); r; })
+#define vld3q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8x3_t __b = (b); \
+ int16x8x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 33); r; })
+#define vld3q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4x3_t __b = (b); \
+ int32x4x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 34); r; })
+#define vld3q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8x3_t __b = (b); \
+ float16x8x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 39); r; })
+#define vld3q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4x3_t __b = (b); \
+ float32x4x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 40); r; })
+#define vld3q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8x3_t __b = (b); \
+ poly16x8x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 37); r; })
+#define vld3_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8x3_t __b = (b); \
+ uint8x8x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 16); r; })
+#define vld3_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4x3_t __b = (b); \
+ uint16x4x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 17); r; })
+#define vld3_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2x3_t __b = (b); \
+ uint32x2x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 18); r; })
+#define vld3_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8x3_t __b = (b); \
+ int8x8x3_t r; __builtin_neon_vld3_lane_v(&r, __a, __b.val[0], __b.val[1], __b.val[2], __c, 0); r; })
+#define vld3_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4x3_t __b = (b); \
+ int16x4x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 1); r; })
+#define vld3_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2x3_t __b = (b); \
+ int32x2x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 2); r; })
+#define vld3_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4x3_t __b = (b); \
+ float16x4x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 7); r; })
+#define vld3_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2x3_t __b = (b); \
+ float32x2x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 8); r; })
+#define vld3_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8x3_t __b = (b); \
+ poly8x8x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 4); r; })
+#define vld3_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4x3_t __b = (b); \
+ poly16x4x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 5); r; })
+
+#define vld4q_u8(__a) __extension__ ({ \
+ uint8x16x4_t r; __builtin_neon_vld4q_v(&r, __a, 48); r; })
+#define vld4q_u16(__a) __extension__ ({ \
+ uint16x8x4_t r; __builtin_neon_vld4q_v(&r, __a, 49); r; })
+#define vld4q_u32(__a) __extension__ ({ \
+ uint32x4x4_t r; __builtin_neon_vld4q_v(&r, __a, 50); r; })
+#define vld4q_s8(__a) __extension__ ({ \
+ int8x16x4_t r; __builtin_neon_vld4q_v(&r, __a, 32); r; })
+#define vld4q_s16(__a) __extension__ ({ \
+ int16x8x4_t r; __builtin_neon_vld4q_v(&r, __a, 33); r; })
+#define vld4q_s32(__a) __extension__ ({ \
+ int32x4x4_t r; __builtin_neon_vld4q_v(&r, __a, 34); r; })
+#define vld4q_f16(__a) __extension__ ({ \
+ float16x8x4_t r; __builtin_neon_vld4q_v(&r, __a, 39); r; })
+#define vld4q_f32(__a) __extension__ ({ \
+ float32x4x4_t r; __builtin_neon_vld4q_v(&r, __a, 40); r; })
+#define vld4q_p8(__a) __extension__ ({ \
+ poly8x16x4_t r; __builtin_neon_vld4q_v(&r, __a, 36); r; })
+#define vld4q_p16(__a) __extension__ ({ \
+ poly16x8x4_t r; __builtin_neon_vld4q_v(&r, __a, 37); r; })
+#define vld4_u8(__a) __extension__ ({ \
+ uint8x8x4_t r; __builtin_neon_vld4_v(&r, __a, 16); r; })
+#define vld4_u16(__a) __extension__ ({ \
+ uint16x4x4_t r; __builtin_neon_vld4_v(&r, __a, 17); r; })
+#define vld4_u32(__a) __extension__ ({ \
+ uint32x2x4_t r; __builtin_neon_vld4_v(&r, __a, 18); r; })
+#define vld4_u64(__a) __extension__ ({ \
+ uint64x1x4_t r; __builtin_neon_vld4_v(&r, __a, 19); r; })
+#define vld4_s8(__a) __extension__ ({ \
+ int8x8x4_t r; __builtin_neon_vld4_v(&r, __a, 0); r; })
+#define vld4_s16(__a) __extension__ ({ \
+ int16x4x4_t r; __builtin_neon_vld4_v(&r, __a, 1); r; })
+#define vld4_s32(__a) __extension__ ({ \
+ int32x2x4_t r; __builtin_neon_vld4_v(&r, __a, 2); r; })
+#define vld4_s64(__a) __extension__ ({ \
+ int64x1x4_t r; __builtin_neon_vld4_v(&r, __a, 3); r; })
+#define vld4_f16(__a) __extension__ ({ \
+ float16x4x4_t r; __builtin_neon_vld4_v(&r, __a, 7); r; })
+#define vld4_f32(__a) __extension__ ({ \
+ float32x2x4_t r; __builtin_neon_vld4_v(&r, __a, 8); r; })
+#define vld4_p8(__a) __extension__ ({ \
+ poly8x8x4_t r; __builtin_neon_vld4_v(&r, __a, 4); r; })
+#define vld4_p16(__a) __extension__ ({ \
+ poly16x4x4_t r; __builtin_neon_vld4_v(&r, __a, 5); r; })
+
+#define vld4_dup_u8(__a) __extension__ ({ \
+ uint8x8x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 16); r; })
+#define vld4_dup_u16(__a) __extension__ ({ \
+ uint16x4x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 17); r; })
+#define vld4_dup_u32(__a) __extension__ ({ \
+ uint32x2x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 18); r; })
+#define vld4_dup_u64(__a) __extension__ ({ \
+ uint64x1x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 19); r; })
+#define vld4_dup_s8(__a) __extension__ ({ \
+ int8x8x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 0); r; })
+#define vld4_dup_s16(__a) __extension__ ({ \
+ int16x4x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 1); r; })
+#define vld4_dup_s32(__a) __extension__ ({ \
+ int32x2x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 2); r; })
+#define vld4_dup_s64(__a) __extension__ ({ \
+ int64x1x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 3); r; })
+#define vld4_dup_f16(__a) __extension__ ({ \
+ float16x4x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 7); r; })
+#define vld4_dup_f32(__a) __extension__ ({ \
+ float32x2x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 8); r; })
+#define vld4_dup_p8(__a) __extension__ ({ \
+ poly8x8x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 4); r; })
+#define vld4_dup_p16(__a) __extension__ ({ \
+ poly16x4x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 5); r; })
+
+#define vld4q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8x4_t __b = (b); \
+ uint16x8x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 49); r; })
+#define vld4q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4x4_t __b = (b); \
+ uint32x4x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 50); r; })
+#define vld4q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8x4_t __b = (b); \
+ int16x8x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 33); r; })
+#define vld4q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4x4_t __b = (b); \
+ int32x4x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 34); r; })
+#define vld4q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8x4_t __b = (b); \
+ float16x8x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 39); r; })
+#define vld4q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4x4_t __b = (b); \
+ float32x4x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 40); r; })
+#define vld4q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8x4_t __b = (b); \
+ poly16x8x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 37); r; })
+#define vld4_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8x4_t __b = (b); \
+ uint8x8x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 16); r; })
+#define vld4_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4x4_t __b = (b); \
+ uint16x4x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 17); r; })
+#define vld4_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2x4_t __b = (b); \
+ uint32x2x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 18); r; })
+#define vld4_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8x4_t __b = (b); \
+ int8x8x4_t r; __builtin_neon_vld4_lane_v(&r, __a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 0); r; })
+#define vld4_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4x4_t __b = (b); \
+ int16x4x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 1); r; })
+#define vld4_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2x4_t __b = (b); \
+ int32x2x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 2); r; })
+#define vld4_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4x4_t __b = (b); \
+ float16x4x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 7); r; })
+#define vld4_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2x4_t __b = (b); \
+ float32x2x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 8); r; })
+#define vld4_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8x4_t __b = (b); \
+ poly8x8x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 4); r; })
+#define vld4_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4x4_t __b = (b); \
+ poly16x4x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 5); r; })
+
+__ai int8x8_t vmax_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vmax_v(__a, __b, 0); }
+__ai int16x4_t vmax_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vmax_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vmax_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vmax_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vmax_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai float32x2_t vmax_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai int8x16_t vmaxq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vmaxq_v(__a, __b, 32); }
+__ai int16x8_t vmaxq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vmaxq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vmaxq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vmaxq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vmaxq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai float32x4_t vmaxq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+
+__ai int8x8_t vmin_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vmin_v(__a, __b, 0); }
+__ai int16x4_t vmin_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vmin_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vmin_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vmin_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vmin_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai float32x2_t vmin_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai int8x16_t vminq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vminq_v(__a, __b, 32); }
+__ai int16x8_t vminq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vminq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vminq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vminq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vminq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai float32x4_t vminq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+
+__ai int8x8_t vmla_s8(int8x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return __a + (__b * __c); }
+__ai int16x4_t vmla_s16(int16x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return __a + (__b * __c); }
+__ai int32x2_t vmla_s32(int32x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return __a + (__b * __c); }
+__ai float32x2_t vmla_f32(float32x2_t __a, float32x2_t __b, float32x2_t __c) {
+ return __a + (__b * __c); }
+__ai uint8x8_t vmla_u8(uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return __a + (__b * __c); }
+__ai uint16x4_t vmla_u16(uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return __a + (__b * __c); }
+__ai uint32x2_t vmla_u32(uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return __a + (__b * __c); }
+__ai int8x16_t vmlaq_s8(int8x16_t __a, int8x16_t __b, int8x16_t __c) {
+ return __a + (__b * __c); }
+__ai int16x8_t vmlaq_s16(int16x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return __a + (__b * __c); }
+__ai int32x4_t vmlaq_s32(int32x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return __a + (__b * __c); }
+__ai float32x4_t vmlaq_f32(float32x4_t __a, float32x4_t __b, float32x4_t __c) {
+ return __a + (__b * __c); }
+__ai uint8x16_t vmlaq_u8(uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return __a + (__b * __c); }
+__ai uint16x8_t vmlaq_u16(uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return __a + (__b * __c); }
+__ai uint32x4_t vmlaq_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return __a + (__b * __c); }
+
+__ai int16x8_t vmlal_s8(int16x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return __a + vmull_s8(__b, __c); }
+__ai int32x4_t vmlal_s16(int32x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return __a + vmull_s16(__b, __c); }
+__ai int64x2_t vmlal_s32(int64x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return __a + vmull_s32(__b, __c); }
+__ai uint16x8_t vmlal_u8(uint16x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return __a + vmull_u8(__b, __c); }
+__ai uint32x4_t vmlal_u16(uint32x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return __a + vmull_u16(__b, __c); }
+__ai uint64x2_t vmlal_u32(uint64x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return __a + vmull_u32(__b, __c); }
+
+#define vmlal_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x4_t __c = (c); \
+ __a + vmull_s16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x2_t __c = (c); \
+ __a + vmull_s32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlal_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x4_t __b = (b); uint16x4_t __c = (c); \
+ __a + vmull_u16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x2_t __b = (b); uint32x2_t __c = (c); \
+ __a + vmull_u32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vmlal_n_s16(int32x4_t __a, int16x4_t __b, int16_t __c) {
+ return __a + vmull_s16(__b, (int16x4_t){ __c, __c, __c, __c }); }
+__ai int64x2_t vmlal_n_s32(int64x2_t __a, int32x2_t __b, int32_t __c) {
+ return __a + vmull_s32(__b, (int32x2_t){ __c, __c }); }
+__ai uint32x4_t vmlal_n_u16(uint32x4_t __a, uint16x4_t __b, uint16_t __c) {
+ return __a + vmull_u16(__b, (uint16x4_t){ __c, __c, __c, __c }); }
+__ai uint64x2_t vmlal_n_u32(uint64x2_t __a, uint32x2_t __b, uint32_t __c) {
+ return __a + vmull_u32(__b, (uint32x2_t){ __c, __c }); }
+
+#define vmla_lane_s16(a, b, c, __d) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); int16x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmla_lane_s32(a, b, c, __d) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); int32x2_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmla_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); uint16x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmla_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); uint32x2_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmla_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x2_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlaq_lane_s16(a, b, c, __d) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); int16x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlaq_lane_s32(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); int32x2_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlaq_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); uint16x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlaq_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); uint32x2_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlaq_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x2_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+
+__ai int16x4_t vmla_n_s16(int16x4_t __a, int16x4_t __b, int16_t __c) {
+ return __a + (__b * (int16x4_t){ __c, __c, __c, __c }); }
+__ai int32x2_t vmla_n_s32(int32x2_t __a, int32x2_t __b, int32_t __c) {
+ return __a + (__b * (int32x2_t){ __c, __c }); }
+__ai uint16x4_t vmla_n_u16(uint16x4_t __a, uint16x4_t __b, uint16_t __c) {
+ return __a + (__b * (uint16x4_t){ __c, __c, __c, __c }); }
+__ai uint32x2_t vmla_n_u32(uint32x2_t __a, uint32x2_t __b, uint32_t __c) {
+ return __a + (__b * (uint32x2_t){ __c, __c }); }
+__ai float32x2_t vmla_n_f32(float32x2_t __a, float32x2_t __b, float32_t __c) {
+ return __a + (__b * (float32x2_t){ __c, __c }); }
+__ai int16x8_t vmlaq_n_s16(int16x8_t __a, int16x8_t __b, int16_t __c) {
+ return __a + (__b * (int16x8_t){ __c, __c, __c, __c, __c, __c, __c, __c }); }
+__ai int32x4_t vmlaq_n_s32(int32x4_t __a, int32x4_t __b, int32_t __c) {
+ return __a + (__b * (int32x4_t){ __c, __c, __c, __c }); }
+__ai uint16x8_t vmlaq_n_u16(uint16x8_t __a, uint16x8_t __b, uint16_t __c) {
+ return __a + (__b * (uint16x8_t){ __c, __c, __c, __c, __c, __c, __c, __c }); }
+__ai uint32x4_t vmlaq_n_u32(uint32x4_t __a, uint32x4_t __b, uint32_t __c) {
+ return __a + (__b * (uint32x4_t){ __c, __c, __c, __c }); }
+__ai float32x4_t vmlaq_n_f32(float32x4_t __a, float32x4_t __b, float32_t __c) {
+ return __a + (__b * (float32x4_t){ __c, __c, __c, __c }); }
+
+__ai int8x8_t vmls_s8(int8x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return __a - (__b * __c); }
+__ai int16x4_t vmls_s16(int16x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return __a - (__b * __c); }
+__ai int32x2_t vmls_s32(int32x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return __a - (__b * __c); }
+__ai float32x2_t vmls_f32(float32x2_t __a, float32x2_t __b, float32x2_t __c) {
+ return __a - (__b * __c); }
+__ai uint8x8_t vmls_u8(uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return __a - (__b * __c); }
+__ai uint16x4_t vmls_u16(uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return __a - (__b * __c); }
+__ai uint32x2_t vmls_u32(uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return __a - (__b * __c); }
+__ai int8x16_t vmlsq_s8(int8x16_t __a, int8x16_t __b, int8x16_t __c) {
+ return __a - (__b * __c); }
+__ai int16x8_t vmlsq_s16(int16x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return __a - (__b * __c); }
+__ai int32x4_t vmlsq_s32(int32x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return __a - (__b * __c); }
+__ai float32x4_t vmlsq_f32(float32x4_t __a, float32x4_t __b, float32x4_t __c) {
+ return __a - (__b * __c); }
+__ai uint8x16_t vmlsq_u8(uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return __a - (__b * __c); }
+__ai uint16x8_t vmlsq_u16(uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return __a - (__b * __c); }
+__ai uint32x4_t vmlsq_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return __a - (__b * __c); }
+
+__ai int16x8_t vmlsl_s8(int16x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return __a - vmull_s8(__b, __c); }
+__ai int32x4_t vmlsl_s16(int32x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return __a - vmull_s16(__b, __c); }
+__ai int64x2_t vmlsl_s32(int64x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return __a - vmull_s32(__b, __c); }
+__ai uint16x8_t vmlsl_u8(uint16x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return __a - vmull_u8(__b, __c); }
+__ai uint32x4_t vmlsl_u16(uint32x4_t __a, uint16x4_t __b, uint16x4_t __c) {
+ return __a - vmull_u16(__b, __c); }
+__ai uint64x2_t vmlsl_u32(uint64x2_t __a, uint32x2_t __b, uint32x2_t __c) {
+ return __a - vmull_u32(__b, __c); }
+
+#define vmlsl_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x4_t __c = (c); \
+ __a - vmull_s16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x2_t __c = (c); \
+ __a - vmull_s32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlsl_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x4_t __b = (b); uint16x4_t __c = (c); \
+ __a - vmull_u16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x2_t __b = (b); uint32x2_t __c = (c); \
+ __a - vmull_u32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vmlsl_n_s16(int32x4_t __a, int16x4_t __b, int16_t __c) {
+ return __a - vmull_s16(__b, (int16x4_t){ __c, __c, __c, __c }); }
+__ai int64x2_t vmlsl_n_s32(int64x2_t __a, int32x2_t __b, int32_t __c) {
+ return __a - vmull_s32(__b, (int32x2_t){ __c, __c }); }
+__ai uint32x4_t vmlsl_n_u16(uint32x4_t __a, uint16x4_t __b, uint16_t __c) {
+ return __a - vmull_u16(__b, (uint16x4_t){ __c, __c, __c, __c }); }
+__ai uint64x2_t vmlsl_n_u32(uint64x2_t __a, uint32x2_t __b, uint32_t __c) {
+ return __a - vmull_u32(__b, (uint32x2_t){ __c, __c }); }
+
+#define vmls_lane_s16(a, b, c, __d) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); int16x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmls_lane_s32(a, b, c, __d) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); int32x2_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmls_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); uint16x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmls_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); uint32x2_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmls_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x2_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlsq_lane_s16(a, b, c, __d) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); int16x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlsq_lane_s32(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); int32x2_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsq_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); uint16x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlsq_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); uint32x2_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsq_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x2_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+
+__ai int16x4_t vmls_n_s16(int16x4_t __a, int16x4_t __b, int16_t __c) {
+ return __a - (__b * (int16x4_t){ __c, __c, __c, __c }); }
+__ai int32x2_t vmls_n_s32(int32x2_t __a, int32x2_t __b, int32_t __c) {
+ return __a - (__b * (int32x2_t){ __c, __c }); }
+__ai uint16x4_t vmls_n_u16(uint16x4_t __a, uint16x4_t __b, uint16_t __c) {
+ return __a - (__b * (uint16x4_t){ __c, __c, __c, __c }); }
+__ai uint32x2_t vmls_n_u32(uint32x2_t __a, uint32x2_t __b, uint32_t __c) {
+ return __a - (__b * (uint32x2_t){ __c, __c }); }
+__ai float32x2_t vmls_n_f32(float32x2_t __a, float32x2_t __b, float32_t __c) {
+ return __a - (__b * (float32x2_t){ __c, __c }); }
+__ai int16x8_t vmlsq_n_s16(int16x8_t __a, int16x8_t __b, int16_t __c) {
+ return __a - (__b * (int16x8_t){ __c, __c, __c, __c, __c, __c, __c, __c }); }
+__ai int32x4_t vmlsq_n_s32(int32x4_t __a, int32x4_t __b, int32_t __c) {
+ return __a - (__b * (int32x4_t){ __c, __c, __c, __c }); }
+__ai uint16x8_t vmlsq_n_u16(uint16x8_t __a, uint16x8_t __b, uint16_t __c) {
+ return __a - (__b * (uint16x8_t){ __c, __c, __c, __c, __c, __c, __c, __c }); }
+__ai uint32x4_t vmlsq_n_u32(uint32x4_t __a, uint32x4_t __b, uint32_t __c) {
+ return __a - (__b * (uint32x4_t){ __c, __c, __c, __c }); }
+__ai float32x4_t vmlsq_n_f32(float32x4_t __a, float32x4_t __b, float32_t __c) {
+ return __a - (__b * (float32x4_t){ __c, __c, __c, __c }); }
+
+__ai int8x8_t vmovn_s16(int16x8_t __a) {
+ return (int8x8_t)__builtin_neon_vmovn_v((int8x16_t)__a, 0); }
+__ai int16x4_t vmovn_s32(int32x4_t __a) {
+ return (int16x4_t)__builtin_neon_vmovn_v((int8x16_t)__a, 1); }
+__ai int32x2_t vmovn_s64(int64x2_t __a) {
+ return (int32x2_t)__builtin_neon_vmovn_v((int8x16_t)__a, 2); }
+__ai uint8x8_t vmovn_u16(uint16x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vmovn_v((int8x16_t)__a, 16); }
+__ai uint16x4_t vmovn_u32(uint32x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vmovn_v((int8x16_t)__a, 17); }
+__ai uint32x2_t vmovn_u64(uint64x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vmovn_v((int8x16_t)__a, 18); }
+
+__ai uint8x8_t vmov_n_u8(uint8_t __a) {
+ return (uint8x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai uint16x4_t vmov_n_u16(uint16_t __a) {
+ return (uint16x4_t){ __a, __a, __a, __a }; }
+__ai uint32x2_t vmov_n_u32(uint32_t __a) {
+ return (uint32x2_t){ __a, __a }; }
+__ai int8x8_t vmov_n_s8(int8_t __a) {
+ return (int8x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai int16x4_t vmov_n_s16(int16_t __a) {
+ return (int16x4_t){ __a, __a, __a, __a }; }
+__ai int32x2_t vmov_n_s32(int32_t __a) {
+ return (int32x2_t){ __a, __a }; }
+__ai poly8x8_t vmov_n_p8(poly8_t __a) {
+ return (poly8x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai poly16x4_t vmov_n_p16(poly16_t __a) {
+ return (poly16x4_t){ __a, __a, __a, __a }; }
+__ai float32x2_t vmov_n_f32(float32_t __a) {
+ return (float32x2_t){ __a, __a }; }
+__ai uint8x16_t vmovq_n_u8(uint8_t __a) {
+ return (uint8x16_t){ __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai uint16x8_t vmovq_n_u16(uint16_t __a) {
+ return (uint16x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai uint32x4_t vmovq_n_u32(uint32_t __a) {
+ return (uint32x4_t){ __a, __a, __a, __a }; }
+__ai int8x16_t vmovq_n_s8(int8_t __a) {
+ return (int8x16_t){ __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai int16x8_t vmovq_n_s16(int16_t __a) {
+ return (int16x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai int32x4_t vmovq_n_s32(int32_t __a) {
+ return (int32x4_t){ __a, __a, __a, __a }; }
+__ai poly8x16_t vmovq_n_p8(poly8_t __a) {
+ return (poly8x16_t){ __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai poly16x8_t vmovq_n_p16(poly16_t __a) {
+ return (poly16x8_t){ __a, __a, __a, __a, __a, __a, __a, __a }; }
+__ai float32x4_t vmovq_n_f32(float32_t __a) {
+ return (float32x4_t){ __a, __a, __a, __a }; }
+__ai int64x1_t vmov_n_s64(int64_t __a) {
+ return (int64x1_t){ __a }; }
+__ai uint64x1_t vmov_n_u64(uint64_t __a) {
+ return (uint64x1_t){ __a }; }
+__ai int64x2_t vmovq_n_s64(int64_t __a) {
+ return (int64x2_t){ __a, __a }; }
+__ai uint64x2_t vmovq_n_u64(uint64_t __a) {
+ return (uint64x2_t){ __a, __a }; }
+
+__ai int8x8_t vmul_s8(int8x8_t __a, int8x8_t __b) {
+ return __a * __b; }
+__ai int16x4_t vmul_s16(int16x4_t __a, int16x4_t __b) {
+ return __a * __b; }
+__ai int32x2_t vmul_s32(int32x2_t __a, int32x2_t __b) {
+ return __a * __b; }
+__ai float32x2_t vmul_f32(float32x2_t __a, float32x2_t __b) {
+ return __a * __b; }
+__ai uint8x8_t vmul_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a * __b; }
+__ai uint16x4_t vmul_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a * __b; }
+__ai uint32x2_t vmul_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a * __b; }
+__ai int8x16_t vmulq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a * __b; }
+__ai int16x8_t vmulq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a * __b; }
+__ai int32x4_t vmulq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a * __b; }
+__ai float32x4_t vmulq_f32(float32x4_t __a, float32x4_t __b) {
+ return __a * __b; }
+__ai uint8x16_t vmulq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a * __b; }
+__ai uint16x8_t vmulq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a * __b; }
+__ai uint32x4_t vmulq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a * __b; }
+
+#define vmull_lane_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ vmull_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_lane_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ vmull_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vmull_lane_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ vmull_u16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_lane_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ vmull_u32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+
+__ai int32x4_t vmull_n_s16(int16x4_t __a, int16_t __b) {
+ return (int32x4_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)(int16x4_t){ __b, __b, __b, __b }, 34); }
+__ai int64x2_t vmull_n_s32(int32x2_t __a, int32_t __b) {
+ return (int64x2_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)(int32x2_t){ __b, __b }, 35); }
+__ai uint32x4_t vmull_n_u16(uint16x4_t __a, uint16_t __b) {
+ return (uint32x4_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)(uint16x4_t){ __b, __b, __b, __b }, 50); }
+__ai uint64x2_t vmull_n_u32(uint32x2_t __a, uint32_t __b) {
+ return (uint64x2_t)__builtin_neon_vmull_v((int8x8_t)__a, (int8x8_t)(uint32x2_t){ __b, __b }, 51); }
+
+__ai poly8x8_t vmul_p8(poly8x8_t __a, poly8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vmul_v((int8x8_t)__a, (int8x8_t)__b, 4); }
+__ai poly8x16_t vmulq_p8(poly8x16_t __a, poly8x16_t __b) {
+ return (poly8x16_t)__builtin_neon_vmulq_v((int8x16_t)__a, (int8x16_t)__b, 36); }
+
+#define vmul_lane_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmul_lane_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+#define vmul_lane_f32(a, b, __c) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+#define vmul_lane_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmul_lane_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+#define vmulq_lane_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c); })
+#define vmulq_lane_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmulq_lane_f32(a, b, __c) __extension__ ({ \
+ float32x4_t __a = (a); float32x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmulq_lane_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c); })
+#define vmulq_lane_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+
+__ai int16x4_t vmul_n_s16(int16x4_t __a, int16_t __b) {
+ return __a * (int16x4_t){ __b, __b, __b, __b }; }
+__ai int32x2_t vmul_n_s32(int32x2_t __a, int32_t __b) {
+ return __a * (int32x2_t){ __b, __b }; }
+__ai float32x2_t vmul_n_f32(float32x2_t __a, float32_t __b) {
+ return __a * (float32x2_t){ __b, __b }; }
+__ai uint16x4_t vmul_n_u16(uint16x4_t __a, uint16_t __b) {
+ return __a * (uint16x4_t){ __b, __b, __b, __b }; }
+__ai uint32x2_t vmul_n_u32(uint32x2_t __a, uint32_t __b) {
+ return __a * (uint32x2_t){ __b, __b }; }
+__ai int16x8_t vmulq_n_s16(int16x8_t __a, int16_t __b) {
+ return __a * (int16x8_t){ __b, __b, __b, __b, __b, __b, __b, __b }; }
+__ai int32x4_t vmulq_n_s32(int32x4_t __a, int32_t __b) {
+ return __a * (int32x4_t){ __b, __b, __b, __b }; }
+__ai float32x4_t vmulq_n_f32(float32x4_t __a, float32_t __b) {
+ return __a * (float32x4_t){ __b, __b, __b, __b }; }
+__ai uint16x8_t vmulq_n_u16(uint16x8_t __a, uint16_t __b) {
+ return __a * (uint16x8_t){ __b, __b, __b, __b, __b, __b, __b, __b }; }
+__ai uint32x4_t vmulq_n_u32(uint32x4_t __a, uint32_t __b) {
+ return __a * (uint32x4_t){ __b, __b, __b, __b }; }
+
+__ai int8x8_t vmvn_s8(int8x8_t __a) {
+ return ~__a; }
+__ai int16x4_t vmvn_s16(int16x4_t __a) {
+ return ~__a; }
+__ai int32x2_t vmvn_s32(int32x2_t __a) {
+ return ~__a; }
+__ai uint8x8_t vmvn_u8(uint8x8_t __a) {
+ return ~__a; }
+__ai uint16x4_t vmvn_u16(uint16x4_t __a) {
+ return ~__a; }
+__ai uint32x2_t vmvn_u32(uint32x2_t __a) {
+ return ~__a; }
+__ai poly8x8_t vmvn_p8(poly8x8_t __a) {
+ return ~__a; }
+__ai int8x16_t vmvnq_s8(int8x16_t __a) {
+ return ~__a; }
+__ai int16x8_t vmvnq_s16(int16x8_t __a) {
+ return ~__a; }
+__ai int32x4_t vmvnq_s32(int32x4_t __a) {
+ return ~__a; }
+__ai uint8x16_t vmvnq_u8(uint8x16_t __a) {
+ return ~__a; }
+__ai uint16x8_t vmvnq_u16(uint16x8_t __a) {
+ return ~__a; }
+__ai uint32x4_t vmvnq_u32(uint32x4_t __a) {
+ return ~__a; }
+__ai poly8x16_t vmvnq_p8(poly8x16_t __a) {
+ return ~__a; }
+
+__ai int8x8_t vneg_s8(int8x8_t __a) {
+ return -__a; }
+__ai int16x4_t vneg_s16(int16x4_t __a) {
+ return -__a; }
+__ai int32x2_t vneg_s32(int32x2_t __a) {
+ return -__a; }
+__ai float32x2_t vneg_f32(float32x2_t __a) {
+ return -__a; }
+__ai int8x16_t vnegq_s8(int8x16_t __a) {
+ return -__a; }
+__ai int16x8_t vnegq_s16(int16x8_t __a) {
+ return -__a; }
+__ai int32x4_t vnegq_s32(int32x4_t __a) {
+ return -__a; }
+__ai float32x4_t vnegq_f32(float32x4_t __a) {
+ return -__a; }
+
+__ai int8x8_t vorn_s8(int8x8_t __a, int8x8_t __b) {
+ return __a | ~__b; }
+__ai int16x4_t vorn_s16(int16x4_t __a, int16x4_t __b) {
+ return __a | ~__b; }
+__ai int32x2_t vorn_s32(int32x2_t __a, int32x2_t __b) {
+ return __a | ~__b; }
+__ai int64x1_t vorn_s64(int64x1_t __a, int64x1_t __b) {
+ return __a | ~__b; }
+__ai uint8x8_t vorn_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a | ~__b; }
+__ai uint16x4_t vorn_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a | ~__b; }
+__ai uint32x2_t vorn_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a | ~__b; }
+__ai uint64x1_t vorn_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a | ~__b; }
+__ai int8x16_t vornq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a | ~__b; }
+__ai int16x8_t vornq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a | ~__b; }
+__ai int32x4_t vornq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a | ~__b; }
+__ai int64x2_t vornq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a | ~__b; }
+__ai uint8x16_t vornq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a | ~__b; }
+__ai uint16x8_t vornq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a | ~__b; }
+__ai uint32x4_t vornq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a | ~__b; }
+__ai uint64x2_t vornq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a | ~__b; }
+
+__ai int8x8_t vorr_s8(int8x8_t __a, int8x8_t __b) {
+ return __a | __b; }
+__ai int16x4_t vorr_s16(int16x4_t __a, int16x4_t __b) {
+ return __a | __b; }
+__ai int32x2_t vorr_s32(int32x2_t __a, int32x2_t __b) {
+ return __a | __b; }
+__ai int64x1_t vorr_s64(int64x1_t __a, int64x1_t __b) {
+ return __a | __b; }
+__ai uint8x8_t vorr_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a | __b; }
+__ai uint16x4_t vorr_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a | __b; }
+__ai uint32x2_t vorr_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a | __b; }
+__ai uint64x1_t vorr_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a | __b; }
+__ai int8x16_t vorrq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a | __b; }
+__ai int16x8_t vorrq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a | __b; }
+__ai int32x4_t vorrq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a | __b; }
+__ai int64x2_t vorrq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a | __b; }
+__ai uint8x16_t vorrq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a | __b; }
+__ai uint16x8_t vorrq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a | __b; }
+__ai uint32x4_t vorrq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a | __b; }
+__ai uint64x2_t vorrq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a | __b; }
+
+__ai int16x4_t vpadal_s8(int16x4_t __a, int8x8_t __b) {
+ return (int16x4_t)__builtin_neon_vpadal_v((int8x8_t)__a, __b, 1); }
+__ai int32x2_t vpadal_s16(int32x2_t __a, int16x4_t __b) {
+ return (int32x2_t)__builtin_neon_vpadal_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vpadal_s32(int64x1_t __a, int32x2_t __b) {
+ return (int64x1_t)__builtin_neon_vpadal_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint16x4_t vpadal_u8(uint16x4_t __a, uint8x8_t __b) {
+ return (uint16x4_t)__builtin_neon_vpadal_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vpadal_u16(uint32x2_t __a, uint16x4_t __b) {
+ return (uint32x2_t)__builtin_neon_vpadal_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vpadal_u32(uint64x1_t __a, uint32x2_t __b) {
+ return (uint64x1_t)__builtin_neon_vpadal_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int16x8_t vpadalq_s8(int16x8_t __a, int8x16_t __b) {
+ return (int16x8_t)__builtin_neon_vpadalq_v((int8x16_t)__a, __b, 33); }
+__ai int32x4_t vpadalq_s16(int32x4_t __a, int16x8_t __b) {
+ return (int32x4_t)__builtin_neon_vpadalq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vpadalq_s32(int64x2_t __a, int32x4_t __b) {
+ return (int64x2_t)__builtin_neon_vpadalq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint16x8_t vpadalq_u8(uint16x8_t __a, uint8x16_t __b) {
+ return (uint16x8_t)__builtin_neon_vpadalq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vpadalq_u16(uint32x4_t __a, uint16x8_t __b) {
+ return (uint32x4_t)__builtin_neon_vpadalq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vpadalq_u32(uint64x2_t __a, uint32x4_t __b) {
+ return (uint64x2_t)__builtin_neon_vpadalq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai int8x8_t vpadd_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vpadd_v(__a, __b, 0); }
+__ai int16x4_t vpadd_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vpadd_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vpadd_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vpadd_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vpadd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vpadd_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vpadd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vpadd_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vpadd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vpadd_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai float32x2_t vpadd_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vpadd_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+
+__ai int16x4_t vpaddl_s8(int8x8_t __a) {
+ return (int16x4_t)__builtin_neon_vpaddl_v(__a, 1); }
+__ai int32x2_t vpaddl_s16(int16x4_t __a) {
+ return (int32x2_t)__builtin_neon_vpaddl_v((int8x8_t)__a, 2); }
+__ai int64x1_t vpaddl_s32(int32x2_t __a) {
+ return (int64x1_t)__builtin_neon_vpaddl_v((int8x8_t)__a, 3); }
+__ai uint16x4_t vpaddl_u8(uint8x8_t __a) {
+ return (uint16x4_t)__builtin_neon_vpaddl_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vpaddl_u16(uint16x4_t __a) {
+ return (uint32x2_t)__builtin_neon_vpaddl_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vpaddl_u32(uint32x2_t __a) {
+ return (uint64x1_t)__builtin_neon_vpaddl_v((int8x8_t)__a, 19); }
+__ai int16x8_t vpaddlq_s8(int8x16_t __a) {
+ return (int16x8_t)__builtin_neon_vpaddlq_v(__a, 33); }
+__ai int32x4_t vpaddlq_s16(int16x8_t __a) {
+ return (int32x4_t)__builtin_neon_vpaddlq_v((int8x16_t)__a, 34); }
+__ai int64x2_t vpaddlq_s32(int32x4_t __a) {
+ return (int64x2_t)__builtin_neon_vpaddlq_v((int8x16_t)__a, 35); }
+__ai uint16x8_t vpaddlq_u8(uint8x16_t __a) {
+ return (uint16x8_t)__builtin_neon_vpaddlq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vpaddlq_u16(uint16x8_t __a) {
+ return (uint32x4_t)__builtin_neon_vpaddlq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vpaddlq_u32(uint32x4_t __a) {
+ return (uint64x2_t)__builtin_neon_vpaddlq_v((int8x16_t)__a, 51); }
+
+__ai int8x8_t vpmax_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vpmax_v(__a, __b, 0); }
+__ai int16x4_t vpmax_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vpmax_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vpmax_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vpmax_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vpmax_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vpmax_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vpmax_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vpmax_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vpmax_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vpmax_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai float32x2_t vpmax_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vpmax_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+
+__ai int8x8_t vpmin_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vpmin_v(__a, __b, 0); }
+__ai int16x4_t vpmin_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vpmin_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vpmin_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vpmin_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vpmin_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vpmin_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vpmin_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vpmin_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vpmin_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vpmin_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai float32x2_t vpmin_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vpmin_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+
+__ai int8x8_t vqabs_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vqabs_v(__a, 0); }
+__ai int16x4_t vqabs_s16(int16x4_t __a) {
+ return (int16x4_t)__builtin_neon_vqabs_v((int8x8_t)__a, 1); }
+__ai int32x2_t vqabs_s32(int32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vqabs_v((int8x8_t)__a, 2); }
+__ai int8x16_t vqabsq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vqabsq_v(__a, 32); }
+__ai int16x8_t vqabsq_s16(int16x8_t __a) {
+ return (int16x8_t)__builtin_neon_vqabsq_v((int8x16_t)__a, 33); }
+__ai int32x4_t vqabsq_s32(int32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vqabsq_v((int8x16_t)__a, 34); }
+
+__ai int8x8_t vqadd_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqadd_v(__a, __b, 0); }
+__ai int16x4_t vqadd_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vqadd_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vqadd_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint8x8_t vqadd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vqadd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vqadd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vqadd_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vqadd_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int8x16_t vqaddq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqaddq_v(__a, __b, 32); }
+__ai int16x8_t vqaddq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vqaddq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vqaddq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vqaddq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vqaddq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vqaddq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vqaddq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vqaddq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai int32x4_t vqdmlal_s16(int32x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return (int32x4_t)__builtin_neon_vqdmlal_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)__c, 34); }
+__ai int64x2_t vqdmlal_s32(int64x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return (int64x2_t)__builtin_neon_vqdmlal_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)__c, 35); }
+
+#define vqdmlal_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x4_t __c = (c); \
+ vqdmlal_s16(__a, __b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlal_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x2_t __c = (c); \
+ vqdmlal_s32(__a, __b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vqdmlal_n_s16(int32x4_t __a, int16x4_t __b, int16_t __c) {
+ return (int32x4_t)__builtin_neon_vqdmlal_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)(int16x4_t){ __c, __c, __c, __c }, 34); }
+__ai int64x2_t vqdmlal_n_s32(int64x2_t __a, int32x2_t __b, int32_t __c) {
+ return (int64x2_t)__builtin_neon_vqdmlal_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)(int32x2_t){ __c, __c }, 35); }
+
+__ai int32x4_t vqdmlsl_s16(int32x4_t __a, int16x4_t __b, int16x4_t __c) {
+ return (int32x4_t)__builtin_neon_vqdmlsl_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)__c, 34); }
+__ai int64x2_t vqdmlsl_s32(int64x2_t __a, int32x2_t __b, int32x2_t __c) {
+ return (int64x2_t)__builtin_neon_vqdmlsl_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)__c, 35); }
+
+#define vqdmlsl_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x4_t __c = (c); \
+ vqdmlsl_s16(__a, __b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlsl_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x2_t __c = (c); \
+ vqdmlsl_s32(__a, __b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vqdmlsl_n_s16(int32x4_t __a, int16x4_t __b, int16_t __c) {
+ return (int32x4_t)__builtin_neon_vqdmlsl_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)(int16x4_t){ __c, __c, __c, __c }, 34); }
+__ai int64x2_t vqdmlsl_n_s32(int64x2_t __a, int32x2_t __b, int32_t __c) {
+ return (int64x2_t)__builtin_neon_vqdmlsl_v((int8x16_t)__a, (int8x8_t)__b, (int8x8_t)(int32x2_t){ __c, __c }, 35); }
+
+__ai int16x4_t vqdmulh_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vqdmulh_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vqdmulh_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vqdmulh_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int16x8_t vqdmulhq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vqdmulhq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vqdmulhq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqdmulhq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+
+#define vqdmulh_lane_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ vqdmulh_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqdmulh_lane_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ vqdmulh_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vqdmulhq_lane_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x4_t __b = (b); \
+ vqdmulhq_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c)); })
+#define vqdmulhq_lane_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x2_t __b = (b); \
+ vqdmulhq_s32(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+
+__ai int16x4_t vqdmulh_n_s16(int16x4_t __a, int16_t __b) {
+ return (int16x4_t)__builtin_neon_vqdmulh_v((int8x8_t)__a, (int8x8_t)(int16x4_t){ __b, __b, __b, __b }, 1); }
+__ai int32x2_t vqdmulh_n_s32(int32x2_t __a, int32_t __b) {
+ return (int32x2_t)__builtin_neon_vqdmulh_v((int8x8_t)__a, (int8x8_t)(int32x2_t){ __b, __b }, 2); }
+__ai int16x8_t vqdmulhq_n_s16(int16x8_t __a, int16_t __b) {
+ return (int16x8_t)__builtin_neon_vqdmulhq_v((int8x16_t)__a, (int8x16_t)(int16x8_t){ __b, __b, __b, __b, __b, __b, __b, __b }, 33); }
+__ai int32x4_t vqdmulhq_n_s32(int32x4_t __a, int32_t __b) {
+ return (int32x4_t)__builtin_neon_vqdmulhq_v((int8x16_t)__a, (int8x16_t)(int32x4_t){ __b, __b, __b, __b }, 34); }
+
+__ai int32x4_t vqdmull_s16(int16x4_t __a, int16x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqdmull_v((int8x8_t)__a, (int8x8_t)__b, 34); }
+__ai int64x2_t vqdmull_s32(int32x2_t __a, int32x2_t __b) {
+ return (int64x2_t)__builtin_neon_vqdmull_v((int8x8_t)__a, (int8x8_t)__b, 35); }
+
+#define vqdmull_lane_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ vqdmull_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqdmull_lane_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ vqdmull_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+
+__ai int32x4_t vqdmull_n_s16(int16x4_t __a, int16_t __b) {
+ return (int32x4_t)__builtin_neon_vqdmull_v((int8x8_t)__a, (int8x8_t)(int16x4_t){ __b, __b, __b, __b }, 34); }
+__ai int64x2_t vqdmull_n_s32(int32x2_t __a, int32_t __b) {
+ return (int64x2_t)__builtin_neon_vqdmull_v((int8x8_t)__a, (int8x8_t)(int32x2_t){ __b, __b }, 35); }
+
+__ai int8x8_t vqmovn_s16(int16x8_t __a) {
+ return (int8x8_t)__builtin_neon_vqmovn_v((int8x16_t)__a, 0); }
+__ai int16x4_t vqmovn_s32(int32x4_t __a) {
+ return (int16x4_t)__builtin_neon_vqmovn_v((int8x16_t)__a, 1); }
+__ai int32x2_t vqmovn_s64(int64x2_t __a) {
+ return (int32x2_t)__builtin_neon_vqmovn_v((int8x16_t)__a, 2); }
+__ai uint8x8_t vqmovn_u16(uint16x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vqmovn_v((int8x16_t)__a, 16); }
+__ai uint16x4_t vqmovn_u32(uint32x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vqmovn_v((int8x16_t)__a, 17); }
+__ai uint32x2_t vqmovn_u64(uint64x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vqmovn_v((int8x16_t)__a, 18); }
+
+__ai uint8x8_t vqmovun_s16(int16x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vqmovun_v((int8x16_t)__a, 16); }
+__ai uint16x4_t vqmovun_s32(int32x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vqmovun_v((int8x16_t)__a, 17); }
+__ai uint32x2_t vqmovun_s64(int64x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vqmovun_v((int8x16_t)__a, 18); }
+
+__ai int8x8_t vqneg_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vqneg_v(__a, 0); }
+__ai int16x4_t vqneg_s16(int16x4_t __a) {
+ return (int16x4_t)__builtin_neon_vqneg_v((int8x8_t)__a, 1); }
+__ai int32x2_t vqneg_s32(int32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vqneg_v((int8x8_t)__a, 2); }
+__ai int8x16_t vqnegq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vqnegq_v(__a, 32); }
+__ai int16x8_t vqnegq_s16(int16x8_t __a) {
+ return (int16x8_t)__builtin_neon_vqnegq_v((int8x16_t)__a, 33); }
+__ai int32x4_t vqnegq_s32(int32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vqnegq_v((int8x16_t)__a, 34); }
+
+__ai int16x4_t vqrdmulh_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vqrdmulh_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vqrdmulh_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vqrdmulh_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int16x8_t vqrdmulhq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vqrdmulhq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vqrdmulhq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqrdmulhq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+
+#define vqrdmulh_lane_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ vqrdmulh_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqrdmulh_lane_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ vqrdmulh_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vqrdmulhq_lane_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x4_t __b = (b); \
+ vqrdmulhq_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c)); })
+#define vqrdmulhq_lane_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x2_t __b = (b); \
+ vqrdmulhq_s32(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+
+__ai int16x4_t vqrdmulh_n_s16(int16x4_t __a, int16_t __b) {
+ return (int16x4_t)__builtin_neon_vqrdmulh_v((int8x8_t)__a, (int8x8_t)(int16x4_t){ __b, __b, __b, __b }, 1); }
+__ai int32x2_t vqrdmulh_n_s32(int32x2_t __a, int32_t __b) {
+ return (int32x2_t)__builtin_neon_vqrdmulh_v((int8x8_t)__a, (int8x8_t)(int32x2_t){ __b, __b }, 2); }
+__ai int16x8_t vqrdmulhq_n_s16(int16x8_t __a, int16_t __b) {
+ return (int16x8_t)__builtin_neon_vqrdmulhq_v((int8x16_t)__a, (int8x16_t)(int16x8_t){ __b, __b, __b, __b, __b, __b, __b, __b }, 33); }
+__ai int32x4_t vqrdmulhq_n_s32(int32x4_t __a, int32_t __b) {
+ return (int32x4_t)__builtin_neon_vqrdmulhq_v((int8x16_t)__a, (int8x16_t)(int32x4_t){ __b, __b, __b, __b }, 34); }
+
+__ai int8x8_t vqrshl_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqrshl_v(__a, __b, 0); }
+__ai int16x4_t vqrshl_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vqrshl_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vqrshl_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vqrshl_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vqrshl_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vqrshl_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint8x8_t vqrshl_u8(uint8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqrshl_v((int8x8_t)__a, __b, 16); }
+__ai uint16x4_t vqrshl_u16(uint16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vqrshl_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vqrshl_u32(uint32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vqrshl_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vqrshl_u64(uint64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vqrshl_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int8x16_t vqrshlq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqrshlq_v(__a, __b, 32); }
+__ai int16x8_t vqrshlq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vqrshlq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vqrshlq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vqrshlq_u8(uint8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, __b, 48); }
+__ai uint16x8_t vqrshlq_u16(uint16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vqrshlq_u32(uint32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vqrshlq_u64(uint64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vqrshlq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+#define vqrshrn_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vqrshrn_n_v((int8x16_t)__a, __b, 0); })
+#define vqrshrn_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vqrshrn_n_v((int8x16_t)__a, __b, 1); })
+#define vqrshrn_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vqrshrn_n_v((int8x16_t)__a, __b, 2); })
+#define vqrshrn_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vqrshrn_n_v((int8x16_t)__a, __b, 16); })
+#define vqrshrn_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vqrshrn_n_v((int8x16_t)__a, __b, 17); })
+#define vqrshrn_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vqrshrn_n_v((int8x16_t)__a, __b, 18); })
+
+#define vqrshrun_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vqrshrun_n_v((int8x16_t)__a, __b, 16); })
+#define vqrshrun_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vqrshrun_n_v((int8x16_t)__a, __b, 17); })
+#define vqrshrun_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vqrshrun_n_v((int8x16_t)__a, __b, 18); })
+
+__ai int8x8_t vqshl_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqshl_v(__a, __b, 0); }
+__ai int16x4_t vqshl_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vqshl_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vqshl_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vqshl_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vqshl_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vqshl_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint8x8_t vqshl_u8(uint8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqshl_v((int8x8_t)__a, __b, 16); }
+__ai uint16x4_t vqshl_u16(uint16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vqshl_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vqshl_u32(uint32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vqshl_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vqshl_u64(uint64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vqshl_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int8x16_t vqshlq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqshlq_v(__a, __b, 32); }
+__ai int16x8_t vqshlq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vqshlq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vqshlq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqshlq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vqshlq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vqshlq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vqshlq_u8(uint8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqshlq_v((int8x16_t)__a, __b, 48); }
+__ai uint16x8_t vqshlq_u16(uint16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vqshlq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vqshlq_u32(uint32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vqshlq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vqshlq_u64(uint64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vqshlq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+#define vqshlu_n_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vqshlu_n_v(__a, __b, 16); })
+#define vqshlu_n_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vqshlu_n_v((int8x8_t)__a, __b, 17); })
+#define vqshlu_n_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vqshlu_n_v((int8x8_t)__a, __b, 18); })
+#define vqshlu_n_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (uint64x1_t)__builtin_neon_vqshlu_n_v((int8x8_t)__a, __b, 19); })
+#define vqshluq_n_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (uint8x16_t)__builtin_neon_vqshluq_n_v(__a, __b, 48); })
+#define vqshluq_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (uint16x8_t)__builtin_neon_vqshluq_n_v((int8x16_t)__a, __b, 49); })
+#define vqshluq_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vqshluq_n_v((int8x16_t)__a, __b, 50); })
+#define vqshluq_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vqshluq_n_v((int8x16_t)__a, __b, 51); })
+
+#define vqshl_n_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vqshl_n_v(__a, __b, 0); })
+#define vqshl_n_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 1); })
+#define vqshl_n_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 2); })
+#define vqshl_n_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (int64x1_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 3); })
+#define vqshl_n_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 16); })
+#define vqshl_n_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 17); })
+#define vqshl_n_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 18); })
+#define vqshl_n_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (uint64x1_t)__builtin_neon_vqshl_n_v((int8x8_t)__a, __b, 19); })
+#define vqshlq_n_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (int8x16_t)__builtin_neon_vqshlq_n_v(__a, __b, 32); })
+#define vqshlq_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int16x8_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 33); })
+#define vqshlq_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int32x4_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 34); })
+#define vqshlq_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int64x2_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 35); })
+#define vqshlq_n_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ (uint8x16_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 48); })
+#define vqshlq_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint16x8_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 49); })
+#define vqshlq_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 50); })
+#define vqshlq_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vqshlq_n_v((int8x16_t)__a, __b, 51); })
+
+#define vqshrn_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vqshrn_n_v((int8x16_t)__a, __b, 0); })
+#define vqshrn_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vqshrn_n_v((int8x16_t)__a, __b, 1); })
+#define vqshrn_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vqshrn_n_v((int8x16_t)__a, __b, 2); })
+#define vqshrn_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vqshrn_n_v((int8x16_t)__a, __b, 16); })
+#define vqshrn_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vqshrn_n_v((int8x16_t)__a, __b, 17); })
+#define vqshrn_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vqshrn_n_v((int8x16_t)__a, __b, 18); })
+
+#define vqshrun_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vqshrun_n_v((int8x16_t)__a, __b, 16); })
+#define vqshrun_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vqshrun_n_v((int8x16_t)__a, __b, 17); })
+#define vqshrun_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vqshrun_n_v((int8x16_t)__a, __b, 18); })
+
+__ai int8x8_t vqsub_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqsub_v(__a, __b, 0); }
+__ai int16x4_t vqsub_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vqsub_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vqsub_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint8x8_t vqsub_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vqsub_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vqsub_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vqsub_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vqsub_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int8x16_t vqsubq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqsubq_v(__a, __b, 32); }
+__ai int16x8_t vqsubq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vqsubq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vqsubq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vqsubq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vqsubq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vqsubq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vqsubq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vqsubq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai int8x8_t vraddhn_s16(int16x8_t __a, int16x8_t __b) {
+ return (int8x8_t)__builtin_neon_vraddhn_v((int8x16_t)__a, (int8x16_t)__b, 0); }
+__ai int16x4_t vraddhn_s32(int32x4_t __a, int32x4_t __b) {
+ return (int16x4_t)__builtin_neon_vraddhn_v((int8x16_t)__a, (int8x16_t)__b, 1); }
+__ai int32x2_t vraddhn_s64(int64x2_t __a, int64x2_t __b) {
+ return (int32x2_t)__builtin_neon_vraddhn_v((int8x16_t)__a, (int8x16_t)__b, 2); }
+__ai uint8x8_t vraddhn_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vraddhn_v((int8x16_t)__a, (int8x16_t)__b, 16); }
+__ai uint16x4_t vraddhn_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vraddhn_v((int8x16_t)__a, (int8x16_t)__b, 17); }
+__ai uint32x2_t vraddhn_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vraddhn_v((int8x16_t)__a, (int8x16_t)__b, 18); }
+
+__ai float32x2_t vrecpe_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrecpe_v((int8x8_t)__a, 8); }
+__ai uint32x2_t vrecpe_u32(uint32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vrecpe_v((int8x8_t)__a, 18); }
+__ai float32x4_t vrecpeq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrecpeq_v((int8x16_t)__a, 40); }
+__ai uint32x4_t vrecpeq_u32(uint32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vrecpeq_v((int8x16_t)__a, 50); }
+
+__ai float32x2_t vrecps_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vrecps_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float32x4_t vrecpsq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vrecpsq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+
+__ai int8x8_t vreinterpret_s8_s16(int16x4_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_s32(int32x2_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_s64(int64x1_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_f16(float16x4_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_f32(float32x2_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __a) {
+ return (int8x8_t)__a; }
+__ai int16x4_t vreinterpret_s16_s8(int8x8_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_s32(int32x2_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_s64(int64x1_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_f16(float16x4_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_f32(float32x2_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __a) {
+ return (int16x4_t)__a; }
+__ai int32x2_t vreinterpret_s32_s8(int8x8_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_s16(int16x4_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_s64(int64x1_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_f16(float16x4_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_f32(float32x2_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __a) {
+ return (int32x2_t)__a; }
+__ai int64x1_t vreinterpret_s64_s8(int8x8_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_s16(int16x4_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_s32(int32x2_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_f16(float16x4_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_f32(float32x2_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __a) {
+ return (int64x1_t)__a; }
+__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __a) {
+ return (uint64x1_t)__a; }
+__ai float16x4_t vreinterpret_f16_s8(int8x8_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_s16(int16x4_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_s32(int32x2_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_s64(int64x1_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_f32(float32x2_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __a) {
+ return (float16x4_t)__a; }
+__ai float32x2_t vreinterpret_f32_s8(int8x8_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_s16(int16x4_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_s32(int32x2_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_s64(int64x1_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_f16(float16x4_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __a) {
+ return (float32x2_t)__a; }
+__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __a) {
+ return (poly16x4_t)__a; }
+__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __a) {
+ return (int8x16_t)__a; }
+__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __a) {
+ return (int16x8_t)__a; }
+__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __a) {
+ return (int32x4_t)__a; }
+__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __a) {
+ return (int64x2_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __a) {
+ return (uint64x2_t)__a; }
+__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __a) {
+ return (float16x8_t)__a; }
+__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __a) {
+ return (float32x4_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __a) {
+ return (poly16x8_t)__a; }
+
+__ai int8x8_t vrev16_s8(int8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6); }
+__ai uint8x8_t vrev16_u8(uint8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6); }
+__ai poly8x8_t vrev16_p8(poly8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6); }
+__ai int8x16_t vrev16q_s8(int8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); }
+__ai uint8x16_t vrev16q_u8(uint8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); }
+__ai poly8x16_t vrev16q_p8(poly8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); }
+
+__ai int8x8_t vrev32_s8(int8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4); }
+__ai int16x4_t vrev32_s16(int16x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2); }
+__ai uint8x8_t vrev32_u8(uint8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4); }
+__ai uint16x4_t vrev32_u16(uint16x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2); }
+__ai poly8x8_t vrev32_p8(poly8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4); }
+__ai poly16x4_t vrev32_p16(poly16x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2); }
+__ai int8x16_t vrev32q_s8(int8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); }
+__ai int16x8_t vrev32q_s16(int16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6); }
+__ai uint8x16_t vrev32q_u8(uint8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); }
+__ai uint16x8_t vrev32q_u16(uint16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6); }
+__ai poly8x16_t vrev32q_p8(poly8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); }
+__ai poly16x8_t vrev32q_p16(poly16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2, 5, 4, 7, 6); }
+
+__ai int8x8_t vrev64_s8(int8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0); }
+__ai int16x4_t vrev64_s16(int16x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); }
+__ai int32x2_t vrev64_s32(int32x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0); }
+__ai uint8x8_t vrev64_u8(uint8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0); }
+__ai uint16x4_t vrev64_u16(uint16x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); }
+__ai uint32x2_t vrev64_u32(uint32x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0); }
+__ai poly8x8_t vrev64_p8(poly8x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0); }
+__ai poly16x4_t vrev64_p16(poly16x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0); }
+__ai float32x2_t vrev64_f32(float32x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0); }
+__ai int8x16_t vrev64q_s8(int8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); }
+__ai int16x8_t vrev64q_s16(int16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4); }
+__ai int32x4_t vrev64q_s32(int32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2); }
+__ai uint8x16_t vrev64q_u8(uint8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); }
+__ai uint16x8_t vrev64q_u16(uint16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4); }
+__ai uint32x4_t vrev64q_u32(uint32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2); }
+__ai poly8x16_t vrev64q_p8(poly8x16_t __a) {
+ return __builtin_shufflevector(__a, __a, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); }
+__ai poly16x8_t vrev64q_p16(poly16x8_t __a) {
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0, 7, 6, 5, 4); }
+__ai float32x4_t vrev64q_f32(float32x4_t __a) {
+ return __builtin_shufflevector(__a, __a, 1, 0, 3, 2); }
+
+__ai int8x8_t vrhadd_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vrhadd_v(__a, __b, 0); }
+__ai int16x4_t vrhadd_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vrhadd_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vrhadd_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vrhadd_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai uint8x8_t vrhadd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vrhadd_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vrhadd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vrhadd_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vrhadd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vrhadd_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai int8x16_t vrhaddq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vrhaddq_v(__a, __b, 32); }
+__ai int16x8_t vrhaddq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vrhaddq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vrhaddq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vrhaddq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vrhaddq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vrhaddq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vrhaddq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vrhaddq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vrhaddq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vrhaddq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai int8x8_t vrshl_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vrshl_v(__a, __b, 0); }
+__ai int16x4_t vrshl_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vrshl_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vrshl_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vrshl_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vrshl_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vrshl_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint8x8_t vrshl_u8(uint8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vrshl_v((int8x8_t)__a, __b, 16); }
+__ai uint16x4_t vrshl_u16(uint16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vrshl_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vrshl_u32(uint32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vrshl_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vrshl_u64(uint64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vrshl_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int8x16_t vrshlq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vrshlq_v(__a, __b, 32); }
+__ai int16x8_t vrshlq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vrshlq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vrshlq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vrshlq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vrshlq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vrshlq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vrshlq_u8(uint8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vrshlq_v((int8x16_t)__a, __b, 48); }
+__ai uint16x8_t vrshlq_u16(uint16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vrshlq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vrshlq_u32(uint32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vrshlq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vrshlq_u64(uint64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vrshlq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+#define vrshrn_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vrshrn_n_v((int8x16_t)__a, __b, 0); })
+#define vrshrn_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vrshrn_n_v((int8x16_t)__a, __b, 1); })
+#define vrshrn_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vrshrn_n_v((int8x16_t)__a, __b, 2); })
+#define vrshrn_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vrshrn_n_v((int8x16_t)__a, __b, 16); })
+#define vrshrn_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vrshrn_n_v((int8x16_t)__a, __b, 17); })
+#define vrshrn_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vrshrn_n_v((int8x16_t)__a, __b, 18); })
+
+#define vrshr_n_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vrshr_n_v(__a, __b, 0); })
+#define vrshr_n_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 1); })
+#define vrshr_n_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 2); })
+#define vrshr_n_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (int64x1_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 3); })
+#define vrshr_n_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 16); })
+#define vrshr_n_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 17); })
+#define vrshr_n_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 18); })
+#define vrshr_n_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (uint64x1_t)__builtin_neon_vrshr_n_v((int8x8_t)__a, __b, 19); })
+#define vrshrq_n_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (int8x16_t)__builtin_neon_vrshrq_n_v(__a, __b, 32); })
+#define vrshrq_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int16x8_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 33); })
+#define vrshrq_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int32x4_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 34); })
+#define vrshrq_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int64x2_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 35); })
+#define vrshrq_n_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ (uint8x16_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 48); })
+#define vrshrq_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint16x8_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 49); })
+#define vrshrq_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 50); })
+#define vrshrq_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vrshrq_n_v((int8x16_t)__a, __b, 51); })
+
+__ai float32x2_t vrsqrte_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrsqrte_v((int8x8_t)__a, 8); }
+__ai uint32x2_t vrsqrte_u32(uint32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vrsqrte_v((int8x8_t)__a, 18); }
+__ai float32x4_t vrsqrteq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrsqrteq_v((int8x16_t)__a, 40); }
+__ai uint32x4_t vrsqrteq_u32(uint32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vrsqrteq_v((int8x16_t)__a, 50); }
+
+__ai float32x2_t vrsqrts_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vrsqrts_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float32x4_t vrsqrtsq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vrsqrtsq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+
+#define vrsra_n_s8(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vrsra_n_v(__a, __b, __c, 0); })
+#define vrsra_n_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 1); })
+#define vrsra_n_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 2); })
+#define vrsra_n_s64(a, b, __c) __extension__ ({ \
+ int64x1_t __a = (a); int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 3); })
+#define vrsra_n_u8(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 16); })
+#define vrsra_n_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 17); })
+#define vrsra_n_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 18); })
+#define vrsra_n_u64(a, b, __c) __extension__ ({ \
+ uint64x1_t __a = (a); uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vrsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 19); })
+#define vrsraq_n_s8(a, b, __c) __extension__ ({ \
+ int8x16_t __a = (a); int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vrsraq_n_v(__a, __b, __c, 32); })
+#define vrsraq_n_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 33); })
+#define vrsraq_n_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 34); })
+#define vrsraq_n_s64(a, b, __c) __extension__ ({ \
+ int64x2_t __a = (a); int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 35); })
+#define vrsraq_n_u8(a, b, __c) __extension__ ({ \
+ uint8x16_t __a = (a); uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 48); })
+#define vrsraq_n_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 49); })
+#define vrsraq_n_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 50); })
+#define vrsraq_n_u64(a, b, __c) __extension__ ({ \
+ uint64x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vrsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 51); })
+
+__ai int8x8_t vrsubhn_s16(int16x8_t __a, int16x8_t __b) {
+ return (int8x8_t)__builtin_neon_vrsubhn_v((int8x16_t)__a, (int8x16_t)__b, 0); }
+__ai int16x4_t vrsubhn_s32(int32x4_t __a, int32x4_t __b) {
+ return (int16x4_t)__builtin_neon_vrsubhn_v((int8x16_t)__a, (int8x16_t)__b, 1); }
+__ai int32x2_t vrsubhn_s64(int64x2_t __a, int64x2_t __b) {
+ return (int32x2_t)__builtin_neon_vrsubhn_v((int8x16_t)__a, (int8x16_t)__b, 2); }
+__ai uint8x8_t vrsubhn_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vrsubhn_v((int8x16_t)__a, (int8x16_t)__b, 16); }
+__ai uint16x4_t vrsubhn_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vrsubhn_v((int8x16_t)__a, (int8x16_t)__b, 17); }
+__ai uint32x2_t vrsubhn_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vrsubhn_v((int8x16_t)__a, (int8x16_t)__b, 18); }
+
+#define vset_lane_u8(a, b, __c) __extension__ ({ \
+ uint8_t __a = (a); uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vset_lane_i8(__a, (int8x8_t)__b, __c); })
+#define vset_lane_u16(a, b, __c) __extension__ ({ \
+ uint16_t __a = (a); uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vset_lane_i16(__a, (int16x4_t)__b, __c); })
+#define vset_lane_u32(a, b, __c) __extension__ ({ \
+ uint32_t __a = (a); uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vset_lane_i32(__a, (int32x2_t)__b, __c); })
+#define vset_lane_s8(a, b, __c) __extension__ ({ \
+ int8_t __a = (a); int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vset_lane_i8(__a, __b, __c); })
+#define vset_lane_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vset_lane_i16(__a, __b, __c); })
+#define vset_lane_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vset_lane_i32(__a, __b, __c); })
+#define vset_lane_p8(a, b, __c) __extension__ ({ \
+ poly8_t __a = (a); poly8x8_t __b = (b); \
+ (poly8x8_t)__builtin_neon_vset_lane_i8(__a, (int8x8_t)__b, __c); })
+#define vset_lane_p16(a, b, __c) __extension__ ({ \
+ poly16_t __a = (a); poly16x4_t __b = (b); \
+ (poly16x4_t)__builtin_neon_vset_lane_i16(__a, (int16x4_t)__b, __c); })
+#define vset_lane_f32(a, b, __c) __extension__ ({ \
+ float32_t __a = (a); float32x2_t __b = (b); \
+ (float32x2_t)__builtin_neon_vset_lane_f32(__a, __b, __c); })
+#define vsetq_lane_u8(a, b, __c) __extension__ ({ \
+ uint8_t __a = (a); uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vsetq_lane_i8(__a, (int8x16_t)__b, __c); })
+#define vsetq_lane_u16(a, b, __c) __extension__ ({ \
+ uint16_t __a = (a); uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vsetq_lane_i16(__a, (int16x8_t)__b, __c); })
+#define vsetq_lane_u32(a, b, __c) __extension__ ({ \
+ uint32_t __a = (a); uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vsetq_lane_i32(__a, (int32x4_t)__b, __c); })
+#define vsetq_lane_s8(a, b, __c) __extension__ ({ \
+ int8_t __a = (a); int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vsetq_lane_i8(__a, __b, __c); })
+#define vsetq_lane_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vsetq_lane_i16(__a, __b, __c); })
+#define vsetq_lane_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vsetq_lane_i32(__a, __b, __c); })
+#define vsetq_lane_p8(a, b, __c) __extension__ ({ \
+ poly8_t __a = (a); poly8x16_t __b = (b); \
+ (poly8x16_t)__builtin_neon_vsetq_lane_i8(__a, (int8x16_t)__b, __c); })
+#define vsetq_lane_p16(a, b, __c) __extension__ ({ \
+ poly16_t __a = (a); poly16x8_t __b = (b); \
+ (poly16x8_t)__builtin_neon_vsetq_lane_i16(__a, (int16x8_t)__b, __c); })
+#define vsetq_lane_f32(a, b, __c) __extension__ ({ \
+ float32_t __a = (a); float32x4_t __b = (b); \
+ (float32x4_t)__builtin_neon_vsetq_lane_f32(__a, __b, __c); })
+#define vset_lane_s64(a, b, __c) __extension__ ({ \
+ int64_t __a = (a); int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vset_lane_i64(__a, __b, __c); })
+#define vset_lane_u64(a, b, __c) __extension__ ({ \
+ uint64_t __a = (a); uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vset_lane_i64(__a, (int64x1_t)__b, __c); })
+#define vsetq_lane_s64(a, b, __c) __extension__ ({ \
+ int64_t __a = (a); int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vsetq_lane_i64(__a, __b, __c); })
+#define vsetq_lane_u64(a, b, __c) __extension__ ({ \
+ uint64_t __a = (a); uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vsetq_lane_i64(__a, (int64x2_t)__b, __c); })
+
+__ai int8x8_t vshl_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vshl_v(__a, __b, 0); }
+__ai int16x4_t vshl_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vshl_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vshl_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vshl_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vshl_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vshl_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai uint8x8_t vshl_u8(uint8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vshl_v((int8x8_t)__a, __b, 16); }
+__ai uint16x4_t vshl_u16(uint16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vshl_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vshl_u32(uint32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vshl_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vshl_u64(uint64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vshl_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai int8x16_t vshlq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vshlq_v(__a, __b, 32); }
+__ai int16x8_t vshlq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vshlq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vshlq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vshlq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vshlq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vshlq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vshlq_u8(uint8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vshlq_v((int8x16_t)__a, __b, 48); }
+__ai uint16x8_t vshlq_u16(uint16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vshlq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vshlq_u32(uint32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vshlq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vshlq_u64(uint64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vshlq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+#define vshll_n_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int16x8_t)__builtin_neon_vshll_n_v(__a, __b, 33); })
+#define vshll_n_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int32x4_t)__builtin_neon_vshll_n_v((int8x8_t)__a, __b, 34); })
+#define vshll_n_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int64x2_t)__builtin_neon_vshll_n_v((int8x8_t)__a, __b, 35); })
+#define vshll_n_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint16x8_t)__builtin_neon_vshll_n_v((int8x8_t)__a, __b, 49); })
+#define vshll_n_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vshll_n_v((int8x8_t)__a, __b, 50); })
+#define vshll_n_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vshll_n_v((int8x8_t)__a, __b, 51); })
+
+#define vshl_n_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vshl_n_v(__a, __b, 0); })
+#define vshl_n_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 1); })
+#define vshl_n_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 2); })
+#define vshl_n_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (int64x1_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 3); })
+#define vshl_n_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 16); })
+#define vshl_n_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 17); })
+#define vshl_n_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 18); })
+#define vshl_n_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (uint64x1_t)__builtin_neon_vshl_n_v((int8x8_t)__a, __b, 19); })
+#define vshlq_n_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (int8x16_t)__builtin_neon_vshlq_n_v(__a, __b, 32); })
+#define vshlq_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int16x8_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 33); })
+#define vshlq_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int32x4_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 34); })
+#define vshlq_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int64x2_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 35); })
+#define vshlq_n_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ (uint8x16_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 48); })
+#define vshlq_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint16x8_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 49); })
+#define vshlq_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 50); })
+#define vshlq_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vshlq_n_v((int8x16_t)__a, __b, 51); })
+
+#define vshrn_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vshrn_n_v((int8x16_t)__a, __b, 0); })
+#define vshrn_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vshrn_n_v((int8x16_t)__a, __b, 1); })
+#define vshrn_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vshrn_n_v((int8x16_t)__a, __b, 2); })
+#define vshrn_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vshrn_n_v((int8x16_t)__a, __b, 16); })
+#define vshrn_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vshrn_n_v((int8x16_t)__a, __b, 17); })
+#define vshrn_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vshrn_n_v((int8x16_t)__a, __b, 18); })
+
+#define vshr_n_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int8x8_t)__builtin_neon_vshr_n_v(__a, __b, 0); })
+#define vshr_n_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int16x4_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 1); })
+#define vshr_n_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int32x2_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 2); })
+#define vshr_n_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (int64x1_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 3); })
+#define vshr_n_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint8x8_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 16); })
+#define vshr_n_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint16x4_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 17); })
+#define vshr_n_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint32x2_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 18); })
+#define vshr_n_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (uint64x1_t)__builtin_neon_vshr_n_v((int8x8_t)__a, __b, 19); })
+#define vshrq_n_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (int8x16_t)__builtin_neon_vshrq_n_v(__a, __b, 32); })
+#define vshrq_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int16x8_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 33); })
+#define vshrq_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int32x4_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 34); })
+#define vshrq_n_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int64x2_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 35); })
+#define vshrq_n_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ (uint8x16_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 48); })
+#define vshrq_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint16x8_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 49); })
+#define vshrq_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint32x4_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 50); })
+#define vshrq_n_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vshrq_n_v((int8x16_t)__a, __b, 51); })
+
+#define vsli_n_s8(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vsli_n_v(__a, __b, __c, 0); })
+#define vsli_n_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 1); })
+#define vsli_n_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 2); })
+#define vsli_n_s64(a, b, __c) __extension__ ({ \
+ int64x1_t __a = (a); int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 3); })
+#define vsli_n_u8(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 16); })
+#define vsli_n_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 17); })
+#define vsli_n_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 18); })
+#define vsli_n_u64(a, b, __c) __extension__ ({ \
+ uint64x1_t __a = (a); uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 19); })
+#define vsli_n_p8(a, b, __c) __extension__ ({ \
+ poly8x8_t __a = (a); poly8x8_t __b = (b); \
+ (poly8x8_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 4); })
+#define vsli_n_p16(a, b, __c) __extension__ ({ \
+ poly16x4_t __a = (a); poly16x4_t __b = (b); \
+ (poly16x4_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 5); })
+#define vsliq_n_s8(a, b, __c) __extension__ ({ \
+ int8x16_t __a = (a); int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vsliq_n_v(__a, __b, __c, 32); })
+#define vsliq_n_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 33); })
+#define vsliq_n_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 34); })
+#define vsliq_n_s64(a, b, __c) __extension__ ({ \
+ int64x2_t __a = (a); int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 35); })
+#define vsliq_n_u8(a, b, __c) __extension__ ({ \
+ uint8x16_t __a = (a); uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 48); })
+#define vsliq_n_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 49); })
+#define vsliq_n_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 50); })
+#define vsliq_n_u64(a, b, __c) __extension__ ({ \
+ uint64x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 51); })
+#define vsliq_n_p8(a, b, __c) __extension__ ({ \
+ poly8x16_t __a = (a); poly8x16_t __b = (b); \
+ (poly8x16_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 36); })
+#define vsliq_n_p16(a, b, __c) __extension__ ({ \
+ poly16x8_t __a = (a); poly16x8_t __b = (b); \
+ (poly16x8_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 37); })
+
+#define vsra_n_s8(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vsra_n_v(__a, __b, __c, 0); })
+#define vsra_n_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 1); })
+#define vsra_n_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 2); })
+#define vsra_n_s64(a, b, __c) __extension__ ({ \
+ int64x1_t __a = (a); int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 3); })
+#define vsra_n_u8(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 16); })
+#define vsra_n_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 17); })
+#define vsra_n_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 18); })
+#define vsra_n_u64(a, b, __c) __extension__ ({ \
+ uint64x1_t __a = (a); uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vsra_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 19); })
+#define vsraq_n_s8(a, b, __c) __extension__ ({ \
+ int8x16_t __a = (a); int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vsraq_n_v(__a, __b, __c, 32); })
+#define vsraq_n_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 33); })
+#define vsraq_n_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 34); })
+#define vsraq_n_s64(a, b, __c) __extension__ ({ \
+ int64x2_t __a = (a); int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 35); })
+#define vsraq_n_u8(a, b, __c) __extension__ ({ \
+ uint8x16_t __a = (a); uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 48); })
+#define vsraq_n_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 49); })
+#define vsraq_n_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 50); })
+#define vsraq_n_u64(a, b, __c) __extension__ ({ \
+ uint64x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vsraq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 51); })
+
+#define vsri_n_s8(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int8x8_t __b = (b); \
+ (int8x8_t)__builtin_neon_vsri_n_v(__a, __b, __c, 0); })
+#define vsri_n_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); \
+ (int16x4_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 1); })
+#define vsri_n_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); \
+ (int32x2_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 2); })
+#define vsri_n_s64(a, b, __c) __extension__ ({ \
+ int64x1_t __a = (a); int64x1_t __b = (b); \
+ (int64x1_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 3); })
+#define vsri_n_u8(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint8x8_t __b = (b); \
+ (uint8x8_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 16); })
+#define vsri_n_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); \
+ (uint16x4_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 17); })
+#define vsri_n_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); \
+ (uint32x2_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 18); })
+#define vsri_n_u64(a, b, __c) __extension__ ({ \
+ uint64x1_t __a = (a); uint64x1_t __b = (b); \
+ (uint64x1_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 19); })
+#define vsri_n_p8(a, b, __c) __extension__ ({ \
+ poly8x8_t __a = (a); poly8x8_t __b = (b); \
+ (poly8x8_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 4); })
+#define vsri_n_p16(a, b, __c) __extension__ ({ \
+ poly16x4_t __a = (a); poly16x4_t __b = (b); \
+ (poly16x4_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 5); })
+#define vsriq_n_s8(a, b, __c) __extension__ ({ \
+ int8x16_t __a = (a); int8x16_t __b = (b); \
+ (int8x16_t)__builtin_neon_vsriq_n_v(__a, __b, __c, 32); })
+#define vsriq_n_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ (int16x8_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 33); })
+#define vsriq_n_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ (int32x4_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 34); })
+#define vsriq_n_s64(a, b, __c) __extension__ ({ \
+ int64x2_t __a = (a); int64x2_t __b = (b); \
+ (int64x2_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 35); })
+#define vsriq_n_u8(a, b, __c) __extension__ ({ \
+ uint8x16_t __a = (a); uint8x16_t __b = (b); \
+ (uint8x16_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 48); })
+#define vsriq_n_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint16x8_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 49); })
+#define vsriq_n_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint32x4_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 50); })
+#define vsriq_n_u64(a, b, __c) __extension__ ({ \
+ uint64x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint64x2_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 51); })
+#define vsriq_n_p8(a, b, __c) __extension__ ({ \
+ poly8x16_t __a = (a); poly8x16_t __b = (b); \
+ (poly8x16_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 36); })
+#define vsriq_n_p16(a, b, __c) __extension__ ({ \
+ poly16x8_t __a = (a); poly16x8_t __b = (b); \
+ (poly16x8_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 37); })
+
+#define vst1q_u8(__a, b) __extension__ ({ \
+ uint8x16_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 48); })
+#define vst1q_u16(__a, b) __extension__ ({ \
+ uint16x8_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 49); })
+#define vst1q_u32(__a, b) __extension__ ({ \
+ uint32x4_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 50); })
+#define vst1q_u64(__a, b) __extension__ ({ \
+ uint64x2_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 51); })
+#define vst1q_s8(__a, b) __extension__ ({ \
+ int8x16_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, __b, 32); })
+#define vst1q_s16(__a, b) __extension__ ({ \
+ int16x8_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 33); })
+#define vst1q_s32(__a, b) __extension__ ({ \
+ int32x4_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 34); })
+#define vst1q_s64(__a, b) __extension__ ({ \
+ int64x2_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 35); })
+#define vst1q_f16(__a, b) __extension__ ({ \
+ float16x8_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 39); })
+#define vst1q_f32(__a, b) __extension__ ({ \
+ float32x4_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 40); })
+#define vst1q_p8(__a, b) __extension__ ({ \
+ poly8x16_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 36); })
+#define vst1q_p16(__a, b) __extension__ ({ \
+ poly16x8_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 37); })
+#define vst1_u8(__a, b) __extension__ ({ \
+ uint8x8_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 16); })
+#define vst1_u16(__a, b) __extension__ ({ \
+ uint16x4_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 17); })
+#define vst1_u32(__a, b) __extension__ ({ \
+ uint32x2_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 18); })
+#define vst1_u64(__a, b) __extension__ ({ \
+ uint64x1_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 19); })
+#define vst1_s8(__a, b) __extension__ ({ \
+ int8x8_t __b = (b); \
+ __builtin_neon_vst1_v(__a, __b, 0); })
+#define vst1_s16(__a, b) __extension__ ({ \
+ int16x4_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 1); })
+#define vst1_s32(__a, b) __extension__ ({ \
+ int32x2_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 2); })
+#define vst1_s64(__a, b) __extension__ ({ \
+ int64x1_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 3); })
+#define vst1_f16(__a, b) __extension__ ({ \
+ float16x4_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 7); })
+#define vst1_f32(__a, b) __extension__ ({ \
+ float32x2_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 8); })
+#define vst1_p8(__a, b) __extension__ ({ \
+ poly8x8_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 4); })
+#define vst1_p16(__a, b) __extension__ ({ \
+ poly16x4_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 5); })
+
+#define vst1q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 48); })
+#define vst1q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 49); })
+#define vst1q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 50); })
+#define vst1q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 51); })
+#define vst1q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, __b, __c, 32); })
+#define vst1q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 33); })
+#define vst1q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 34); })
+#define vst1q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 35); })
+#define vst1q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 39); })
+#define vst1q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 40); })
+#define vst1q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 36); })
+#define vst1q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 37); })
+#define vst1_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 16); })
+#define vst1_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 17); })
+#define vst1_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 18); })
+#define vst1_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 19); })
+#define vst1_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, __b, __c, 0); })
+#define vst1_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 1); })
+#define vst1_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 2); })
+#define vst1_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 3); })
+#define vst1_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 7); })
+#define vst1_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 8); })
+#define vst1_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 4); })
+#define vst1_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 5); })
+
+#define vst2q_u8(__a, b) __extension__ ({ \
+ uint8x16x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 48); })
+#define vst2q_u16(__a, b) __extension__ ({ \
+ uint16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 49); })
+#define vst2q_u32(__a, b) __extension__ ({ \
+ uint32x4x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 50); })
+#define vst2q_s8(__a, b) __extension__ ({ \
+ int8x16x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, __b.val[0], __b.val[1], 32); })
+#define vst2q_s16(__a, b) __extension__ ({ \
+ int16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 33); })
+#define vst2q_s32(__a, b) __extension__ ({ \
+ int32x4x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 34); })
+#define vst2q_f16(__a, b) __extension__ ({ \
+ float16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 39); })
+#define vst2q_f32(__a, b) __extension__ ({ \
+ float32x4x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 40); })
+#define vst2q_p8(__a, b) __extension__ ({ \
+ poly8x16x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 36); })
+#define vst2q_p16(__a, b) __extension__ ({ \
+ poly16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 37); })
+#define vst2_u8(__a, b) __extension__ ({ \
+ uint8x8x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 16); })
+#define vst2_u16(__a, b) __extension__ ({ \
+ uint16x4x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 17); })
+#define vst2_u32(__a, b) __extension__ ({ \
+ uint32x2x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 18); })
+#define vst2_u64(__a, b) __extension__ ({ \
+ uint64x1x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 19); })
+#define vst2_s8(__a, b) __extension__ ({ \
+ int8x8x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, __b.val[0], __b.val[1], 0); })
+#define vst2_s16(__a, b) __extension__ ({ \
+ int16x4x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 1); })
+#define vst2_s32(__a, b) __extension__ ({ \
+ int32x2x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 2); })
+#define vst2_s64(__a, b) __extension__ ({ \
+ int64x1x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 3); })
+#define vst2_f16(__a, b) __extension__ ({ \
+ float16x4x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 7); })
+#define vst2_f32(__a, b) __extension__ ({ \
+ float32x2x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 8); })
+#define vst2_p8(__a, b) __extension__ ({ \
+ poly8x8x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 4); })
+#define vst2_p16(__a, b) __extension__ ({ \
+ poly16x4x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 5); })
+
+#define vst2q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 49); })
+#define vst2q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 50); })
+#define vst2q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 33); })
+#define vst2q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 34); })
+#define vst2q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 39); })
+#define vst2q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 40); })
+#define vst2q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 37); })
+#define vst2_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 16); })
+#define vst2_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 17); })
+#define vst2_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 18); })
+#define vst2_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, __b.val[0], __b.val[1], __c, 0); })
+#define vst2_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 1); })
+#define vst2_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 2); })
+#define vst2_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 7); })
+#define vst2_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 8); })
+#define vst2_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 4); })
+#define vst2_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 5); })
+
+#define vst3q_u8(__a, b) __extension__ ({ \
+ uint8x16x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 48); })
+#define vst3q_u16(__a, b) __extension__ ({ \
+ uint16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 49); })
+#define vst3q_u32(__a, b) __extension__ ({ \
+ uint32x4x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 50); })
+#define vst3q_s8(__a, b) __extension__ ({ \
+ int8x16x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, __b.val[0], __b.val[1], __b.val[2], 32); })
+#define vst3q_s16(__a, b) __extension__ ({ \
+ int16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 33); })
+#define vst3q_s32(__a, b) __extension__ ({ \
+ int32x4x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 34); })
+#define vst3q_f16(__a, b) __extension__ ({ \
+ float16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 39); })
+#define vst3q_f32(__a, b) __extension__ ({ \
+ float32x4x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 40); })
+#define vst3q_p8(__a, b) __extension__ ({ \
+ poly8x16x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 36); })
+#define vst3q_p16(__a, b) __extension__ ({ \
+ poly16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 37); })
+#define vst3_u8(__a, b) __extension__ ({ \
+ uint8x8x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 16); })
+#define vst3_u16(__a, b) __extension__ ({ \
+ uint16x4x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 17); })
+#define vst3_u32(__a, b) __extension__ ({ \
+ uint32x2x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 18); })
+#define vst3_u64(__a, b) __extension__ ({ \
+ uint64x1x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 19); })
+#define vst3_s8(__a, b) __extension__ ({ \
+ int8x8x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, __b.val[0], __b.val[1], __b.val[2], 0); })
+#define vst3_s16(__a, b) __extension__ ({ \
+ int16x4x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 1); })
+#define vst3_s32(__a, b) __extension__ ({ \
+ int32x2x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 2); })
+#define vst3_s64(__a, b) __extension__ ({ \
+ int64x1x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 3); })
+#define vst3_f16(__a, b) __extension__ ({ \
+ float16x4x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 7); })
+#define vst3_f32(__a, b) __extension__ ({ \
+ float32x2x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 8); })
+#define vst3_p8(__a, b) __extension__ ({ \
+ poly8x8x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 4); })
+#define vst3_p16(__a, b) __extension__ ({ \
+ poly16x4x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 5); })
+
+#define vst3q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 49); })
+#define vst3q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 50); })
+#define vst3q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 33); })
+#define vst3q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 34); })
+#define vst3q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 39); })
+#define vst3q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 40); })
+#define vst3q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 37); })
+#define vst3_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 16); })
+#define vst3_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 17); })
+#define vst3_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 18); })
+#define vst3_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, __b.val[0], __b.val[1], __b.val[2], __c, 0); })
+#define vst3_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 1); })
+#define vst3_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 2); })
+#define vst3_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 7); })
+#define vst3_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 8); })
+#define vst3_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 4); })
+#define vst3_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 5); })
+
+#define vst4q_u8(__a, b) __extension__ ({ \
+ uint8x16x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 48); })
+#define vst4q_u16(__a, b) __extension__ ({ \
+ uint16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 49); })
+#define vst4q_u32(__a, b) __extension__ ({ \
+ uint32x4x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 50); })
+#define vst4q_s8(__a, b) __extension__ ({ \
+ int8x16x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], 32); })
+#define vst4q_s16(__a, b) __extension__ ({ \
+ int16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 33); })
+#define vst4q_s32(__a, b) __extension__ ({ \
+ int32x4x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 34); })
+#define vst4q_f16(__a, b) __extension__ ({ \
+ float16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 39); })
+#define vst4q_f32(__a, b) __extension__ ({ \
+ float32x4x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 40); })
+#define vst4q_p8(__a, b) __extension__ ({ \
+ poly8x16x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 36); })
+#define vst4q_p16(__a, b) __extension__ ({ \
+ poly16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 37); })
+#define vst4_u8(__a, b) __extension__ ({ \
+ uint8x8x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 16); })
+#define vst4_u16(__a, b) __extension__ ({ \
+ uint16x4x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 17); })
+#define vst4_u32(__a, b) __extension__ ({ \
+ uint32x2x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 18); })
+#define vst4_u64(__a, b) __extension__ ({ \
+ uint64x1x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 19); })
+#define vst4_s8(__a, b) __extension__ ({ \
+ int8x8x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], 0); })
+#define vst4_s16(__a, b) __extension__ ({ \
+ int16x4x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 1); })
+#define vst4_s32(__a, b) __extension__ ({ \
+ int32x2x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 2); })
+#define vst4_s64(__a, b) __extension__ ({ \
+ int64x1x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 3); })
+#define vst4_f16(__a, b) __extension__ ({ \
+ float16x4x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 7); })
+#define vst4_f32(__a, b) __extension__ ({ \
+ float32x2x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 8); })
+#define vst4_p8(__a, b) __extension__ ({ \
+ poly8x8x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 4); })
+#define vst4_p16(__a, b) __extension__ ({ \
+ poly16x4x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 5); })
+
+#define vst4q_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 49); })
+#define vst4q_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x4x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 50); })
+#define vst4q_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 33); })
+#define vst4q_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x4x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 34); })
+#define vst4q_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 39); })
+#define vst4q_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x4x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 40); })
+#define vst4q_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x8x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 37); })
+#define vst4_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x8x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 16); })
+#define vst4_lane_u16(__a, b, __c) __extension__ ({ \
+ uint16x4x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 17); })
+#define vst4_lane_u32(__a, b, __c) __extension__ ({ \
+ uint32x2x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 18); })
+#define vst4_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x8x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 0); })
+#define vst4_lane_s16(__a, b, __c) __extension__ ({ \
+ int16x4x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 1); })
+#define vst4_lane_s32(__a, b, __c) __extension__ ({ \
+ int32x2x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 2); })
+#define vst4_lane_f16(__a, b, __c) __extension__ ({ \
+ float16x4x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 7); })
+#define vst4_lane_f32(__a, b, __c) __extension__ ({ \
+ float32x2x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 8); })
+#define vst4_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x8x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 4); })
+#define vst4_lane_p16(__a, b, __c) __extension__ ({ \
+ poly16x4x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 5); })
+
+__ai int8x8_t vsub_s8(int8x8_t __a, int8x8_t __b) {
+ return __a - __b; }
+__ai int16x4_t vsub_s16(int16x4_t __a, int16x4_t __b) {
+ return __a - __b; }
+__ai int32x2_t vsub_s32(int32x2_t __a, int32x2_t __b) {
+ return __a - __b; }
+__ai int64x1_t vsub_s64(int64x1_t __a, int64x1_t __b) {
+ return __a - __b; }
+__ai float32x2_t vsub_f32(float32x2_t __a, float32x2_t __b) {
+ return __a - __b; }
+__ai uint8x8_t vsub_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __a - __b; }
+__ai uint16x4_t vsub_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __a - __b; }
+__ai uint32x2_t vsub_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __a - __b; }
+__ai uint64x1_t vsub_u64(uint64x1_t __a, uint64x1_t __b) {
+ return __a - __b; }
+__ai int8x16_t vsubq_s8(int8x16_t __a, int8x16_t __b) {
+ return __a - __b; }
+__ai int16x8_t vsubq_s16(int16x8_t __a, int16x8_t __b) {
+ return __a - __b; }
+__ai int32x4_t vsubq_s32(int32x4_t __a, int32x4_t __b) {
+ return __a - __b; }
+__ai int64x2_t vsubq_s64(int64x2_t __a, int64x2_t __b) {
+ return __a - __b; }
+__ai float32x4_t vsubq_f32(float32x4_t __a, float32x4_t __b) {
+ return __a - __b; }
+__ai uint8x16_t vsubq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __a - __b; }
+__ai uint16x8_t vsubq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __a - __b; }
+__ai uint32x4_t vsubq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __a - __b; }
+__ai uint64x2_t vsubq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __a - __b; }
+
+__ai int8x8_t vsubhn_s16(int16x8_t __a, int16x8_t __b) {
+ return (int8x8_t)__builtin_neon_vsubhn_v((int8x16_t)__a, (int8x16_t)__b, 0); }
+__ai int16x4_t vsubhn_s32(int32x4_t __a, int32x4_t __b) {
+ return (int16x4_t)__builtin_neon_vsubhn_v((int8x16_t)__a, (int8x16_t)__b, 1); }
+__ai int32x2_t vsubhn_s64(int64x2_t __a, int64x2_t __b) {
+ return (int32x2_t)__builtin_neon_vsubhn_v((int8x16_t)__a, (int8x16_t)__b, 2); }
+__ai uint8x8_t vsubhn_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vsubhn_v((int8x16_t)__a, (int8x16_t)__b, 16); }
+__ai uint16x4_t vsubhn_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vsubhn_v((int8x16_t)__a, (int8x16_t)__b, 17); }
+__ai uint32x2_t vsubhn_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vsubhn_v((int8x16_t)__a, (int8x16_t)__b, 18); }
+
+__ai int16x8_t vsubl_s8(int8x8_t __a, int8x8_t __b) {
+ return vmovl_s8(__a) - vmovl_s8(__b); }
+__ai int32x4_t vsubl_s16(int16x4_t __a, int16x4_t __b) {
+ return vmovl_s16(__a) - vmovl_s16(__b); }
+__ai int64x2_t vsubl_s32(int32x2_t __a, int32x2_t __b) {
+ return vmovl_s32(__a) - vmovl_s32(__b); }
+__ai uint16x8_t vsubl_u8(uint8x8_t __a, uint8x8_t __b) {
+ return vmovl_u8(__a) - vmovl_u8(__b); }
+__ai uint32x4_t vsubl_u16(uint16x4_t __a, uint16x4_t __b) {
+ return vmovl_u16(__a) - vmovl_u16(__b); }
+__ai uint64x2_t vsubl_u32(uint32x2_t __a, uint32x2_t __b) {
+ return vmovl_u32(__a) - vmovl_u32(__b); }
+
+__ai int16x8_t vsubw_s8(int16x8_t __a, int8x8_t __b) {
+ return __a - vmovl_s8(__b); }
+__ai int32x4_t vsubw_s16(int32x4_t __a, int16x4_t __b) {
+ return __a - vmovl_s16(__b); }
+__ai int64x2_t vsubw_s32(int64x2_t __a, int32x2_t __b) {
+ return __a - vmovl_s32(__b); }
+__ai uint16x8_t vsubw_u8(uint16x8_t __a, uint8x8_t __b) {
+ return __a - vmovl_u8(__b); }
+__ai uint32x4_t vsubw_u16(uint32x4_t __a, uint16x4_t __b) {
+ return __a - vmovl_u16(__b); }
+__ai uint64x2_t vsubw_u32(uint64x2_t __a, uint32x2_t __b) {
+ return __a - vmovl_u32(__b); }
+
+__ai uint8x8_t vtbl1_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtbl1_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai int8x8_t vtbl1_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vtbl1_v(__a, __b, 0); }
+__ai poly8x8_t vtbl1_p8(poly8x8_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vtbl1_v((int8x8_t)__a, (int8x8_t)__b, 4); }
+
+__ai uint8x8_t vtbl2_u8(uint8x8x2_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtbl2_v((int8x8_t)__a.val[0], (int8x8_t)__a.val[1], (int8x8_t)__b, 16); }
+__ai int8x8_t vtbl2_s8(int8x8x2_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vtbl2_v(__a.val[0], __a.val[1], __b, 0); }
+__ai poly8x8_t vtbl2_p8(poly8x8x2_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vtbl2_v((int8x8_t)__a.val[0], (int8x8_t)__a.val[1], (int8x8_t)__b, 4); }
+
+__ai uint8x8_t vtbl3_u8(uint8x8x3_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtbl3_v((int8x8_t)__a.val[0], (int8x8_t)__a.val[1], (int8x8_t)__a.val[2], (int8x8_t)__b, 16); }
+__ai int8x8_t vtbl3_s8(int8x8x3_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vtbl3_v(__a.val[0], __a.val[1], __a.val[2], __b, 0); }
+__ai poly8x8_t vtbl3_p8(poly8x8x3_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vtbl3_v((int8x8_t)__a.val[0], (int8x8_t)__a.val[1], (int8x8_t)__a.val[2], (int8x8_t)__b, 4); }
+
+__ai uint8x8_t vtbl4_u8(uint8x8x4_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtbl4_v((int8x8_t)__a.val[0], (int8x8_t)__a.val[1], (int8x8_t)__a.val[2], (int8x8_t)__a.val[3], (int8x8_t)__b, 16); }
+__ai int8x8_t vtbl4_s8(int8x8x4_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vtbl4_v(__a.val[0], __a.val[1], __a.val[2], __a.val[3], __b, 0); }
+__ai poly8x8_t vtbl4_p8(poly8x8x4_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vtbl4_v((int8x8_t)__a.val[0], (int8x8_t)__a.val[1], (int8x8_t)__a.val[2], (int8x8_t)__a.val[3], (int8x8_t)__b, 4); }
+
+__ai uint8x8_t vtbx1_u8(uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vtbx1_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 16); }
+__ai int8x8_t vtbx1_s8(int8x8_t __a, int8x8_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vtbx1_v(__a, __b, __c, 0); }
+__ai poly8x8_t vtbx1_p8(poly8x8_t __a, poly8x8_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vtbx1_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 4); }
+
+__ai uint8x8_t vtbx2_u8(uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vtbx2_v((int8x8_t)__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__c, 16); }
+__ai int8x8_t vtbx2_s8(int8x8_t __a, int8x8x2_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vtbx2_v(__a, __b.val[0], __b.val[1], __c, 0); }
+__ai poly8x8_t vtbx2_p8(poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vtbx2_v((int8x8_t)__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__c, 4); }
+
+__ai uint8x8_t vtbx3_u8(uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vtbx3_v((int8x8_t)__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__c, 16); }
+__ai int8x8_t vtbx3_s8(int8x8_t __a, int8x8x3_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vtbx3_v(__a, __b.val[0], __b.val[1], __b.val[2], __c, 0); }
+__ai poly8x8_t vtbx3_p8(poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vtbx3_v((int8x8_t)__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__c, 4); }
+
+__ai uint8x8_t vtbx4_u8(uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vtbx4_v((int8x8_t)__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], (int8x8_t)__c, 16); }
+__ai int8x8_t vtbx4_s8(int8x8_t __a, int8x8x4_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vtbx4_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 0); }
+__ai poly8x8_t vtbx4_p8(poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vtbx4_v((int8x8_t)__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], (int8x8_t)__c, 4); }
+
+__ai int8x8x2_t vtrn_s8(int8x8_t __a, int8x8_t __b) {
+ int8x8x2_t r; __builtin_neon_vtrn_v(&r, __a, __b, 0); return r; }
+__ai int16x4x2_t vtrn_s16(int16x4_t __a, int16x4_t __b) {
+ int16x4x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 1); return r; }
+__ai int32x2x2_t vtrn_s32(int32x2_t __a, int32x2_t __b) {
+ int32x2x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 2); return r; }
+__ai uint8x8x2_t vtrn_u8(uint8x8_t __a, uint8x8_t __b) {
+ uint8x8x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 16); return r; }
+__ai uint16x4x2_t vtrn_u16(uint16x4_t __a, uint16x4_t __b) {
+ uint16x4x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 17); return r; }
+__ai uint32x2x2_t vtrn_u32(uint32x2_t __a, uint32x2_t __b) {
+ uint32x2x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 18); return r; }
+__ai float32x2x2_t vtrn_f32(float32x2_t __a, float32x2_t __b) {
+ float32x2x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 8); return r; }
+__ai poly8x8x2_t vtrn_p8(poly8x8_t __a, poly8x8_t __b) {
+ poly8x8x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 4); return r; }
+__ai poly16x4x2_t vtrn_p16(poly16x4_t __a, poly16x4_t __b) {
+ poly16x4x2_t r; __builtin_neon_vtrn_v(&r, (int8x8_t)__a, (int8x8_t)__b, 5); return r; }
+__ai int8x16x2_t vtrnq_s8(int8x16_t __a, int8x16_t __b) {
+ int8x16x2_t r; __builtin_neon_vtrnq_v(&r, __a, __b, 32); return r; }
+__ai int16x8x2_t vtrnq_s16(int16x8_t __a, int16x8_t __b) {
+ int16x8x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 33); return r; }
+__ai int32x4x2_t vtrnq_s32(int32x4_t __a, int32x4_t __b) {
+ int32x4x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 34); return r; }
+__ai uint8x16x2_t vtrnq_u8(uint8x16_t __a, uint8x16_t __b) {
+ uint8x16x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 48); return r; }
+__ai uint16x8x2_t vtrnq_u16(uint16x8_t __a, uint16x8_t __b) {
+ uint16x8x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 49); return r; }
+__ai uint32x4x2_t vtrnq_u32(uint32x4_t __a, uint32x4_t __b) {
+ uint32x4x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 50); return r; }
+__ai float32x4x2_t vtrnq_f32(float32x4_t __a, float32x4_t __b) {
+ float32x4x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 40); return r; }
+__ai poly8x16x2_t vtrnq_p8(poly8x16_t __a, poly8x16_t __b) {
+ poly8x16x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 36); return r; }
+__ai poly16x8x2_t vtrnq_p16(poly16x8_t __a, poly16x8_t __b) {
+ poly16x8x2_t r; __builtin_neon_vtrnq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 37); return r; }
+
+__ai uint8x8_t vtst_s8(int8x8_t __a, int8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtst_v(__a, __b, 16); }
+__ai uint16x4_t vtst_s16(int16x4_t __a, int16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vtst_s32(int32x2_t __a, int32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint8x8_t vtst_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vtst_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vtst_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint8x8_t vtst_p8(poly8x8_t __a, poly8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vtst_p16(poly16x4_t __a, poly16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint8x16_t vtstq_s8(int8x16_t __a, int8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vtstq_v(__a, __b, 48); }
+__ai uint16x8_t vtstq_s16(int16x8_t __a, int16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vtstq_s32(int32x4_t __a, int32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint8x16_t vtstq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vtstq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vtstq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint8x16_t vtstq_p8(poly8x16_t __a, poly8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vtstq_p16(poly16x8_t __a, poly16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+
+__ai int8x8x2_t vuzp_s8(int8x8_t __a, int8x8_t __b) {
+ int8x8x2_t r; __builtin_neon_vuzp_v(&r, __a, __b, 0); return r; }
+__ai int16x4x2_t vuzp_s16(int16x4_t __a, int16x4_t __b) {
+ int16x4x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 1); return r; }
+__ai int32x2x2_t vuzp_s32(int32x2_t __a, int32x2_t __b) {
+ int32x2x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 2); return r; }
+__ai uint8x8x2_t vuzp_u8(uint8x8_t __a, uint8x8_t __b) {
+ uint8x8x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 16); return r; }
+__ai uint16x4x2_t vuzp_u16(uint16x4_t __a, uint16x4_t __b) {
+ uint16x4x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 17); return r; }
+__ai uint32x2x2_t vuzp_u32(uint32x2_t __a, uint32x2_t __b) {
+ uint32x2x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 18); return r; }
+__ai float32x2x2_t vuzp_f32(float32x2_t __a, float32x2_t __b) {
+ float32x2x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 8); return r; }
+__ai poly8x8x2_t vuzp_p8(poly8x8_t __a, poly8x8_t __b) {
+ poly8x8x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 4); return r; }
+__ai poly16x4x2_t vuzp_p16(poly16x4_t __a, poly16x4_t __b) {
+ poly16x4x2_t r; __builtin_neon_vuzp_v(&r, (int8x8_t)__a, (int8x8_t)__b, 5); return r; }
+__ai int8x16x2_t vuzpq_s8(int8x16_t __a, int8x16_t __b) {
+ int8x16x2_t r; __builtin_neon_vuzpq_v(&r, __a, __b, 32); return r; }
+__ai int16x8x2_t vuzpq_s16(int16x8_t __a, int16x8_t __b) {
+ int16x8x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 33); return r; }
+__ai int32x4x2_t vuzpq_s32(int32x4_t __a, int32x4_t __b) {
+ int32x4x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 34); return r; }
+__ai uint8x16x2_t vuzpq_u8(uint8x16_t __a, uint8x16_t __b) {
+ uint8x16x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 48); return r; }
+__ai uint16x8x2_t vuzpq_u16(uint16x8_t __a, uint16x8_t __b) {
+ uint16x8x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 49); return r; }
+__ai uint32x4x2_t vuzpq_u32(uint32x4_t __a, uint32x4_t __b) {
+ uint32x4x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 50); return r; }
+__ai float32x4x2_t vuzpq_f32(float32x4_t __a, float32x4_t __b) {
+ float32x4x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 40); return r; }
+__ai poly8x16x2_t vuzpq_p8(poly8x16_t __a, poly8x16_t __b) {
+ poly8x16x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 36); return r; }
+__ai poly16x8x2_t vuzpq_p16(poly16x8_t __a, poly16x8_t __b) {
+ poly16x8x2_t r; __builtin_neon_vuzpq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 37); return r; }
+
+__ai int8x8x2_t vzip_s8(int8x8_t __a, int8x8_t __b) {
+ int8x8x2_t r; __builtin_neon_vzip_v(&r, __a, __b, 0); return r; }
+__ai int16x4x2_t vzip_s16(int16x4_t __a, int16x4_t __b) {
+ int16x4x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 1); return r; }
+__ai int32x2x2_t vzip_s32(int32x2_t __a, int32x2_t __b) {
+ int32x2x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 2); return r; }
+__ai uint8x8x2_t vzip_u8(uint8x8_t __a, uint8x8_t __b) {
+ uint8x8x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 16); return r; }
+__ai uint16x4x2_t vzip_u16(uint16x4_t __a, uint16x4_t __b) {
+ uint16x4x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 17); return r; }
+__ai uint32x2x2_t vzip_u32(uint32x2_t __a, uint32x2_t __b) {
+ uint32x2x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 18); return r; }
+__ai float32x2x2_t vzip_f32(float32x2_t __a, float32x2_t __b) {
+ float32x2x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 8); return r; }
+__ai poly8x8x2_t vzip_p8(poly8x8_t __a, poly8x8_t __b) {
+ poly8x8x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 4); return r; }
+__ai poly16x4x2_t vzip_p16(poly16x4_t __a, poly16x4_t __b) {
+ poly16x4x2_t r; __builtin_neon_vzip_v(&r, (int8x8_t)__a, (int8x8_t)__b, 5); return r; }
+__ai int8x16x2_t vzipq_s8(int8x16_t __a, int8x16_t __b) {
+ int8x16x2_t r; __builtin_neon_vzipq_v(&r, __a, __b, 32); return r; }
+__ai int16x8x2_t vzipq_s16(int16x8_t __a, int16x8_t __b) {
+ int16x8x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 33); return r; }
+__ai int32x4x2_t vzipq_s32(int32x4_t __a, int32x4_t __b) {
+ int32x4x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 34); return r; }
+__ai uint8x16x2_t vzipq_u8(uint8x16_t __a, uint8x16_t __b) {
+ uint8x16x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 48); return r; }
+__ai uint16x8x2_t vzipq_u16(uint16x8_t __a, uint16x8_t __b) {
+ uint16x8x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 49); return r; }
+__ai uint32x4x2_t vzipq_u32(uint32x4_t __a, uint32x4_t __b) {
+ uint32x4x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 50); return r; }
+__ai float32x4x2_t vzipq_f32(float32x4_t __a, float32x4_t __b) {
+ float32x4x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 40); return r; }
+__ai poly8x16x2_t vzipq_p8(poly8x16_t __a, poly8x16_t __b) {
+ poly8x16x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 36); return r; }
+__ai poly16x8x2_t vzipq_p16(poly16x8_t __a, poly16x8_t __b) {
+ poly16x8x2_t r; __builtin_neon_vzipq_v(&r, (int8x16_t)__a, (int8x16_t)__b, 37); return r; }
+
+#ifdef __aarch64__
+__ai int16x8_t vmovl_high_s8(int8x16_t __a) {
+ int8x8_t __a1 = vget_high_s8(__a);
+ return (int16x8_t)vshll_n_s8(__a1, 0); }
+__ai int32x4_t vmovl_high_s16(int16x8_t __a) {
+ int16x4_t __a1 = vget_high_s16(__a);
+ return (int32x4_t)vshll_n_s16(__a1, 0); }
+__ai int64x2_t vmovl_high_s32(int32x4_t __a) {
+ int32x2_t __a1 = vget_high_s32(__a);
+ return (int64x2_t)vshll_n_s32(__a1, 0); }
+__ai uint16x8_t vmovl_high_u8(uint8x16_t __a) {
+ uint8x8_t __a1 = vget_high_u8(__a);
+ return (uint16x8_t)vshll_n_u8(__a1, 0); }
+__ai uint32x4_t vmovl_high_u16(uint16x8_t __a) {
+ uint16x4_t __a1 = vget_high_u16(__a);
+ return (uint32x4_t)vshll_n_u16(__a1, 0); }
+__ai uint64x2_t vmovl_high_u32(uint32x4_t __a) {
+ uint32x2_t __a1 = vget_high_u32(__a);
+ return (uint64x2_t)vshll_n_u32(__a1, 0); }
+
+__ai int16x8_t vmull_high_s8(int8x16_t __a, int8x16_t __b) {
+ return vmull_s8(vget_high_s8(__a), vget_high_s8(__b)); }
+__ai int32x4_t vmull_high_s16(int16x8_t __a, int16x8_t __b) {
+ return vmull_s16(vget_high_s16(__a), vget_high_s16(__b)); }
+__ai int64x2_t vmull_high_s32(int32x4_t __a, int32x4_t __b) {
+ return vmull_s32(vget_high_s32(__a), vget_high_s32(__b)); }
+__ai uint16x8_t vmull_high_u8(uint8x16_t __a, uint8x16_t __b) {
+ return vmull_u8(vget_high_u8(__a), vget_high_u8(__b)); }
+__ai uint32x4_t vmull_high_u16(uint16x8_t __a, uint16x8_t __b) {
+ return vmull_u16(vget_high_u16(__a), vget_high_u16(__b)); }
+__ai uint64x2_t vmull_high_u32(uint32x4_t __a, uint32x4_t __b) {
+ return vmull_u32(vget_high_u32(__a), vget_high_u32(__b)); }
+__ai poly16x8_t vmull_high_p8(poly8x16_t __a, poly8x16_t __b) {
+ return vmull_p8(vget_high_p8(__a), vget_high_p8(__b)); }
+
+__ai int16x8_t vabdl_high_s8(int8x16_t __a, int8x16_t __b) {
+ return vabdl_s8(vget_high_s8(__a), vget_high_s8(__b)); }
+__ai int32x4_t vabdl_high_s16(int16x8_t __a, int16x8_t __b) {
+ return vabdl_s16(vget_high_s16(__a), vget_high_s16(__b)); }
+__ai int64x2_t vabdl_high_s32(int32x4_t __a, int32x4_t __b) {
+ return vabdl_s32(vget_high_s32(__a), vget_high_s32(__b)); }
+__ai uint16x8_t vabdl_high_u8(uint8x16_t __a, uint8x16_t __b) {
+ return vabdl_u8(vget_high_u8(__a), vget_high_u8(__b)); }
+__ai uint32x4_t vabdl_high_u16(uint16x8_t __a, uint16x8_t __b) {
+ return vabdl_u16(vget_high_u16(__a), vget_high_u16(__b)); }
+__ai uint64x2_t vabdl_high_u32(uint32x4_t __a, uint32x4_t __b) {
+ return vabdl_u32(vget_high_u32(__a), vget_high_u32(__b)); }
+
+__ai float64x1_t vabd_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vabd_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float64x2_t vabdq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vabdq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai int64x1_t vabs_s64(int64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vabs_v((int8x8_t)__a, 3); }
+__ai float64x1_t vabs_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vabs_v((int8x8_t)__a, 9); }
+__ai int64x2_t vabsq_s64(int64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vabsq_v((int8x16_t)__a, 35); }
+__ai float64x2_t vabsq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vabsq_v((int8x16_t)__a, 41); }
+
+__ai float64x1_t vadd_f64(float64x1_t __a, float64x1_t __b) {
+ return __a + __b; }
+__ai float64x2_t vaddq_f64(float64x2_t __a, float64x2_t __b) {
+ return __a + __b; }
+
+__ai int8x16_t vpaddq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vpaddq_v(__a, __b, 32); }
+__ai int16x8_t vpaddq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vpaddq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vpaddq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+__ai uint8x16_t vpaddq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vpaddq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vpaddq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vpaddq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+__ai float32x4_t vpaddq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vpaddq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vpaddq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float64x1_t vbsl_f64(uint64x1_t __a, float64x1_t __b, float64x1_t __c) {
+ return (float64x1_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 9); }
+__ai float64x2_t vbslq_f64(uint64x2_t __a, float64x2_t __b, float64x2_t __c) {
+ return (float64x2_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 41); }
+__ai poly64x1_t vbsl_p64(uint64x1_t __a, poly64x1_t __b, poly64x1_t __c) {
+ return (poly64x1_t)__builtin_neon_vbsl_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 6); }
+__ai poly64x2_t vbslq_p64(uint64x2_t __a, poly64x2_t __b, poly64x2_t __c) {
+ return (poly64x2_t)__builtin_neon_vbslq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 38); }
+
+__ai uint64x1_t vceq_s64(int64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)(__a == __b); }
+__ai uint64x1_t vceq_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)(__a == __b); }
+__ai uint64x1_t vceq_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)(__a == __b); }
+__ai uint64x2_t vceqq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)(__a == __b); }
+__ai uint64x2_t vceqq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)(__a == __b); }
+__ai uint64x2_t vceqq_s64(int64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)(__a == __b); }
+__ai uint64x1_t vceq_p64(poly64x1_t __a, poly64x1_t __b) {
+ return (uint64x1_t)(__a == __b); }
+__ai uint64x2_t vceqq_p64(poly64x2_t __a, poly64x2_t __b) {
+ return (uint64x2_t)(__a == __b); }
+
+__ai uint64x1_t vcge_s64(int64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)(__a >= __b); }
+__ai uint64x1_t vcge_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)(__a >= __b); }
+__ai uint64x2_t vcgeq_s64(int64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)(__a >= __b); }
+__ai uint64x2_t vcgeq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)(__a >= __b); }
+__ai uint64x1_t vcge_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)(__a >= __b); }
+__ai uint64x2_t vcgeq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)(__a >= __b); }
+
+__ai uint64x1_t vcgt_s64(int64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)(__a > __b); }
+__ai uint64x1_t vcgt_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)(__a > __b); }
+__ai uint64x2_t vcgtq_s64(int64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)(__a > __b); }
+__ai uint64x2_t vcgtq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)(__a > __b); }
+__ai uint64x1_t vcgt_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)(__a > __b); }
+__ai uint64x2_t vcgtq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)(__a > __b); }
+
+__ai uint64x1_t vcle_s64(int64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)(__a <= __b); }
+__ai uint64x1_t vcle_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)(__a <= __b); }
+__ai uint64x2_t vcleq_s64(int64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)(__a <= __b); }
+__ai uint64x2_t vcleq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)(__a <= __b); }
+__ai uint64x1_t vcle_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)(__a <= __b); }
+__ai uint64x2_t vcleq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)(__a <= __b); }
+
+__ai uint64x1_t vclt_s64(int64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)(__a < __b); }
+__ai uint64x1_t vclt_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)(__a < __b); }
+__ai uint64x2_t vcltq_s64(int64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)(__a < __b); }
+__ai uint64x2_t vcltq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)(__a < __b); }
+__ai uint64x1_t vclt_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)(__a < __b); }
+__ai uint64x2_t vcltq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)(__a < __b); }
+
+__ai uint8x8_t vceqz_s8(int8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vceqz_v(__a, 16); }
+__ai uint16x4_t vceqz_s16(int16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vceqz_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vceqz_s32(int32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vceqz_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vceqz_s64(int64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vceqz_v((int8x8_t)__a, 19); }
+__ai uint32x2_t vceqz_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vceqz_v((int8x8_t)__a, 18); }
+__ai uint8x8_t vceqz_u8(uint8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vceqz_v((int8x8_t)__a, 16); }
+__ai uint16x4_t vceqz_u16(uint16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vceqz_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vceqz_u32(uint32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vceqz_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vceqz_u64(uint64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vceqz_v((int8x8_t)__a, 19); }
+__ai uint8x8_t vceqz_p8(poly8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vceqz_v((int8x8_t)__a, 16); }
+__ai uint16x4_t vceqz_p16(poly16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vceqz_v((int8x8_t)__a, 17); }
+__ai uint64x1_t vceqz_p64(poly64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vceqz_v((int8x8_t)__a, 19); }
+__ai uint8x16_t vceqzq_s8(int8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vceqzq_v(__a, 48); }
+__ai uint16x8_t vceqzq_s16(int16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vceqzq_s32(int32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vceqzq_s64(int64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 51); }
+__ai uint32x4_t vceqzq_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 50); }
+__ai uint8x16_t vceqzq_u8(uint8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 48); }
+__ai uint16x8_t vceqzq_u16(uint16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vceqzq_u32(uint32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vceqzq_u64(uint64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 51); }
+__ai uint8x16_t vceqzq_p8(poly8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 48); }
+__ai uint16x8_t vceqzq_p16(poly16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 49); }
+__ai uint64x1_t vceqz_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vceqz_v((int8x8_t)__a, 19); }
+__ai uint64x2_t vceqzq_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 51); }
+__ai uint64x2_t vceqzq_p64(poly64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vceqzq_v((int8x16_t)__a, 51); }
+
+__ai uint8x8_t vcgez_s8(int8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vcgez_v(__a, 16); }
+__ai uint16x4_t vcgez_s16(int16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vcgez_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vcgez_s32(int32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcgez_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vcgez_s64(int64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcgez_v((int8x8_t)__a, 19); }
+__ai uint32x2_t vcgez_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcgez_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vcgez_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcgez_v((int8x8_t)__a, 19); }
+__ai uint8x16_t vcgezq_s8(int8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vcgezq_v(__a, 48); }
+__ai uint16x8_t vcgezq_s16(int16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vcgezq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vcgezq_s32(int32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcgezq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vcgezq_s64(int64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcgezq_v((int8x16_t)__a, 51); }
+__ai uint32x4_t vcgezq_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcgezq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vcgezq_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcgezq_v((int8x16_t)__a, 51); }
+
+__ai uint8x8_t vcgtz_s8(int8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vcgtz_v(__a, 16); }
+__ai uint16x4_t vcgtz_s16(int16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vcgtz_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vcgtz_s32(int32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcgtz_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vcgtz_s64(int64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcgtz_v((int8x8_t)__a, 19); }
+__ai uint32x2_t vcgtz_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcgtz_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vcgtz_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcgtz_v((int8x8_t)__a, 19); }
+__ai uint8x16_t vcgtzq_s8(int8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vcgtzq_v(__a, 48); }
+__ai uint16x8_t vcgtzq_s16(int16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vcgtzq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vcgtzq_s32(int32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcgtzq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vcgtzq_s64(int64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcgtzq_v((int8x16_t)__a, 51); }
+__ai uint32x4_t vcgtzq_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcgtzq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vcgtzq_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcgtzq_v((int8x16_t)__a, 51); }
+
+__ai uint8x8_t vclez_s8(int8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vclez_v(__a, 16); }
+__ai uint16x4_t vclez_s16(int16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vclez_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vclez_s32(int32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vclez_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vclez_s64(int64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vclez_v((int8x8_t)__a, 19); }
+__ai uint32x2_t vclez_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vclez_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vclez_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vclez_v((int8x8_t)__a, 19); }
+__ai uint8x16_t vclezq_s8(int8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vclezq_v(__a, 48); }
+__ai uint16x8_t vclezq_s16(int16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vclezq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vclezq_s32(int32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vclezq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vclezq_s64(int64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vclezq_v((int8x16_t)__a, 51); }
+__ai uint32x4_t vclezq_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vclezq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vclezq_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vclezq_v((int8x16_t)__a, 51); }
+
+__ai uint8x8_t vcltz_s8(int8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vcltz_v(__a, 16); }
+__ai uint16x4_t vcltz_s16(int16x4_t __a) {
+ return (uint16x4_t)__builtin_neon_vcltz_v((int8x8_t)__a, 17); }
+__ai uint32x2_t vcltz_s32(int32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcltz_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vcltz_s64(int64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcltz_v((int8x8_t)__a, 19); }
+__ai uint32x2_t vcltz_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcltz_v((int8x8_t)__a, 18); }
+__ai uint64x1_t vcltz_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcltz_v((int8x8_t)__a, 19); }
+__ai uint8x16_t vcltzq_s8(int8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vcltzq_v(__a, 48); }
+__ai uint16x8_t vcltzq_s16(int16x8_t __a) {
+ return (uint16x8_t)__builtin_neon_vcltzq_v((int8x16_t)__a, 49); }
+__ai uint32x4_t vcltzq_s32(int32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcltzq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vcltzq_s64(int64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcltzq_v((int8x16_t)__a, 51); }
+__ai uint32x4_t vcltzq_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcltzq_v((int8x16_t)__a, 50); }
+__ai uint64x2_t vcltzq_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcltzq_v((int8x16_t)__a, 51); }
+
+__ai uint64x1_t vtst_s64(int64x1_t __a, int64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x1_t vtst_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x2_t vtstq_s64(int64x2_t __a, int64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+__ai uint64x2_t vtstq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+__ai uint64x1_t vtst_p64(poly64x1_t __a, poly64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vtst_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x2_t vtstq_p64(poly64x2_t __a, poly64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vtstq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai float64x2_t vcombine_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x2_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+__ai poly64x2_t vcombine_p64(poly64x1_t __a, poly64x1_t __b) {
+ return (poly64x2_t)__builtin_shufflevector((int64x1_t)__a, (int64x1_t)__b, 0, 1); }
+
+#define vcopyq_lane_s8(a1, __b1, c1, __d1) __extension__ ({ \
+ int8x16_t __a1 = (a1); int8x8_t __c1 = (c1); \
+ int8_t __c2 = vget_lane_s8(__c1, __d1); \
+ vsetq_lane_s8(__c2, __a1, __b1); })
+#define vcopyq_lane_s16(a1, __b1, c1, __d1) __extension__ ({ \
+ int16x8_t __a1 = (a1); int16x4_t __c1 = (c1); \
+ int16_t __c2 = vget_lane_s16(__c1, __d1); \
+ vsetq_lane_s16(__c2, __a1, __b1); })
+#define vcopyq_lane_s32(a1, __b1, c1, __d1) __extension__ ({ \
+ int32x4_t __a1 = (a1); int32x2_t __c1 = (c1); \
+ int32_t __c2 = vget_lane_s32(__c1, __d1); \
+ vsetq_lane_s32(__c2, __a1, __b1); })
+#define vcopyq_lane_s64(a1, __b1, c1, __d1) __extension__ ({ \
+ int64x2_t __a1 = (a1); int64x1_t __c1 = (c1); \
+ int64_t __c2 = vget_lane_s64(__c1, __d1); \
+ vsetq_lane_s64(__c2, __a1, __b1); })
+#define vcopyq_lane_u8(a1, __b1, c1, __d1) __extension__ ({ \
+ uint8x16_t __a1 = (a1); uint8x8_t __c1 = (c1); \
+ uint8_t __c2 = vget_lane_u8(__c1, __d1); \
+ vsetq_lane_u8(__c2, __a1, __b1); })
+#define vcopyq_lane_u16(a1, __b1, c1, __d1) __extension__ ({ \
+ uint16x8_t __a1 = (a1); uint16x4_t __c1 = (c1); \
+ uint16_t __c2 = vget_lane_u16(__c1, __d1); \
+ vsetq_lane_u16(__c2, __a1, __b1); })
+#define vcopyq_lane_u32(a1, __b1, c1, __d1) __extension__ ({ \
+ uint32x4_t __a1 = (a1); uint32x2_t __c1 = (c1); \
+ uint32_t __c2 = vget_lane_u32(__c1, __d1); \
+ vsetq_lane_u32(__c2, __a1, __b1); })
+#define vcopyq_lane_u64(a1, __b1, c1, __d1) __extension__ ({ \
+ uint64x2_t __a1 = (a1); uint64x1_t __c1 = (c1); \
+ uint64_t __c2 = vget_lane_u64(__c1, __d1); \
+ vsetq_lane_u64(__c2, __a1, __b1); })
+#define vcopyq_lane_p8(a1, __b1, c1, __d1) __extension__ ({ \
+ poly8x16_t __a1 = (a1); poly8x8_t __c1 = (c1); \
+ poly8_t __c2 = vget_lane_p8(__c1, __d1); \
+ vsetq_lane_p8(__c2, __a1, __b1); })
+#define vcopyq_lane_p16(a1, __b1, c1, __d1) __extension__ ({ \
+ poly16x8_t __a1 = (a1); poly16x4_t __c1 = (c1); \
+ poly16_t __c2 = vget_lane_p16(__c1, __d1); \
+ vsetq_lane_p16(__c2, __a1, __b1); })
+#define vcopyq_lane_f32(a1, __b1, c1, __d1) __extension__ ({ \
+ float32x4_t __a1 = (a1); float32x2_t __c1 = (c1); \
+ float32_t __c2 = vget_lane_f32(__c1, __d1); \
+ vsetq_lane_f32(__c2, __a1, __b1); })
+#define vcopyq_lane_f64(a1, __b1, c1, __d1) __extension__ ({ \
+ float64x2_t __a1 = (a1); float64x1_t __c1 = (c1); \
+ float64_t __c2 = vget_lane_f64(__c1, __d1); \
+ vsetq_lane_f64(__c2, __a1, __b1); })
+#define vcopyq_lane_p64(a1, __b1, c1, __d1) __extension__ ({ \
+ poly64x2_t __a1 = (a1); poly64x1_t __c1 = (c1); \
+ poly64_t __c2 = vget_lane_p64(__c1, __d1); \
+ vsetq_lane_p64(__c2, __a1, __b1); })
+
+#define vcopyq_laneq_s8(a1, __b1, c1, __d1) __extension__ ({ \
+ int8x16_t __a1 = (a1); int8x16_t __c1 = (c1); \
+ int8_t __c2 = vgetq_lane_s8(__c1, __d1); \
+ vsetq_lane_s8(__c2, __a1, __b1); })
+#define vcopyq_laneq_s16(a1, __b1, c1, __d1) __extension__ ({ \
+ int16x8_t __a1 = (a1); int16x8_t __c1 = (c1); \
+ int16_t __c2 = vgetq_lane_s16(__c1, __d1); \
+ vsetq_lane_s16(__c2, __a1, __b1); })
+#define vcopyq_laneq_s32(a1, __b1, c1, __d1) __extension__ ({ \
+ int32x4_t __a1 = (a1); int32x4_t __c1 = (c1); \
+ int32_t __c2 = vgetq_lane_s32(__c1, __d1); \
+ vsetq_lane_s32(__c2, __a1, __b1); })
+#define vcopyq_laneq_s64(a1, __b1, c1, __d1) __extension__ ({ \
+ int64x2_t __a1 = (a1); int64x2_t __c1 = (c1); \
+ int64_t __c2 = vgetq_lane_s64(__c1, __d1); \
+ vsetq_lane_s64(__c2, __a1, __b1); })
+#define vcopyq_laneq_u8(a1, __b1, c1, __d1) __extension__ ({ \
+ uint8x16_t __a1 = (a1); uint8x16_t __c1 = (c1); \
+ uint8_t __c2 = vgetq_lane_u8(__c1, __d1); \
+ vsetq_lane_u8(__c2, __a1, __b1); })
+#define vcopyq_laneq_u16(a1, __b1, c1, __d1) __extension__ ({ \
+ uint16x8_t __a1 = (a1); uint16x8_t __c1 = (c1); \
+ uint16_t __c2 = vgetq_lane_u16(__c1, __d1); \
+ vsetq_lane_u16(__c2, __a1, __b1); })
+#define vcopyq_laneq_u32(a1, __b1, c1, __d1) __extension__ ({ \
+ uint32x4_t __a1 = (a1); uint32x4_t __c1 = (c1); \
+ uint32_t __c2 = vgetq_lane_u32(__c1, __d1); \
+ vsetq_lane_u32(__c2, __a1, __b1); })
+#define vcopyq_laneq_u64(a1, __b1, c1, __d1) __extension__ ({ \
+ uint64x2_t __a1 = (a1); uint64x2_t __c1 = (c1); \
+ uint64_t __c2 = vgetq_lane_u64(__c1, __d1); \
+ vsetq_lane_u64(__c2, __a1, __b1); })
+#define vcopyq_laneq_p8(a1, __b1, c1, __d1) __extension__ ({ \
+ poly8x16_t __a1 = (a1); poly8x16_t __c1 = (c1); \
+ poly8_t __c2 = vgetq_lane_p8(__c1, __d1); \
+ vsetq_lane_p8(__c2, __a1, __b1); })
+#define vcopyq_laneq_p16(a1, __b1, c1, __d1) __extension__ ({ \
+ poly16x8_t __a1 = (a1); poly16x8_t __c1 = (c1); \
+ poly16_t __c2 = vgetq_lane_p16(__c1, __d1); \
+ vsetq_lane_p16(__c2, __a1, __b1); })
+#define vcopyq_laneq_f32(a1, __b1, c1, __d1) __extension__ ({ \
+ float32x4_t __a1 = (a1); float32x4_t __c1 = (c1); \
+ float32_t __c2 = vgetq_lane_f32(__c1, __d1); \
+ vsetq_lane_f32(__c2, __a1, __b1); })
+#define vcopyq_laneq_f64(a1, __b1, c1, __d1) __extension__ ({ \
+ float64x2_t __a1 = (a1); float64x2_t __c1 = (c1); \
+ float64_t __c2 = vgetq_lane_f64(__c1, __d1); \
+ vsetq_lane_f64(__c2, __a1, __b1); })
+#define vcopyq_laneq_p64(a1, __b1, c1, __d1) __extension__ ({ \
+ poly64x2_t __a1 = (a1); poly64x2_t __c1 = (c1); \
+ poly64_t __c2 = vgetq_lane_p64(__c1, __d1); \
+ vsetq_lane_p64(__c2, __a1, __b1); })
+
+#define vcopy_lane_s8(a1, __b1, c1, __d1) __extension__ ({ \
+ int8x8_t __a1 = (a1); int8x8_t __c1 = (c1); \
+ int8_t __c2 = vget_lane_s8(__c1, __d1); \
+ vset_lane_s8(__c2, __a1, __b1); })
+#define vcopy_lane_s16(a1, __b1, c1, __d1) __extension__ ({ \
+ int16x4_t __a1 = (a1); int16x4_t __c1 = (c1); \
+ int16_t __c2 = vget_lane_s16(__c1, __d1); \
+ vset_lane_s16(__c2, __a1, __b1); })
+#define vcopy_lane_s32(a1, __b1, c1, __d1) __extension__ ({ \
+ int32x2_t __a1 = (a1); int32x2_t __c1 = (c1); \
+ int32_t __c2 = vget_lane_s32(__c1, __d1); \
+ vset_lane_s32(__c2, __a1, __b1); })
+#define vcopy_lane_s64(a1, __b1, c1, __d1) __extension__ ({ \
+ int64x1_t __a1 = (a1); int64x1_t __c1 = (c1); \
+ int64_t __c2 = vget_lane_s64(__c1, __d1); \
+ vset_lane_s64(__c2, __a1, __b1); })
+#define vcopy_lane_p8(a1, __b1, c1, __d1) __extension__ ({ \
+ poly8x8_t __a1 = (a1); poly8x8_t __c1 = (c1); \
+ poly8_t __c2 = vget_lane_p8(__c1, __d1); \
+ vset_lane_p8(__c2, __a1, __b1); })
+#define vcopy_lane_p16(a1, __b1, c1, __d1) __extension__ ({ \
+ poly16x4_t __a1 = (a1); poly16x4_t __c1 = (c1); \
+ poly16_t __c2 = vget_lane_p16(__c1, __d1); \
+ vset_lane_p16(__c2, __a1, __b1); })
+#define vcopy_lane_u8(a1, __b1, c1, __d1) __extension__ ({ \
+ uint8x8_t __a1 = (a1); uint8x8_t __c1 = (c1); \
+ uint8_t __c2 = vget_lane_u8(__c1, __d1); \
+ vset_lane_u8(__c2, __a1, __b1); })
+#define vcopy_lane_u16(a1, __b1, c1, __d1) __extension__ ({ \
+ uint16x4_t __a1 = (a1); uint16x4_t __c1 = (c1); \
+ uint16_t __c2 = vget_lane_u16(__c1, __d1); \
+ vset_lane_u16(__c2, __a1, __b1); })
+#define vcopy_lane_u32(a1, __b1, c1, __d1) __extension__ ({ \
+ uint32x2_t __a1 = (a1); uint32x2_t __c1 = (c1); \
+ uint32_t __c2 = vget_lane_u32(__c1, __d1); \
+ vset_lane_u32(__c2, __a1, __b1); })
+#define vcopy_lane_u64(a1, __b1, c1, __d1) __extension__ ({ \
+ uint64x1_t __a1 = (a1); uint64x1_t __c1 = (c1); \
+ uint64_t __c2 = vget_lane_u64(__c1, __d1); \
+ vset_lane_u64(__c2, __a1, __b1); })
+#define vcopy_lane_p64(a1, __b1, c1, __d1) __extension__ ({ \
+ poly64x1_t __a1 = (a1); poly64x1_t __c1 = (c1); \
+ poly64_t __c2 = vget_lane_p64(__c1, __d1); \
+ vset_lane_p64(__c2, __a1, __b1); })
+#define vcopy_lane_f32(a1, __b1, c1, __d1) __extension__ ({ \
+ float32x2_t __a1 = (a1); float32x2_t __c1 = (c1); \
+ float32_t __c2 = vget_lane_f32(__c1, __d1); \
+ vset_lane_f32(__c2, __a1, __b1); })
+#define vcopy_lane_f64(a1, __b1, c1, __d1) __extension__ ({ \
+ float64x1_t __a1 = (a1); float64x1_t __c1 = (c1); \
+ float64_t __c2 = vget_lane_f64(__c1, __d1); \
+ vset_lane_f64(__c2, __a1, __b1); })
+
+#define vcopy_laneq_s8(a1, __b1, c1, __d1) __extension__ ({ \
+ int8x8_t __a1 = (a1); int8x16_t __c1 = (c1); \
+ int8_t __c2 = vgetq_lane_s8(__c1, __d1); \
+ vset_lane_s8(__c2, __a1, __b1); })
+#define vcopy_laneq_s16(a1, __b1, c1, __d1) __extension__ ({ \
+ int16x4_t __a1 = (a1); int16x8_t __c1 = (c1); \
+ int16_t __c2 = vgetq_lane_s16(__c1, __d1); \
+ vset_lane_s16(__c2, __a1, __b1); })
+#define vcopy_laneq_s32(a1, __b1, c1, __d1) __extension__ ({ \
+ int32x2_t __a1 = (a1); int32x4_t __c1 = (c1); \
+ int32_t __c2 = vgetq_lane_s32(__c1, __d1); \
+ vset_lane_s32(__c2, __a1, __b1); })
+#define vcopy_laneq_s64(a1, __b1, c1, __d1) __extension__ ({ \
+ int64x1_t __a1 = (a1); int64x2_t __c1 = (c1); \
+ int64_t __c2 = vgetq_lane_s64(__c1, __d1); \
+ vset_lane_s64(__c2, __a1, __b1); })
+#define vcopy_laneq_p8(a1, __b1, c1, __d1) __extension__ ({ \
+ poly8x8_t __a1 = (a1); poly8x16_t __c1 = (c1); \
+ poly8_t __c2 = vgetq_lane_p8(__c1, __d1); \
+ vset_lane_p8(__c2, __a1, __b1); })
+#define vcopy_laneq_p16(a1, __b1, c1, __d1) __extension__ ({ \
+ poly16x4_t __a1 = (a1); poly16x8_t __c1 = (c1); \
+ poly16_t __c2 = vgetq_lane_p16(__c1, __d1); \
+ vset_lane_p16(__c2, __a1, __b1); })
+#define vcopy_laneq_p64(a1, __b1, c1, __d1) __extension__ ({ \
+ poly64x1_t __a1 = (a1); poly64x2_t __c1 = (c1); \
+ poly64_t __c2 = vgetq_lane_p64(__c1, __d1); \
+ vset_lane_p64(__c2, __a1, __b1); })
+#define vcopy_laneq_u8(a1, __b1, c1, __d1) __extension__ ({ \
+ uint8x8_t __a1 = (a1); uint8x16_t __c1 = (c1); \
+ uint8_t __c2 = vgetq_lane_u8(__c1, __d1); \
+ vset_lane_u8(__c2, __a1, __b1); })
+#define vcopy_laneq_u16(a1, __b1, c1, __d1) __extension__ ({ \
+ uint16x4_t __a1 = (a1); uint16x8_t __c1 = (c1); \
+ uint16_t __c2 = vgetq_lane_u16(__c1, __d1); \
+ vset_lane_u16(__c2, __a1, __b1); })
+#define vcopy_laneq_u32(a1, __b1, c1, __d1) __extension__ ({ \
+ uint32x2_t __a1 = (a1); uint32x4_t __c1 = (c1); \
+ uint32_t __c2 = vgetq_lane_u32(__c1, __d1); \
+ vset_lane_u32(__c2, __a1, __b1); })
+#define vcopy_laneq_u64(a1, __b1, c1, __d1) __extension__ ({ \
+ uint64x1_t __a1 = (a1); uint64x2_t __c1 = (c1); \
+ uint64_t __c2 = vgetq_lane_u64(__c1, __d1); \
+ vset_lane_u64(__c2, __a1, __b1); })
+#define vcopy_laneq_f32(a1, __b1, c1, __d1) __extension__ ({ \
+ float32x2_t __a1 = (a1); float32x4_t __c1 = (c1); \
+ float32_t __c2 = vgetq_lane_f32(__c1, __d1); \
+ vset_lane_f32(__c2, __a1, __b1); })
+#define vcopy_laneq_f64(a1, __b1, c1, __d1) __extension__ ({ \
+ float64x1_t __a1 = (a1); float64x2_t __c1 = (c1); \
+ float64_t __c2 = vgetq_lane_f64(__c1, __d1); \
+ vset_lane_f64(__c2, __a1, __b1); })
+
+__ai float64x1_t vcreate_f64(uint64_t __a) {
+ return (float64x1_t)__a; }
+__ai poly64x1_t vcreate_p64(uint64_t __a) {
+ return (poly64x1_t)__a; }
+
+#define vcvt_n_f64_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (float64x1_t)__builtin_neon_vcvt_n_f64_v((int8x8_t)__a, __b, 3); })
+#define vcvt_n_f64_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (float64x1_t)__builtin_neon_vcvt_n_f64_v((int8x8_t)__a, __b, 19); })
+#define vcvtq_n_f64_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (float64x2_t)__builtin_neon_vcvtq_n_f64_v((int8x16_t)__a, __b, 35); })
+#define vcvtq_n_f64_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (float64x2_t)__builtin_neon_vcvtq_n_f64_v((int8x16_t)__a, __b, 51); })
+
+__ai float64x1_t vdup_n_f64(float64_t __a) {
+ return (float64x1_t){ __a }; }
+__ai float64x2_t vdupq_n_f64(float64_t __a) {
+ return (float64x2_t){ __a, __a }; }
+__ai poly64x1_t vdup_n_p64(poly64_t __a) {
+ return (poly64x1_t){ __a }; }
+__ai poly64x2_t vdupq_n_p64(poly64_t __a) {
+ return (poly64x2_t){ __a, __a }; }
+
+__ai uint64x1_t vcage_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vcage_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x2_t vcageq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vcageq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai uint64x1_t vcagt_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vcagt_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x2_t vcagtq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vcagtq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai uint64x1_t vcale_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vcale_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x2_t vcaleq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vcaleq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai uint64x1_t vcalt_f64(float64x1_t __a, float64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vcalt_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint64x2_t vcaltq_f64(float64x2_t __a, float64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vcaltq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai int32x2_t vcvta_s32_f32(float32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vcvta_s32_v((int8x8_t)__a, 2); }
+__ai int32x4_t vcvtaq_s32_f32(float32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vcvtaq_s32_v((int8x16_t)__a, 34); }
+
+__ai int64x1_t vcvta_s64_f64(float64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vcvta_s64_v((int8x8_t)__a, 3); }
+__ai int64x2_t vcvtaq_s64_f64(float64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vcvtaq_s64_v((int8x16_t)__a, 35); }
+
+__ai uint32x2_t vcvta_u32_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcvta_u32_v((int8x8_t)__a, 18); }
+__ai uint32x4_t vcvtaq_u32_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcvtaq_u32_v((int8x16_t)__a, 50); }
+
+__ai uint64x1_t vcvta_u64_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcvta_u64_v((int8x8_t)__a, 19); }
+__ai uint64x2_t vcvtaq_u64_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcvtaq_u64_v((int8x16_t)__a, 51); }
+
+__ai int32x2_t vcvtm_s32_f32(float32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vcvtm_s32_v((int8x8_t)__a, 2); }
+__ai int32x4_t vcvtmq_s32_f32(float32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vcvtmq_s32_v((int8x16_t)__a, 34); }
+
+__ai int64x1_t vcvtm_s64_f64(float64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vcvtm_s64_v((int8x8_t)__a, 3); }
+__ai int64x2_t vcvtmq_s64_f64(float64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vcvtmq_s64_v((int8x16_t)__a, 35); }
+
+__ai uint32x2_t vcvtm_u32_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcvtm_u32_v((int8x8_t)__a, 18); }
+__ai uint32x4_t vcvtmq_u32_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcvtmq_u32_v((int8x16_t)__a, 50); }
+
+__ai uint64x1_t vcvtm_u64_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcvtm_u64_v((int8x8_t)__a, 19); }
+__ai uint64x2_t vcvtmq_u64_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcvtmq_u64_v((int8x16_t)__a, 51); }
+
+__ai int32x2_t vcvtn_s32_f32(float32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vcvtn_s32_v((int8x8_t)__a, 2); }
+__ai int32x4_t vcvtnq_s32_f32(float32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vcvtnq_s32_v((int8x16_t)__a, 34); }
+
+__ai int64x1_t vcvtn_s64_f64(float64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vcvtn_s64_v((int8x8_t)__a, 3); }
+__ai int64x2_t vcvtnq_s64_f64(float64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vcvtnq_s64_v((int8x16_t)__a, 35); }
+
+__ai uint32x2_t vcvtn_u32_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcvtn_u32_v((int8x8_t)__a, 18); }
+__ai uint32x4_t vcvtnq_u32_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcvtnq_u32_v((int8x16_t)__a, 50); }
+
+__ai uint64x1_t vcvtn_u64_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcvtn_u64_v((int8x8_t)__a, 19); }
+__ai uint64x2_t vcvtnq_u64_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcvtnq_u64_v((int8x16_t)__a, 51); }
+
+__ai int32x2_t vcvtp_s32_f32(float32x2_t __a) {
+ return (int32x2_t)__builtin_neon_vcvtp_s32_v((int8x8_t)__a, 2); }
+__ai int32x4_t vcvtpq_s32_f32(float32x4_t __a) {
+ return (int32x4_t)__builtin_neon_vcvtpq_s32_v((int8x16_t)__a, 34); }
+
+__ai int64x1_t vcvtp_s64_f64(float64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vcvtp_s64_v((int8x8_t)__a, 3); }
+__ai int64x2_t vcvtpq_s64_f64(float64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vcvtpq_s64_v((int8x16_t)__a, 35); }
+
+__ai uint32x2_t vcvtp_u32_f32(float32x2_t __a) {
+ return (uint32x2_t)__builtin_neon_vcvtp_u32_v((int8x8_t)__a, 18); }
+__ai uint32x4_t vcvtpq_u32_f32(float32x4_t __a) {
+ return (uint32x4_t)__builtin_neon_vcvtpq_u32_v((int8x16_t)__a, 50); }
+
+__ai uint64x1_t vcvtp_u64_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcvtp_u64_v((int8x8_t)__a, 19); }
+__ai uint64x2_t vcvtpq_u64_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcvtpq_u64_v((int8x16_t)__a, 51); }
+
+#define vcvt_n_s64_f64(a, __b) __extension__ ({ \
+ float64x1_t __a = (a); \
+ (int64x1_t)__builtin_neon_vcvt_n_s64_v((int8x8_t)__a, __b, 3); })
+#define vcvtq_n_s64_f64(a, __b) __extension__ ({ \
+ float64x2_t __a = (a); \
+ (int64x2_t)__builtin_neon_vcvtq_n_s64_v((int8x16_t)__a, __b, 35); })
+
+#define vcvt_n_u64_f64(a, __b) __extension__ ({ \
+ float64x1_t __a = (a); \
+ (uint64x1_t)__builtin_neon_vcvt_n_u64_v((int8x8_t)__a, __b, 19); })
+#define vcvtq_n_u64_f64(a, __b) __extension__ ({ \
+ float64x2_t __a = (a); \
+ (uint64x2_t)__builtin_neon_vcvtq_n_u64_v((int8x16_t)__a, __b, 51); })
+
+__ai float32x2_t vdiv_f32(float32x2_t __a, float32x2_t __b) {
+ return __a / __b; }
+__ai float64x1_t vdiv_f64(float64x1_t __a, float64x1_t __b) {
+ return __a / __b; }
+__ai float32x4_t vdivq_f32(float32x4_t __a, float32x4_t __b) {
+ return __a / __b; }
+__ai float64x2_t vdivq_f64(float64x2_t __a, float64x2_t __b) {
+ return __a / __b; }
+
+__ai float32x2_t vmaxnm_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vmaxnm_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float64x1_t vmaxnm_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vmaxnm_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float32x4_t vmaxnmq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vmaxnmq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vmaxnmq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vmaxnmq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float32x2_t vpmaxnm_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vpmaxnm_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float32x4_t vpmaxnmq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vpmaxnmq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vpmaxnmq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vpmaxnmq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float32_t vmaxnmv_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vmaxnmv_f32(__a); }
+__ai float32_t vmaxnmvq_f32(float32x4_t __a) {
+ return (float32_t)__builtin_neon_vmaxnmvq_f32(__a); }
+__ai float64_t vmaxnmvq_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vmaxnmvq_f64(__a); }
+
+__ai float32x2_t vminnm_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vminnm_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float64x1_t vminnm_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vminnm_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float32x4_t vminnmq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vminnmq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vminnmq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vminnmq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float32x2_t vpminnm_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vpminnm_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float32x4_t vpminnmq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vpminnmq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vpminnmq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vpminnmq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float32_t vminnmv_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vminnmv_f32(__a); }
+__ai float32_t vminnmvq_f32(float32x4_t __a) {
+ return (float32_t)__builtin_neon_vminnmvq_f32(__a); }
+__ai float64_t vminnmvq_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vminnmvq_f64(__a); }
+
+__ai float64x1_t vfma_f64(float64x1_t __a, float64x1_t __b, float64x1_t __c) {
+ return (float64x1_t)__builtin_neon_vfma_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 9); }
+__ai float64x2_t vfmaq_f64(float64x2_t __a, float64x2_t __b, float64x2_t __c) {
+ return (float64x2_t)__builtin_neon_vfmaq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 41); }
+
+__ai float32x2_t vfma_n_f32(float32x2_t __a, float32x2_t __b, float32_t __c) {
+ return vfma_f32(__a, __b, (float32x2_t){ __c, __c }); }
+__ai float32x4_t vfmaq_n_f32(float32x4_t __a, float32x4_t __b, float32_t __c) {
+ return vfmaq_f32(__a, __b, (float32x4_t){ __c, __c, __c, __c }); }
+
+__ai float32x2_t vfms_f32(float32x2_t __a, float32x2_t __b, float32x2_t __c) {
+ return (float32x2_t)__builtin_neon_vfms_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 8); }
+__ai float64x1_t vfms_f64(float64x1_t __a, float64x1_t __b, float64x1_t __c) {
+ return (float64x1_t)__builtin_neon_vfms_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, 9); }
+__ai float32x4_t vfmsq_f32(float32x4_t __a, float32x4_t __b, float32x4_t __c) {
+ return (float32x4_t)__builtin_neon_vfmsq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 40); }
+__ai float64x2_t vfmsq_f64(float64x2_t __a, float64x2_t __b, float64x2_t __c) {
+ return (float64x2_t)__builtin_neon_vfmsq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 41); }
+
+__ai float32x2_t vfms_n_f32(float32x2_t __a, float32x2_t __b, float32_t __c) {
+ return vfms_f32(__a, __b, (float32x2_t){ __c, __c }); }
+__ai float32x4_t vfmsq_n_f32(float32x4_t __a, float32x4_t __b, float32_t __c) {
+ return vfmsq_f32(__a, __b, (float32x4_t){ __c, __c, __c, __c }); }
+
+__ai float64x1_t vrecpe_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrecpe_v((int8x8_t)__a, 9); }
+__ai float64x2_t vrecpeq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrecpeq_v((int8x16_t)__a, 41); }
+
+__ai float64x1_t vrecps_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vrecps_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float64x2_t vrecpsq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vrecpsq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float32x2_t vrnda_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrnda_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrnda_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrnda_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndaq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndaq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndaq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndaq_v((int8x16_t)__a, 41); }
+
+__ai float32x2_t vrndi_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrndi_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrndi_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrndi_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndiq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndiq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndiq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndiq_v((int8x16_t)__a, 41); }
+
+__ai float32x2_t vrndm_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrndm_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrndm_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrndm_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndmq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndmq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndmq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndmq_v((int8x16_t)__a, 41); }
+
+__ai float32x2_t vrndn_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrndn_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrndn_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrndn_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndnq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndnq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndnq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndnq_v((int8x16_t)__a, 41); }
+
+__ai float32x2_t vrndp_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrndp_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrndp_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrndp_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndpq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndpq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndpq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndpq_v((int8x16_t)__a, 41); }
+
+__ai float32x2_t vrndx_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrndx_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrndx_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrndx_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndxq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndxq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndxq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndxq_v((int8x16_t)__a, 41); }
+
+__ai float32x2_t vrnd_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vrnd_v((int8x8_t)__a, 8); }
+__ai float64x1_t vrnd_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrnd_v((int8x8_t)__a, 9); }
+__ai float32x4_t vrndq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vrndq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vrndq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrndq_v((int8x16_t)__a, 41); }
+
+__ai float64x1_t vrsqrte_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vrsqrte_v((int8x8_t)__a, 9); }
+__ai float64x2_t vrsqrteq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vrsqrteq_v((int8x16_t)__a, 41); }
+
+__ai float64x1_t vrsqrts_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vrsqrts_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float64x2_t vrsqrtsq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vrsqrtsq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float32x2_t vsqrt_f32(float32x2_t __a) {
+ return (float32x2_t)__builtin_neon_vsqrt_v((int8x8_t)__a, 8); }
+__ai float64x1_t vsqrt_f64(float64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vsqrt_v((int8x8_t)__a, 9); }
+__ai float32x4_t vsqrtq_f32(float32x4_t __a) {
+ return (float32x4_t)__builtin_neon_vsqrtq_v((int8x16_t)__a, 40); }
+__ai float64x2_t vsqrtq_f64(float64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vsqrtq_v((int8x16_t)__a, 41); }
+
+#define vget_lane_f64(a, __b) __extension__ ({ \
+ float64x1_t __a = (a); \
+ (float64_t)__builtin_neon_vget_lane_f64(__a, __b); })
+#define vgetq_lane_f64(a, __b) __extension__ ({ \
+ float64x2_t __a = (a); \
+ (float64_t)__builtin_neon_vgetq_lane_f64(__a, __b); })
+#define vget_lane_p64(a, __b) __extension__ ({ \
+ poly64x1_t __a = (a); \
+ (poly64_t)__builtin_neon_vget_lane_i64((int64x1_t)__a, __b); })
+#define vgetq_lane_p64(a, __b) __extension__ ({ \
+ poly64x2_t __a = (a); \
+ (poly64_t)__builtin_neon_vgetq_lane_i64((int64x2_t)__a, __b); })
+
+#define vld1q_f64(__a) __extension__ ({ \
+ (float64x2_t)__builtin_neon_vld1q_v(__a, 41); })
+#define vld1_f64(__a) __extension__ ({ \
+ (float64x1_t)__builtin_neon_vld1_v(__a, 9); })
+#define vld1_p64(__a) __extension__ ({ \
+ (poly64x1_t)__builtin_neon_vld1_v(__a, 6); })
+#define vld1q_p64(__a) __extension__ ({ \
+ (poly64x2_t)__builtin_neon_vld1q_v(__a, 38); })
+
+#define vld1q_dup_f64(__a) __extension__ ({ \
+ (float64x2_t)__builtin_neon_vld1q_dup_v(__a, 41); })
+#define vld1q_dup_p64(__a) __extension__ ({ \
+ (poly64x2_t)__builtin_neon_vld1q_dup_v(__a, 38); })
+#define vld1_dup_f64(__a) __extension__ ({ \
+ (float64x1_t)__builtin_neon_vld1_dup_v(__a, 9); })
+#define vld1_dup_p64(__a) __extension__ ({ \
+ (poly64x1_t)__builtin_neon_vld1_dup_v(__a, 6); })
+
+#define vld1q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2_t __b = (b); \
+ (float64x2_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 41); })
+#define vld1q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2_t __b = (b); \
+ (poly64x2_t)__builtin_neon_vld1q_lane_v(__a, (int8x16_t)__b, __c, 38); })
+#define vld1_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1_t __b = (b); \
+ (float64x1_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 9); })
+#define vld1_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1_t __b = (b); \
+ (poly64x1_t)__builtin_neon_vld1_lane_v(__a, (int8x8_t)__b, __c, 6); })
+
+#define vld1q_u8_x2(__a) __extension__ ({ \
+ uint8x16x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 48); r; })
+#define vld1q_u16_x2(__a) __extension__ ({ \
+ uint16x8x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 49); r; })
+#define vld1q_u32_x2(__a) __extension__ ({ \
+ uint32x4x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 50); r; })
+#define vld1q_u64_x2(__a) __extension__ ({ \
+ uint64x2x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 51); r; })
+#define vld1q_s8_x2(__a) __extension__ ({ \
+ int8x16x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 32); r; })
+#define vld1q_s16_x2(__a) __extension__ ({ \
+ int16x8x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 33); r; })
+#define vld1q_s32_x2(__a) __extension__ ({ \
+ int32x4x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 34); r; })
+#define vld1q_s64_x2(__a) __extension__ ({ \
+ int64x2x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 35); r; })
+#define vld1q_f16_x2(__a) __extension__ ({ \
+ float16x8x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 39); r; })
+#define vld1q_f32_x2(__a) __extension__ ({ \
+ float32x4x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 40); r; })
+#define vld1q_f64_x2(__a) __extension__ ({ \
+ float64x2x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 41); r; })
+#define vld1q_p8_x2(__a) __extension__ ({ \
+ poly8x16x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 36); r; })
+#define vld1q_p16_x2(__a) __extension__ ({ \
+ poly16x8x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 37); r; })
+#define vld1q_p64_x2(__a) __extension__ ({ \
+ poly64x2x2_t r; __builtin_neon_vld1q_x2_v(&r, __a, 38); r; })
+#define vld1_u8_x2(__a) __extension__ ({ \
+ uint8x8x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 16); r; })
+#define vld1_u16_x2(__a) __extension__ ({ \
+ uint16x4x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 17); r; })
+#define vld1_u32_x2(__a) __extension__ ({ \
+ uint32x2x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 18); r; })
+#define vld1_u64_x2(__a) __extension__ ({ \
+ uint64x1x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 19); r; })
+#define vld1_s8_x2(__a) __extension__ ({ \
+ int8x8x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 0); r; })
+#define vld1_s16_x2(__a) __extension__ ({ \
+ int16x4x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 1); r; })
+#define vld1_s32_x2(__a) __extension__ ({ \
+ int32x2x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 2); r; })
+#define vld1_s64_x2(__a) __extension__ ({ \
+ int64x1x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 3); r; })
+#define vld1_f16_x2(__a) __extension__ ({ \
+ float16x4x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 7); r; })
+#define vld1_f32_x2(__a) __extension__ ({ \
+ float32x2x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 8); r; })
+#define vld1_f64_x2(__a) __extension__ ({ \
+ float64x1x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 9); r; })
+#define vld1_p8_x2(__a) __extension__ ({ \
+ poly8x8x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 4); r; })
+#define vld1_p16_x2(__a) __extension__ ({ \
+ poly16x4x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 5); r; })
+#define vld1_p64_x2(__a) __extension__ ({ \
+ poly64x1x2_t r; __builtin_neon_vld1_x2_v(&r, __a, 6); r; })
+
+#define vld2q_u64(__a) __extension__ ({ \
+ uint64x2x2_t r; __builtin_neon_vld2q_v(&r, __a, 51); r; })
+#define vld2q_s64(__a) __extension__ ({ \
+ int64x2x2_t r; __builtin_neon_vld2q_v(&r, __a, 35); r; })
+#define vld2q_f64(__a) __extension__ ({ \
+ float64x2x2_t r; __builtin_neon_vld2q_v(&r, __a, 41); r; })
+#define vld2_f64(__a) __extension__ ({ \
+ float64x1x2_t r; __builtin_neon_vld2_v(&r, __a, 9); r; })
+#define vld2_p64(__a) __extension__ ({ \
+ poly64x1x2_t r; __builtin_neon_vld2_v(&r, __a, 6); r; })
+#define vld2q_p64(__a) __extension__ ({ \
+ poly64x2x2_t r; __builtin_neon_vld2q_v(&r, __a, 38); r; })
+
+#define vld2q_dup_u8(__a) __extension__ ({ \
+ uint8x16x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 48); r; })
+#define vld2q_dup_u16(__a) __extension__ ({ \
+ uint16x8x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 49); r; })
+#define vld2q_dup_u32(__a) __extension__ ({ \
+ uint32x4x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 50); r; })
+#define vld2q_dup_u64(__a) __extension__ ({ \
+ uint64x2x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 51); r; })
+#define vld2q_dup_s8(__a) __extension__ ({ \
+ int8x16x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 32); r; })
+#define vld2q_dup_s16(__a) __extension__ ({ \
+ int16x8x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 33); r; })
+#define vld2q_dup_s32(__a) __extension__ ({ \
+ int32x4x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 34); r; })
+#define vld2q_dup_s64(__a) __extension__ ({ \
+ int64x2x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 35); r; })
+#define vld2q_dup_f16(__a) __extension__ ({ \
+ float16x8x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 39); r; })
+#define vld2q_dup_f32(__a) __extension__ ({ \
+ float32x4x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 40); r; })
+#define vld2q_dup_f64(__a) __extension__ ({ \
+ float64x2x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 41); r; })
+#define vld2q_dup_p8(__a) __extension__ ({ \
+ poly8x16x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 36); r; })
+#define vld2q_dup_p16(__a) __extension__ ({ \
+ poly16x8x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 37); r; })
+#define vld2q_dup_p64(__a) __extension__ ({ \
+ poly64x2x2_t r; __builtin_neon_vld2q_dup_v(&r, __a, 38); r; })
+#define vld2_dup_f64(__a) __extension__ ({ \
+ float64x1x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 9); r; })
+#define vld2_dup_p64(__a) __extension__ ({ \
+ poly64x1x2_t r; __builtin_neon_vld2_dup_v(&r, __a, 6); r; })
+
+#define vld2q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16x2_t __b = (b); \
+ uint8x16x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 48); r; })
+#define vld2q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2x2_t __b = (b); \
+ uint64x2x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 51); r; })
+#define vld2q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16x2_t __b = (b); \
+ int8x16x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, __b.val[0], __b.val[1], __c, 32); r; })
+#define vld2q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2x2_t __b = (b); \
+ int64x2x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 35); r; })
+#define vld2q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2x2_t __b = (b); \
+ float64x2x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 41); r; })
+#define vld2q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16x2_t __b = (b); \
+ poly8x16x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 36); r; })
+#define vld2q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2x2_t __b = (b); \
+ poly64x2x2_t r; __builtin_neon_vld2q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 38); r; })
+#define vld2_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1x2_t __b = (b); \
+ uint64x1x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 19); r; })
+#define vld2_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1x2_t __b = (b); \
+ int64x1x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 3); r; })
+#define vld2_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1x2_t __b = (b); \
+ float64x1x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 9); r; })
+#define vld2_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1x2_t __b = (b); \
+ poly64x1x2_t r; __builtin_neon_vld2_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 6); r; })
+
+#define vld3q_u64(__a) __extension__ ({ \
+ uint64x2x3_t r; __builtin_neon_vld3q_v(&r, __a, 51); r; })
+#define vld3q_s64(__a) __extension__ ({ \
+ int64x2x3_t r; __builtin_neon_vld3q_v(&r, __a, 35); r; })
+#define vld3q_f64(__a) __extension__ ({ \
+ float64x2x3_t r; __builtin_neon_vld3q_v(&r, __a, 41); r; })
+#define vld3_f64(__a) __extension__ ({ \
+ float64x1x3_t r; __builtin_neon_vld3_v(&r, __a, 9); r; })
+#define vld3_p64(__a) __extension__ ({ \
+ poly64x1x3_t r; __builtin_neon_vld3_v(&r, __a, 6); r; })
+#define vld3q_p64(__a) __extension__ ({ \
+ poly64x2x3_t r; __builtin_neon_vld3q_v(&r, __a, 38); r; })
+
+#define vld3q_dup_u8(__a) __extension__ ({ \
+ uint8x16x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 48); r; })
+#define vld3q_dup_u16(__a) __extension__ ({ \
+ uint16x8x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 49); r; })
+#define vld3q_dup_u32(__a) __extension__ ({ \
+ uint32x4x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 50); r; })
+#define vld3q_dup_u64(__a) __extension__ ({ \
+ uint64x2x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 51); r; })
+#define vld3q_dup_s8(__a) __extension__ ({ \
+ int8x16x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 32); r; })
+#define vld3q_dup_s16(__a) __extension__ ({ \
+ int16x8x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 33); r; })
+#define vld3q_dup_s32(__a) __extension__ ({ \
+ int32x4x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 34); r; })
+#define vld3q_dup_s64(__a) __extension__ ({ \
+ int64x2x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 35); r; })
+#define vld3q_dup_f16(__a) __extension__ ({ \
+ float16x8x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 39); r; })
+#define vld3q_dup_f32(__a) __extension__ ({ \
+ float32x4x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 40); r; })
+#define vld3q_dup_f64(__a) __extension__ ({ \
+ float64x2x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 41); r; })
+#define vld3q_dup_p8(__a) __extension__ ({ \
+ poly8x16x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 36); r; })
+#define vld3q_dup_p16(__a) __extension__ ({ \
+ poly16x8x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 37); r; })
+#define vld3q_dup_p64(__a) __extension__ ({ \
+ poly64x2x3_t r; __builtin_neon_vld3q_dup_v(&r, __a, 38); r; })
+#define vld3_dup_f64(__a) __extension__ ({ \
+ float64x1x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 9); r; })
+#define vld3_dup_p64(__a) __extension__ ({ \
+ poly64x1x3_t r; __builtin_neon_vld3_dup_v(&r, __a, 6); r; })
+
+#define vld3q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16x3_t __b = (b); \
+ uint8x16x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 48); r; })
+#define vld3q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2x3_t __b = (b); \
+ uint64x2x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 51); r; })
+#define vld3q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16x3_t __b = (b); \
+ int8x16x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, __b.val[0], __b.val[1], __b.val[2], __c, 32); r; })
+#define vld3q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2x3_t __b = (b); \
+ int64x2x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 35); r; })
+#define vld3q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2x3_t __b = (b); \
+ float64x2x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 41); r; })
+#define vld3q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16x3_t __b = (b); \
+ poly8x16x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 36); r; })
+#define vld3q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2x3_t __b = (b); \
+ poly64x2x3_t r; __builtin_neon_vld3q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 38); r; })
+#define vld3_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1x3_t __b = (b); \
+ uint64x1x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 19); r; })
+#define vld3_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1x3_t __b = (b); \
+ int64x1x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 3); r; })
+#define vld3_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1x3_t __b = (b); \
+ float64x1x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 9); r; })
+#define vld3_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1x3_t __b = (b); \
+ poly64x1x3_t r; __builtin_neon_vld3_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 6); r; })
+
+#define vld1q_u8_x3(__a) __extension__ ({ \
+ uint8x16x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 48); r; })
+#define vld1q_u16_x3(__a) __extension__ ({ \
+ uint16x8x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 49); r; })
+#define vld1q_u32_x3(__a) __extension__ ({ \
+ uint32x4x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 50); r; })
+#define vld1q_u64_x3(__a) __extension__ ({ \
+ uint64x2x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 51); r; })
+#define vld1q_s8_x3(__a) __extension__ ({ \
+ int8x16x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 32); r; })
+#define vld1q_s16_x3(__a) __extension__ ({ \
+ int16x8x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 33); r; })
+#define vld1q_s32_x3(__a) __extension__ ({ \
+ int32x4x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 34); r; })
+#define vld1q_s64_x3(__a) __extension__ ({ \
+ int64x2x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 35); r; })
+#define vld1q_f16_x3(__a) __extension__ ({ \
+ float16x8x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 39); r; })
+#define vld1q_f32_x3(__a) __extension__ ({ \
+ float32x4x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 40); r; })
+#define vld1q_f64_x3(__a) __extension__ ({ \
+ float64x2x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 41); r; })
+#define vld1q_p8_x3(__a) __extension__ ({ \
+ poly8x16x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 36); r; })
+#define vld1q_p16_x3(__a) __extension__ ({ \
+ poly16x8x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 37); r; })
+#define vld1q_p64_x3(__a) __extension__ ({ \
+ poly64x2x3_t r; __builtin_neon_vld1q_x3_v(&r, __a, 38); r; })
+#define vld1_u8_x3(__a) __extension__ ({ \
+ uint8x8x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 16); r; })
+#define vld1_u16_x3(__a) __extension__ ({ \
+ uint16x4x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 17); r; })
+#define vld1_u32_x3(__a) __extension__ ({ \
+ uint32x2x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 18); r; })
+#define vld1_u64_x3(__a) __extension__ ({ \
+ uint64x1x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 19); r; })
+#define vld1_s8_x3(__a) __extension__ ({ \
+ int8x8x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 0); r; })
+#define vld1_s16_x3(__a) __extension__ ({ \
+ int16x4x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 1); r; })
+#define vld1_s32_x3(__a) __extension__ ({ \
+ int32x2x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 2); r; })
+#define vld1_s64_x3(__a) __extension__ ({ \
+ int64x1x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 3); r; })
+#define vld1_f16_x3(__a) __extension__ ({ \
+ float16x4x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 7); r; })
+#define vld1_f32_x3(__a) __extension__ ({ \
+ float32x2x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 8); r; })
+#define vld1_f64_x3(__a) __extension__ ({ \
+ float64x1x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 9); r; })
+#define vld1_p8_x3(__a) __extension__ ({ \
+ poly8x8x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 4); r; })
+#define vld1_p16_x3(__a) __extension__ ({ \
+ poly16x4x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 5); r; })
+#define vld1_p64_x3(__a) __extension__ ({ \
+ poly64x1x3_t r; __builtin_neon_vld1_x3_v(&r, __a, 6); r; })
+
+#define vld4q_u64(__a) __extension__ ({ \
+ uint64x2x4_t r; __builtin_neon_vld4q_v(&r, __a, 51); r; })
+#define vld4q_s64(__a) __extension__ ({ \
+ int64x2x4_t r; __builtin_neon_vld4q_v(&r, __a, 35); r; })
+#define vld4q_f64(__a) __extension__ ({ \
+ float64x2x4_t r; __builtin_neon_vld4q_v(&r, __a, 41); r; })
+#define vld4_f64(__a) __extension__ ({ \
+ float64x1x4_t r; __builtin_neon_vld4_v(&r, __a, 9); r; })
+#define vld4_p64(__a) __extension__ ({ \
+ poly64x1x4_t r; __builtin_neon_vld4_v(&r, __a, 6); r; })
+#define vld4q_p64(__a) __extension__ ({ \
+ poly64x2x4_t r; __builtin_neon_vld4q_v(&r, __a, 38); r; })
+
+#define vld4q_dup_u8(__a) __extension__ ({ \
+ uint8x16x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 48); r; })
+#define vld4q_dup_u16(__a) __extension__ ({ \
+ uint16x8x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 49); r; })
+#define vld4q_dup_u32(__a) __extension__ ({ \
+ uint32x4x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 50); r; })
+#define vld4q_dup_u64(__a) __extension__ ({ \
+ uint64x2x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 51); r; })
+#define vld4q_dup_s8(__a) __extension__ ({ \
+ int8x16x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 32); r; })
+#define vld4q_dup_s16(__a) __extension__ ({ \
+ int16x8x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 33); r; })
+#define vld4q_dup_s32(__a) __extension__ ({ \
+ int32x4x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 34); r; })
+#define vld4q_dup_s64(__a) __extension__ ({ \
+ int64x2x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 35); r; })
+#define vld4q_dup_f16(__a) __extension__ ({ \
+ float16x8x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 39); r; })
+#define vld4q_dup_f32(__a) __extension__ ({ \
+ float32x4x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 40); r; })
+#define vld4q_dup_f64(__a) __extension__ ({ \
+ float64x2x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 41); r; })
+#define vld4q_dup_p8(__a) __extension__ ({ \
+ poly8x16x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 36); r; })
+#define vld4q_dup_p16(__a) __extension__ ({ \
+ poly16x8x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 37); r; })
+#define vld4q_dup_p64(__a) __extension__ ({ \
+ poly64x2x4_t r; __builtin_neon_vld4q_dup_v(&r, __a, 38); r; })
+#define vld4_dup_f64(__a) __extension__ ({ \
+ float64x1x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 9); r; })
+#define vld4_dup_p64(__a) __extension__ ({ \
+ poly64x1x4_t r; __builtin_neon_vld4_dup_v(&r, __a, 6); r; })
+
+#define vld4q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16x4_t __b = (b); \
+ uint8x16x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 48); r; })
+#define vld4q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2x4_t __b = (b); \
+ uint64x2x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 51); r; })
+#define vld4q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16x4_t __b = (b); \
+ int8x16x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 32); r; })
+#define vld4q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2x4_t __b = (b); \
+ int64x2x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 35); r; })
+#define vld4q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2x4_t __b = (b); \
+ float64x2x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 41); r; })
+#define vld4q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16x4_t __b = (b); \
+ poly8x16x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 36); r; })
+#define vld4q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2x4_t __b = (b); \
+ poly64x2x4_t r; __builtin_neon_vld4q_lane_v(&r, __a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 38); r; })
+#define vld4_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1x4_t __b = (b); \
+ uint64x1x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 19); r; })
+#define vld4_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1x4_t __b = (b); \
+ int64x1x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 3); r; })
+#define vld4_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1x4_t __b = (b); \
+ float64x1x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 9); r; })
+#define vld4_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1x4_t __b = (b); \
+ poly64x1x4_t r; __builtin_neon_vld4_lane_v(&r, __a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 6); r; })
+
+#define vld1q_u8_x4(__a) __extension__ ({ \
+ uint8x16x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 48); r; })
+#define vld1q_u16_x4(__a) __extension__ ({ \
+ uint16x8x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 49); r; })
+#define vld1q_u32_x4(__a) __extension__ ({ \
+ uint32x4x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 50); r; })
+#define vld1q_u64_x4(__a) __extension__ ({ \
+ uint64x2x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 51); r; })
+#define vld1q_s8_x4(__a) __extension__ ({ \
+ int8x16x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 32); r; })
+#define vld1q_s16_x4(__a) __extension__ ({ \
+ int16x8x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 33); r; })
+#define vld1q_s32_x4(__a) __extension__ ({ \
+ int32x4x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 34); r; })
+#define vld1q_s64_x4(__a) __extension__ ({ \
+ int64x2x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 35); r; })
+#define vld1q_f16_x4(__a) __extension__ ({ \
+ float16x8x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 39); r; })
+#define vld1q_f32_x4(__a) __extension__ ({ \
+ float32x4x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 40); r; })
+#define vld1q_f64_x4(__a) __extension__ ({ \
+ float64x2x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 41); r; })
+#define vld1q_p8_x4(__a) __extension__ ({ \
+ poly8x16x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 36); r; })
+#define vld1q_p16_x4(__a) __extension__ ({ \
+ poly16x8x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 37); r; })
+#define vld1q_p64_x4(__a) __extension__ ({ \
+ poly64x2x4_t r; __builtin_neon_vld1q_x4_v(&r, __a, 38); r; })
+#define vld1_u8_x4(__a) __extension__ ({ \
+ uint8x8x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 16); r; })
+#define vld1_u16_x4(__a) __extension__ ({ \
+ uint16x4x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 17); r; })
+#define vld1_u32_x4(__a) __extension__ ({ \
+ uint32x2x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 18); r; })
+#define vld1_u64_x4(__a) __extension__ ({ \
+ uint64x1x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 19); r; })
+#define vld1_s8_x4(__a) __extension__ ({ \
+ int8x8x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 0); r; })
+#define vld1_s16_x4(__a) __extension__ ({ \
+ int16x4x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 1); r; })
+#define vld1_s32_x4(__a) __extension__ ({ \
+ int32x2x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 2); r; })
+#define vld1_s64_x4(__a) __extension__ ({ \
+ int64x1x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 3); r; })
+#define vld1_f16_x4(__a) __extension__ ({ \
+ float16x4x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 7); r; })
+#define vld1_f32_x4(__a) __extension__ ({ \
+ float32x2x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 8); r; })
+#define vld1_f64_x4(__a) __extension__ ({ \
+ float64x1x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 9); r; })
+#define vld1_p8_x4(__a) __extension__ ({ \
+ poly8x8x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 4); r; })
+#define vld1_p16_x4(__a) __extension__ ({ \
+ poly16x4x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 5); r; })
+#define vld1_p64_x4(__a) __extension__ ({ \
+ poly64x1x4_t r; __builtin_neon_vld1_x4_v(&r, __a, 6); r; })
+
+__ai float64x1_t vmax_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vmax_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float64x2_t vmaxq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vmaxq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai int8x16_t vpmaxq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vpmaxq_v(__a, __b, 32); }
+__ai int16x8_t vpmaxq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vpmaxq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vpmaxq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vpmaxq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vpmaxq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai float32x4_t vpmaxq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vpmaxq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vpmaxq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float64x1_t vmin_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vmin_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float64x2_t vminq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vminq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai int8x16_t vpminq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vpminq_v(__a, __b, 32); }
+__ai int16x8_t vpminq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vpminq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai uint8x16_t vpminq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vpminq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vpminq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai float32x4_t vpminq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vpminq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vpminq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai float64x1_t vmla_f64(float64x1_t __a, float64x1_t __b, float64x1_t __c) {
+ return __a + (__b * __c); }
+__ai float64x2_t vmlaq_f64(float64x2_t __a, float64x2_t __b, float64x2_t __c) {
+ return __a + (__b * __c); }
+
+__ai float64x1_t vmls_f64(float64x1_t __a, float64x1_t __b, float64x1_t __c) {
+ return __a - (__b * __c); }
+__ai float64x2_t vmlsq_f64(float64x2_t __a, float64x2_t __b, float64x2_t __c) {
+ return __a - (__b * __c); }
+
+__ai float64x1_t vmov_n_f64(float64_t __a) {
+ return (float64x1_t){ __a }; }
+__ai float64x2_t vmovq_n_f64(float64_t __a) {
+ return (float64x2_t){ __a, __a }; }
+
+__ai float64x1_t vmul_f64(float64x1_t __a, float64x1_t __b) {
+ return __a * __b; }
+__ai float64x2_t vmulq_f64(float64x2_t __a, float64x2_t __b) {
+ return __a * __b; }
+
+__ai float32x2_t vmulx_f32(float32x2_t __a, float32x2_t __b) {
+ return (float32x2_t)__builtin_neon_vmulx_v((int8x8_t)__a, (int8x8_t)__b, 8); }
+__ai float64x1_t vmulx_f64(float64x1_t __a, float64x1_t __b) {
+ return (float64x1_t)__builtin_neon_vmulx_v((int8x8_t)__a, (int8x8_t)__b, 9); }
+__ai float32x4_t vmulxq_f32(float32x4_t __a, float32x4_t __b) {
+ return (float32x4_t)__builtin_neon_vmulxq_v((int8x16_t)__a, (int8x16_t)__b, 40); }
+__ai float64x2_t vmulxq_f64(float64x2_t __a, float64x2_t __b) {
+ return (float64x2_t)__builtin_neon_vmulxq_v((int8x16_t)__a, (int8x16_t)__b, 41); }
+
+__ai int64x1_t vneg_s64(int64x1_t __a) {
+ return -__a; }
+__ai float64x1_t vneg_f64(float64x1_t __a) {
+ return -__a; }
+__ai float64x2_t vnegq_f64(float64x2_t __a) {
+ return -__a; }
+__ai int64x2_t vnegq_s64(int64x2_t __a) {
+ return -__a; }
+
+__ai int64x1_t vqabs_s64(int64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vqabs_v((int8x8_t)__a, 3); }
+__ai int64x2_t vqabsq_s64(int64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vqabsq_v((int8x16_t)__a, 35); }
+
+__ai int64x1_t vqneg_s64(int64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vqneg_v((int8x8_t)__a, 3); }
+__ai int64x2_t vqnegq_s64(int64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vqnegq_v((int8x16_t)__a, 35); }
+
+#define vqrshrn_high_n_s16(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int16x8_t __b = (b); \
+ (int8x16_t)vcombine_s16(__a, vqrshrn_n_s16(__b, __c)); })
+#define vqrshrn_high_n_s32(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int32x4_t __b = (b); \
+ (int16x8_t)vcombine_s32(__a, vqrshrn_n_s32(__b, __c)); })
+#define vqrshrn_high_n_s64(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int64x2_t __b = (b); \
+ (int32x4_t)vcombine_s64(__a, vqrshrn_n_s64(__b, __c)); })
+#define vqrshrn_high_n_u16(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint8x16_t)vcombine_u16(__a, vqrshrn_n_u16(__b, __c)); })
+#define vqrshrn_high_n_u32(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint16x8_t)vcombine_u32(__a, vqrshrn_n_u32(__b, __c)); })
+#define vqrshrn_high_n_u64(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint32x4_t)vcombine_u64(__a, vqrshrn_n_u64(__b, __c)); })
+
+#define vqrshrun_high_n_s16(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int16x8_t __b = (b); \
+ (int8x16_t)vcombine_s16(__a, vqrshrun_n_s16(__b, __c)); })
+#define vqrshrun_high_n_s32(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int32x4_t __b = (b); \
+ (int16x8_t)vcombine_s32(__a, vqrshrun_n_s32(__b, __c)); })
+#define vqrshrun_high_n_s64(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int64x2_t __b = (b); \
+ (int32x4_t)vcombine_s64(__a, vqrshrun_n_s64(__b, __c)); })
+
+#define vqshrn_high_n_s16(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int16x8_t __b = (b); \
+ (int8x16_t)vcombine_s16(__a, vqshrn_n_s16(__b, __c)); })
+#define vqshrn_high_n_s32(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int32x4_t __b = (b); \
+ (int16x8_t)vcombine_s32(__a, vqshrn_n_s32(__b, __c)); })
+#define vqshrn_high_n_s64(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int64x2_t __b = (b); \
+ (int32x4_t)vcombine_s64(__a, vqshrn_n_s64(__b, __c)); })
+#define vqshrn_high_n_u16(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint8x16_t)vcombine_u16(__a, vqshrn_n_u16(__b, __c)); })
+#define vqshrn_high_n_u32(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint16x8_t)vcombine_u32(__a, vqshrn_n_u32(__b, __c)); })
+#define vqshrn_high_n_u64(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint32x4_t)vcombine_u64(__a, vqshrn_n_u64(__b, __c)); })
+
+#define vqshrun_high_n_s16(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int16x8_t __b = (b); \
+ (int8x16_t)vcombine_s16(__a, vqshrun_n_s16(__b, __c)); })
+#define vqshrun_high_n_s32(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int32x4_t __b = (b); \
+ (int16x8_t)vcombine_s32(__a, vqshrun_n_s32(__b, __c)); })
+#define vqshrun_high_n_s64(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int64x2_t __b = (b); \
+ (int32x4_t)vcombine_s64(__a, vqshrun_n_s64(__b, __c)); })
+
+__ai int8x16_t vqmovn_high_s16(int8x8_t __a, int16x8_t __b) {
+ int8x8_t __a1 = vqmovn_s16(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai int16x8_t vqmovn_high_s32(int16x4_t __a, int32x4_t __b) {
+ int16x4_t __a1 = vqmovn_s32(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai int32x4_t vqmovn_high_s64(int32x2_t __a, int64x2_t __b) {
+ int32x2_t __a1 = vqmovn_s64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+__ai uint8x16_t vqmovn_high_u16(uint8x8_t __a, uint16x8_t __b) {
+ uint8x8_t __a1 = vqmovn_u16(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai uint16x8_t vqmovn_high_u32(uint16x4_t __a, uint32x4_t __b) {
+ uint16x4_t __a1 = vqmovn_u32(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai uint32x4_t vqmovn_high_u64(uint32x2_t __a, uint64x2_t __b) {
+ uint32x2_t __a1 = vqmovn_u64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+
+__ai int8x8_t vrbit_s8(int8x8_t __a) {
+ return (int8x8_t)__builtin_neon_vrbit_v(__a, 0); }
+__ai uint8x8_t vrbit_u8(uint8x8_t __a) {
+ return (uint8x8_t)__builtin_neon_vrbit_v((int8x8_t)__a, 16); }
+__ai poly8x8_t vrbit_p8(poly8x8_t __a) {
+ return (poly8x8_t)__builtin_neon_vrbit_v((int8x8_t)__a, 4); }
+__ai int8x16_t vrbitq_s8(int8x16_t __a) {
+ return (int8x16_t)__builtin_neon_vrbitq_v(__a, 32); }
+__ai uint8x16_t vrbitq_u8(uint8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vrbitq_v((int8x16_t)__a, 48); }
+__ai poly8x16_t vrbitq_p8(poly8x16_t __a) {
+ return (poly8x16_t)__builtin_neon_vrbitq_v((int8x16_t)__a, 36); }
+
+__ai int8x8_t vreinterpret_s8_f64(float64x1_t __a) {
+ return (int8x8_t)__a; }
+__ai int8x8_t vreinterpret_s8_p64(poly64x1_t __a) {
+ return (int8x8_t)__a; }
+__ai int16x4_t vreinterpret_s16_f64(float64x1_t __a) {
+ return (int16x4_t)__a; }
+__ai int16x4_t vreinterpret_s16_p64(poly64x1_t __a) {
+ return (int16x4_t)__a; }
+__ai int32x2_t vreinterpret_s32_f64(float64x1_t __a) {
+ return (int32x2_t)__a; }
+__ai int32x2_t vreinterpret_s32_p64(poly64x1_t __a) {
+ return (int32x2_t)__a; }
+__ai int64x1_t vreinterpret_s64_f64(float64x1_t __a) {
+ return (int64x1_t)__a; }
+__ai int64x1_t vreinterpret_s64_p64(poly64x1_t __a) {
+ return (int64x1_t)__a; }
+__ai uint8x8_t vreinterpret_u8_f64(float64x1_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint8x8_t vreinterpret_u8_p64(poly64x1_t __a) {
+ return (uint8x8_t)__a; }
+__ai uint16x4_t vreinterpret_u16_f64(float64x1_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint16x4_t vreinterpret_u16_p64(poly64x1_t __a) {
+ return (uint16x4_t)__a; }
+__ai uint32x2_t vreinterpret_u32_f64(float64x1_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint32x2_t vreinterpret_u32_p64(poly64x1_t __a) {
+ return (uint32x2_t)__a; }
+__ai uint64x1_t vreinterpret_u64_f64(float64x1_t __a) {
+ return (uint64x1_t)__a; }
+__ai uint64x1_t vreinterpret_u64_p64(poly64x1_t __a) {
+ return (uint64x1_t)__a; }
+__ai float16x4_t vreinterpret_f16_f64(float64x1_t __a) {
+ return (float16x4_t)__a; }
+__ai float16x4_t vreinterpret_f16_p64(poly64x1_t __a) {
+ return (float16x4_t)__a; }
+__ai float32x2_t vreinterpret_f32_f64(float64x1_t __a) {
+ return (float32x2_t)__a; }
+__ai float32x2_t vreinterpret_f32_p64(poly64x1_t __a) {
+ return (float32x2_t)__a; }
+__ai float64x1_t vreinterpret_f64_s8(int8x8_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_s16(int16x4_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_s32(int32x2_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_s64(int64x1_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_u8(uint8x8_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_u16(uint16x4_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_u32(uint32x2_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_u64(uint64x1_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_f16(float16x4_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_f32(float32x2_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_p8(poly8x8_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_p16(poly16x4_t __a) {
+ return (float64x1_t)__a; }
+__ai float64x1_t vreinterpret_f64_p64(poly64x1_t __a) {
+ return (float64x1_t)__a; }
+__ai poly8x8_t vreinterpret_p8_f64(float64x1_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly8x8_t vreinterpret_p8_p64(poly64x1_t __a) {
+ return (poly8x8_t)__a; }
+__ai poly16x4_t vreinterpret_p16_f64(float64x1_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly16x4_t vreinterpret_p16_p64(poly64x1_t __a) {
+ return (poly16x4_t)__a; }
+__ai poly64x1_t vreinterpret_p64_s8(int8x8_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_s16(int16x4_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_s32(int32x2_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_s64(int64x1_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_u8(uint8x8_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_u16(uint16x4_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_u32(uint32x2_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_u64(uint64x1_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_f16(float16x4_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_f32(float32x2_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_f64(float64x1_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_p8(poly8x8_t __a) {
+ return (poly64x1_t)__a; }
+__ai poly64x1_t vreinterpret_p64_p16(poly16x4_t __a) {
+ return (poly64x1_t)__a; }
+__ai int8x16_t vreinterpretq_s8_f64(float64x2_t __a) {
+ return (int8x16_t)__a; }
+__ai int8x16_t vreinterpretq_s8_p64(poly64x2_t __a) {
+ return (int8x16_t)__a; }
+__ai int16x8_t vreinterpretq_s16_f64(float64x2_t __a) {
+ return (int16x8_t)__a; }
+__ai int16x8_t vreinterpretq_s16_p64(poly64x2_t __a) {
+ return (int16x8_t)__a; }
+__ai int32x4_t vreinterpretq_s32_f64(float64x2_t __a) {
+ return (int32x4_t)__a; }
+__ai int32x4_t vreinterpretq_s32_p64(poly64x2_t __a) {
+ return (int32x4_t)__a; }
+__ai int64x2_t vreinterpretq_s64_f64(float64x2_t __a) {
+ return (int64x2_t)__a; }
+__ai int64x2_t vreinterpretq_s64_p64(poly64x2_t __a) {
+ return (int64x2_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_f64(float64x2_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint8x16_t vreinterpretq_u8_p64(poly64x2_t __a) {
+ return (uint8x16_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_f64(float64x2_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint16x8_t vreinterpretq_u16_p64(poly64x2_t __a) {
+ return (uint16x8_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_f64(float64x2_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint32x4_t vreinterpretq_u32_p64(poly64x2_t __a) {
+ return (uint32x4_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_f64(float64x2_t __a) {
+ return (uint64x2_t)__a; }
+__ai uint64x2_t vreinterpretq_u64_p64(poly64x2_t __a) {
+ return (uint64x2_t)__a; }
+__ai float16x8_t vreinterpretq_f16_f64(float64x2_t __a) {
+ return (float16x8_t)__a; }
+__ai float16x8_t vreinterpretq_f16_p64(poly64x2_t __a) {
+ return (float16x8_t)__a; }
+__ai float32x4_t vreinterpretq_f32_f64(float64x2_t __a) {
+ return (float32x4_t)__a; }
+__ai float32x4_t vreinterpretq_f32_p64(poly64x2_t __a) {
+ return (float32x4_t)__a; }
+__ai float64x2_t vreinterpretq_f64_s8(int8x16_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_s16(int16x8_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_s32(int32x4_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_s64(int64x2_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_u8(uint8x16_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_u16(uint16x8_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_u32(uint32x4_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_u64(uint64x2_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_f16(float16x8_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_f32(float32x4_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_p8(poly8x16_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_p16(poly16x8_t __a) {
+ return (float64x2_t)__a; }
+__ai float64x2_t vreinterpretq_f64_p64(poly64x2_t __a) {
+ return (float64x2_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_f64(float64x2_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly8x16_t vreinterpretq_p8_p64(poly64x2_t __a) {
+ return (poly8x16_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_f64(float64x2_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly16x8_t vreinterpretq_p16_p64(poly64x2_t __a) {
+ return (poly16x8_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_s8(int8x16_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_s16(int16x8_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_s32(int32x4_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_s64(int64x2_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_u8(uint8x16_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_u16(uint16x8_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_u32(uint32x4_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_u64(uint64x2_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_f16(float16x8_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_f32(float32x4_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_f64(float64x2_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_p8(poly8x16_t __a) {
+ return (poly64x2_t)__a; }
+__ai poly64x2_t vreinterpretq_p64_p16(poly16x8_t __a) {
+ return (poly64x2_t)__a; }
+
+#define vrshrn_high_n_s16(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int16x8_t __b = (b); \
+ (int8x16_t)vcombine_s16(__a, vrshrn_n_s16(__b, __c)); })
+#define vrshrn_high_n_s32(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int32x4_t __b = (b); \
+ (int16x8_t)vcombine_s32(__a, vrshrn_n_s32(__b, __c)); })
+#define vrshrn_high_n_s64(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int64x2_t __b = (b); \
+ (int32x4_t)vcombine_s64(__a, vrshrn_n_s64(__b, __c)); })
+#define vrshrn_high_n_u16(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint8x16_t)vcombine_u16(__a, vrshrn_n_u16(__b, __c)); })
+#define vrshrn_high_n_u32(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint16x8_t)vcombine_u32(__a, vrshrn_n_u32(__b, __c)); })
+#define vrshrn_high_n_u64(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint32x4_t)vcombine_u64(__a, vrshrn_n_u64(__b, __c)); })
+
+__ai float32_t vabds_f32(float32_t __a, float32_t __b) {
+ return (float32_t)__builtin_neon_vabds_f32(__a, __b); }
+__ai float64_t vabdd_f64(float64_t __a, float64_t __b) {
+ return (float64_t)__builtin_neon_vabdd_f64(__a, __b); }
+
+__ai int64_t vabsd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vabsd_s64(__a); }
+
+__ai int64_t vaddd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vaddd_s64(__a, __b); }
+__ai uint64_t vaddd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vaddd_u64(__a, __b); }
+
+__ai float32_t vpadds_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vpadds_f32(__a); }
+__ai int64_t vpaddd_s64(int64x2_t __a) {
+ return (int64_t)__builtin_neon_vpaddd_s64(__a); }
+__ai float64_t vpaddd_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vpaddd_f64(__a); }
+__ai uint64_t vpaddd_u64(uint64x2_t __a) {
+ return (uint64_t)__builtin_neon_vpaddd_u64((int64x2_t)__a); }
+
+__ai int64_t vceqd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vceqd_s64(__a, __b); }
+__ai uint64_t vceqd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vceqd_u64(__a, __b); }
+
+__ai int64_t vceqzd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vceqzd_s64(__a); }
+__ai uint64_t vceqzd_u64(uint64_t __a) {
+ return (uint64_t)__builtin_neon_vceqzd_u64(__a); }
+
+__ai int64_t vcged_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vcged_s64(__a, __b); }
+
+__ai int64_t vcgezd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vcgezd_s64(__a); }
+
+__ai int64_t vcgtd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vcgtd_s64(__a, __b); }
+
+__ai int64_t vcgtzd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vcgtzd_s64(__a); }
+
+__ai uint64_t vcgtd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vcgtd_u64(__a, __b); }
+
+__ai uint64_t vcged_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vcged_u64(__a, __b); }
+
+__ai int64_t vcled_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vcled_s64(__a, __b); }
+__ai uint64_t vcled_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vcled_u64(__a, __b); }
+
+__ai int64_t vclezd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vclezd_s64(__a); }
+
+__ai int64_t vcltd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vcltd_s64(__a, __b); }
+__ai uint64_t vcltd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vcltd_u64(__a, __b); }
+
+__ai int64_t vcltzd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vcltzd_s64(__a); }
+
+__ai int64_t vtstd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vtstd_s64(__a, __b); }
+__ai uint64_t vtstd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vtstd_u64(__a, __b); }
+
+__ai uint32_t vcages_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcages_f32(__a, __b); }
+__ai uint64_t vcaged_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcaged_f64(__a, __b); }
+
+__ai uint32_t vcagts_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcagts_f32(__a, __b); }
+__ai uint64_t vcagtd_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcagtd_f64(__a, __b); }
+
+__ai uint32_t vcales_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcales_f32(__a, __b); }
+__ai uint64_t vcaled_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcaled_f64(__a, __b); }
+
+__ai uint32_t vcalts_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcalts_f32(__a, __b); }
+__ai uint64_t vcaltd_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcaltd_f64(__a, __b); }
+
+__ai uint32_t vceqs_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vceqs_f32(__a, __b); }
+__ai uint64_t vceqd_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vceqd_f64(__a, __b); }
+
+__ai uint32_t vceqzs_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vceqzs_f32(__a); }
+__ai uint64_t vceqzd_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vceqzd_f64(__a); }
+
+__ai uint32_t vcges_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcges_f32(__a, __b); }
+__ai uint64_t vcged_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcged_f64(__a, __b); }
+
+__ai uint32_t vcgezs_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcgezs_f32(__a); }
+__ai uint64_t vcgezd_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcgezd_f64(__a); }
+
+__ai uint32_t vcgts_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcgts_f32(__a, __b); }
+__ai uint64_t vcgtd_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcgtd_f64(__a, __b); }
+
+__ai uint32_t vcgtzs_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcgtzs_f32(__a); }
+__ai uint64_t vcgtzd_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcgtzd_f64(__a); }
+
+__ai uint32_t vcles_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vcles_f32(__a, __b); }
+__ai uint64_t vcled_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcled_f64(__a, __b); }
+
+__ai uint32_t vclezs_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vclezs_f32(__a); }
+__ai uint64_t vclezd_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vclezd_f64(__a); }
+
+__ai uint32_t vclts_f32(float32_t __a, float32_t __b) {
+ return (uint32_t)__builtin_neon_vclts_f32(__a, __b); }
+__ai uint64_t vcltd_f64(float64_t __a, float64_t __b) {
+ return (uint64_t)__builtin_neon_vcltd_f64(__a, __b); }
+
+__ai uint32_t vcltzs_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcltzs_f32(__a); }
+__ai uint64_t vcltzd_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcltzd_f64(__a); }
+
+__ai int64_t vcvtad_s64_f64(float64_t __a) {
+ return (int64_t)__builtin_neon_vcvtad_s64_f64(__a); }
+
+__ai int32_t vcvtas_s32_f32(float32_t __a) {
+ return (int32_t)__builtin_neon_vcvtas_s32_f32(__a); }
+
+__ai uint64_t vcvtad_u64_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcvtad_u64_f64(__a); }
+
+__ai uint32_t vcvtas_u32_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcvtas_u32_f32(__a); }
+
+__ai int64_t vcvtmd_s64_f64(float64_t __a) {
+ return (int64_t)__builtin_neon_vcvtmd_s64_f64(__a); }
+
+__ai int32_t vcvtms_s32_f32(float32_t __a) {
+ return (int32_t)__builtin_neon_vcvtms_s32_f32(__a); }
+
+__ai uint64_t vcvtmd_u64_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcvtmd_u64_f64(__a); }
+
+__ai uint32_t vcvtms_u32_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcvtms_u32_f32(__a); }
+
+__ai int64_t vcvtnd_s64_f64(float64_t __a) {
+ return (int64_t)__builtin_neon_vcvtnd_s64_f64(__a); }
+
+__ai int32_t vcvtns_s32_f32(float32_t __a) {
+ return (int32_t)__builtin_neon_vcvtns_s32_f32(__a); }
+
+__ai uint64_t vcvtnd_u64_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcvtnd_u64_f64(__a); }
+
+__ai uint32_t vcvtns_u32_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcvtns_u32_f32(__a); }
+
+__ai int64_t vcvtpd_s64_f64(float64_t __a) {
+ return (int64_t)__builtin_neon_vcvtpd_s64_f64(__a); }
+
+__ai int32_t vcvtps_s32_f32(float32_t __a) {
+ return (int32_t)__builtin_neon_vcvtps_s32_f32(__a); }
+
+__ai uint64_t vcvtpd_u64_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcvtpd_u64_f64(__a); }
+
+__ai uint32_t vcvtps_u32_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcvtps_u32_f32(__a); }
+
+__ai float32_t vcvtxd_f32_f64(float64_t __a) {
+ return (float32_t)__builtin_neon_vcvtxd_f32_f64(__a); }
+
+__ai int64_t vcvtd_s64_f64(float64_t __a) {
+ return (int64_t)__builtin_neon_vcvtd_s64_f64(__a); }
+
+__ai int32_t vcvts_s32_f32(float32_t __a) {
+ return (int32_t)__builtin_neon_vcvts_s32_f32(__a); }
+
+#define vcvts_n_s32_f32(a, __b) __extension__ ({ \
+ float32_t __a = (a); \
+ (int32_t)__builtin_neon_vcvts_n_s32_f32(__a, __b); })
+
+#define vcvtd_n_s64_f64(a, __b) __extension__ ({ \
+ float64_t __a = (a); \
+ (int64_t)__builtin_neon_vcvtd_n_s64_f64(__a, __b); })
+
+__ai uint64_t vcvtd_u64_f64(float64_t __a) {
+ return (uint64_t)__builtin_neon_vcvtd_u64_f64(__a); }
+
+__ai uint32_t vcvts_u32_f32(float32_t __a) {
+ return (uint32_t)__builtin_neon_vcvts_u32_f32(__a); }
+
+#define vcvts_n_u32_f32(a, __b) __extension__ ({ \
+ float32_t __a = (a); \
+ (uint32_t)__builtin_neon_vcvts_n_u32_f32(__a, __b); })
+
+#define vcvtd_n_u64_f64(a, __b) __extension__ ({ \
+ float64_t __a = (a); \
+ (uint64_t)__builtin_neon_vcvtd_n_u64_f64(__a, __b); })
+
+__ai float32_t vpmaxnms_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vpmaxnms_f32(__a); }
+__ai float64_t vpmaxnmqd_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vpmaxnmqd_f64(__a); }
+
+__ai float32_t vpmaxs_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vpmaxs_f32(__a); }
+__ai float64_t vpmaxqd_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vpmaxqd_f64(__a); }
+
+__ai float32_t vpminnms_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vpminnms_f32(__a); }
+__ai float64_t vpminnmqd_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vpminnmqd_f64(__a); }
+
+__ai float32_t vpmins_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vpmins_f32(__a); }
+__ai float64_t vpminqd_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vpminqd_f64(__a); }
+
+#define vfmas_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32_t __a = (a); float32_t __b = (b); float32x2_t __c = (c); \
+ (float32_t)__builtin_neon_vfmas_lane_f32(__a, __b, __c, __d); })
+#define vfmad_lane_f64(a, b, c, __d) __extension__ ({ \
+ float64_t __a = (a); float64_t __b = (b); float64x1_t __c = (c); \
+ (float64_t)__builtin_neon_vfmad_lane_f64(__a, __b, __c, __d); })
+
+#define vfmas_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32_t __a = (a); float32_t __b = (b); float32x4_t __c = (c); \
+ (float32_t)__builtin_neon_vfmas_laneq_f32(__a, __b, __c, __d); })
+#define vfmad_laneq_f64(a, b, c, __d) __extension__ ({ \
+ float64_t __a = (a); float64_t __b = (b); float64x2_t __c = (c); \
+ (float64_t)__builtin_neon_vfmad_laneq_f64(__a, __b, __c, __d); })
+
+#define vfmss_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32_t __a = (a); float32_t __b = (b); float32x2_t __c = (c); \
+ float32_t __a1 = __a; \
+ float32_t __b1 = __b; \
+ float32x2_t __c1 = __c; \
+ vfmas_lane_f32(__a1, __b1, -__c1, __d); })
+#define vfmsd_lane_f64(a, b, c, __d) __extension__ ({ \
+ float64_t __a = (a); float64_t __b = (b); float64x1_t __c = (c); \
+ float64_t __a1 = __a; \
+ float64_t __b1 = __b; \
+ float64x1_t __c1 = __c; \
+ vfmad_lane_f64(__a1, __b1, -__c1, __d); })
+
+#define vfmss_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32_t __a = (a); float32_t __b = (b); float32x4_t __c = (c); \
+ float32_t __a1 = __a; \
+ float32_t __b1 = __b; \
+ float32x4_t __c1 = __c; \
+ vfmas_laneq_f32(__a1, __b1, -__c1, __d); })
+#define vfmsd_laneq_f64(a, b, c, __d) __extension__ ({ \
+ float64_t __a = (a); float64_t __b = (b); float64x2_t __c = (c); \
+ float64_t __a1 = __a; \
+ float64_t __b1 = __b; \
+ float64x2_t __c1 = __c; \
+ vfmad_laneq_f64(__a1, __b1, -__c1, __d); })
+
+__ai float32_t vmulxs_f32(float32_t __a, float32_t __b) {
+ return (float32_t)__builtin_neon_vmulxs_f32(__a, __b); }
+__ai float64_t vmulxd_f64(float64_t __a, float64_t __b) {
+ return (float64_t)__builtin_neon_vmulxd_f64(__a, __b); }
+
+#define vmulxs_lane_f32(a, b, __c) __extension__ ({ \
+ float32_t __a = (a); float32x2_t __b = (b); \
+ float32_t __d1 = vget_lane_f32(__b, __c);\
+ vmulxs_f32(__a, __d1); })
+#define vmulxd_lane_f64(a, b, __c) __extension__ ({ \
+ float64_t __a = (a); float64x1_t __b = (b); \
+ float64_t __d1 = vget_lane_f64(__b, __c);\
+ vmulxd_f64(__a, __d1); })
+
+#define vmulxs_laneq_f32(a, b, __c) __extension__ ({ \
+ float32_t __a = (a); float32x4_t __b = (b); \
+ float32_t __d1 = vgetq_lane_f32(__b, __c);\
+ vmulxs_f32(__a, __d1); })
+#define vmulxd_laneq_f64(a, b, __c) __extension__ ({ \
+ float64_t __a = (a); float64x2_t __b = (b); \
+ float64_t __d1 = vgetq_lane_f64(__b, __c);\
+ vmulxd_f64(__a, __d1); })
+
+#define vmuls_lane_f32(a, b, __c) __extension__ ({ \
+ float32_t __a = (a); float32x2_t __b = (b); \
+ float32_t __d1 = vget_lane_f32(__b, __c);\
+ __a * __d1; })
+#define vmuld_lane_f64(a, b, __c) __extension__ ({ \
+ float64_t __a = (a); float64x1_t __b = (b); \
+ float64_t __d1 = vget_lane_f64(__b, __c);\
+ __a * __d1; })
+
+#define vmuls_laneq_f32(a, b, __c) __extension__ ({ \
+ float32_t __a = (a); float32x4_t __b = (b); \
+ float32_t __d1 = vgetq_lane_f32(__b, __c);\
+ __a * __d1; })
+#define vmuld_laneq_f64(a, b, __c) __extension__ ({ \
+ float64_t __a = (a); float64x2_t __b = (b); \
+ float64_t __d1 = vgetq_lane_f64(__b, __c);\
+ __a * __d1; })
+
+__ai float32_t vrecpes_f32(float32_t __a) {
+ return (float32_t)__builtin_neon_vrecpes_f32(__a); }
+__ai float64_t vrecped_f64(float64_t __a) {
+ return (float64_t)__builtin_neon_vrecped_f64(__a); }
+
+__ai float32_t vrecpss_f32(float32_t __a, float32_t __b) {
+ return (float32_t)__builtin_neon_vrecpss_f32(__a, __b); }
+__ai float64_t vrecpsd_f64(float64_t __a, float64_t __b) {
+ return (float64_t)__builtin_neon_vrecpsd_f64(__a, __b); }
+
+__ai float32_t vrecpxs_f32(float32_t __a) {
+ return (float32_t)__builtin_neon_vrecpxs_f32(__a); }
+__ai float64_t vrecpxd_f64(float64_t __a) {
+ return (float64_t)__builtin_neon_vrecpxd_f64(__a); }
+
+__ai float32_t vrsqrtes_f32(float32_t __a) {
+ return (float32_t)__builtin_neon_vrsqrtes_f32(__a); }
+__ai float64_t vrsqrted_f64(float64_t __a) {
+ return (float64_t)__builtin_neon_vrsqrted_f64(__a); }
+
+__ai float32_t vrsqrtss_f32(float32_t __a, float32_t __b) {
+ return (float32_t)__builtin_neon_vrsqrtss_f32(__a, __b); }
+__ai float64_t vrsqrtsd_f64(float64_t __a, float64_t __b) {
+ return (float64_t)__builtin_neon_vrsqrtsd_f64(__a, __b); }
+
+#define vget_lane_f16(a, __b) __extension__ ({ \
+ float16x4_t __a = (a); \
+ int16x4_t __a1 = vreinterpret_s16_f16(__a);\
+ vget_lane_s16(__a1, __b); })
+#define vgetq_lane_f16(a, __b) __extension__ ({ \
+ float16x8_t __a = (a); \
+ int16x8_t __a1 = vreinterpretq_s16_f16(__a);\
+ vgetq_lane_s16(__a1, __b); })
+
+__ai int64_t vnegd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vnegd_s64(__a); }
+
+__ai int8_t vqaddb_s8(int8_t __a, int8_t __b) {
+ return (int8_t)__builtin_neon_vqaddb_s8(__a, __b); }
+__ai int16_t vqaddh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vqaddh_s16(__a, __b); }
+__ai int32_t vqadds_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vqadds_s32(__a, __b); }
+__ai int64_t vqaddd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vqaddd_s64(__a, __b); }
+__ai uint8_t vqaddb_u8(uint8_t __a, uint8_t __b) {
+ return (uint8_t)__builtin_neon_vqaddb_u8(__a, __b); }
+__ai uint16_t vqaddh_u16(uint16_t __a, uint16_t __b) {
+ return (uint16_t)__builtin_neon_vqaddh_u16(__a, __b); }
+__ai uint32_t vqadds_u32(uint32_t __a, uint32_t __b) {
+ return (uint32_t)__builtin_neon_vqadds_u32(__a, __b); }
+__ai uint64_t vqaddd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vqaddd_u64(__a, __b); }
+
+__ai int8_t vqrshlb_s8(int8_t __a, int8_t __b) {
+ return (int8_t)__builtin_neon_vqrshlb_s8(__a, __b); }
+__ai int16_t vqrshlh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vqrshlh_s16(__a, __b); }
+__ai int32_t vqrshls_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vqrshls_s32(__a, __b); }
+__ai int64_t vqrshld_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vqrshld_s64(__a, __b); }
+__ai uint8_t vqrshlb_u8(uint8_t __a, uint8_t __b) {
+ return (uint8_t)__builtin_neon_vqrshlb_u8(__a, __b); }
+__ai uint16_t vqrshlh_u16(uint16_t __a, uint16_t __b) {
+ return (uint16_t)__builtin_neon_vqrshlh_u16(__a, __b); }
+__ai uint32_t vqrshls_u32(uint32_t __a, uint32_t __b) {
+ return (uint32_t)__builtin_neon_vqrshls_u32(__a, __b); }
+__ai uint64_t vqrshld_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vqrshld_u64(__a, __b); }
+
+__ai int8_t vqshlb_s8(int8_t __a, int8_t __b) {
+ return (int8_t)__builtin_neon_vqshlb_s8(__a, __b); }
+__ai int16_t vqshlh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vqshlh_s16(__a, __b); }
+__ai int32_t vqshls_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vqshls_s32(__a, __b); }
+__ai int64_t vqshld_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vqshld_s64(__a, __b); }
+__ai uint8_t vqshlb_u8(uint8_t __a, uint8_t __b) {
+ return (uint8_t)__builtin_neon_vqshlb_u8(__a, __b); }
+__ai uint16_t vqshlh_u16(uint16_t __a, uint16_t __b) {
+ return (uint16_t)__builtin_neon_vqshlh_u16(__a, __b); }
+__ai uint32_t vqshls_u32(uint32_t __a, uint32_t __b) {
+ return (uint32_t)__builtin_neon_vqshls_u32(__a, __b); }
+__ai uint64_t vqshld_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vqshld_u64(__a, __b); }
+
+__ai int8_t vqsubb_s8(int8_t __a, int8_t __b) {
+ return (int8_t)__builtin_neon_vqsubb_s8(__a, __b); }
+__ai int16_t vqsubh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vqsubh_s16(__a, __b); }
+__ai int32_t vqsubs_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vqsubs_s32(__a, __b); }
+__ai int64_t vqsubd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vqsubd_s64(__a, __b); }
+__ai uint8_t vqsubb_u8(uint8_t __a, uint8_t __b) {
+ return (uint8_t)__builtin_neon_vqsubb_u8(__a, __b); }
+__ai uint16_t vqsubh_u16(uint16_t __a, uint16_t __b) {
+ return (uint16_t)__builtin_neon_vqsubh_u16(__a, __b); }
+__ai uint32_t vqsubs_u32(uint32_t __a, uint32_t __b) {
+ return (uint32_t)__builtin_neon_vqsubs_u32(__a, __b); }
+__ai uint64_t vqsubd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vqsubd_u64(__a, __b); }
+
+__ai int64_t vrshld_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vrshld_s64(__a, __b); }
+__ai uint64_t vrshld_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vrshld_u64(__a, __b); }
+
+__ai float64_t vcvtd_f64_s64(int64_t __a) {
+ return (float64_t)__builtin_neon_vcvtd_f64_s64(__a); }
+
+__ai float32_t vcvts_f32_s32(int32_t __a) {
+ return (float32_t)__builtin_neon_vcvts_f32_s32(__a); }
+
+#define vcvts_n_f32_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (float32_t)__builtin_neon_vcvts_n_f32_s32(__a, __b); })
+#define vcvts_n_f32_u32(a, __b) __extension__ ({ \
+ uint32_t __a = (a); \
+ (float32_t)__builtin_neon_vcvts_n_f32_u32(__a, __b); })
+
+#define vcvtd_n_f64_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (float64_t)__builtin_neon_vcvtd_n_f64_s64(__a, __b); })
+#define vcvtd_n_f64_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (float64_t)__builtin_neon_vcvtd_n_f64_u64(__a, __b); })
+
+#define vset_lane_f16(a, b, __c) __extension__ ({ \
+ float16_t __a = (a); float16x4_t __b = (b); \
+ int16_t __a1 = (int16_t)__a;\
+ int16x4_t __b1 = vreinterpret_s16_f16(b);\
+ int16x4_t __b2 = vset_lane_s16(__a1, __b1, __c);\
+ vreinterpret_f16_s16(__b2); })
+#define vsetq_lane_f16(a, b, __c) __extension__ ({ \
+ float16_t __a = (a); float16x8_t __b = (b); \
+ int16_t __a1 = (int16_t)__a;\
+ int16x8_t __b1 = vreinterpretq_s16_f16(b);\
+ int16x8_t __b2 = vsetq_lane_s16(__a1, __b1, __c);\
+ vreinterpretq_f16_s16(__b2); })
+
+__ai int64_t vshld_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vshld_s64(__a, __b); }
+__ai uint64_t vshld_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vshld_u64(__a, __b); }
+
+#define vshld_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int64_t)__builtin_neon_vshld_n_s64(__a, __b); })
+#define vshld_n_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (uint64_t)__builtin_neon_vshld_n_u64(__a, __b); })
+
+#define vslid_n_s64(a, b, __c) __extension__ ({ \
+ int64_t __a = (a); int64_t __b = (b); \
+ (int64_t)__builtin_neon_vslid_n_s64(__a, __b, __c); })
+#define vslid_n_u64(a, b, __c) __extension__ ({ \
+ uint64_t __a = (a); uint64_t __b = (b); \
+ (uint64_t)__builtin_neon_vslid_n_u64(__a, __b, __c); })
+
+__ai int8_t vqabsb_s8(int8_t __a) {
+ return (int8_t)__builtin_neon_vqabsb_s8(__a); }
+__ai int16_t vqabsh_s16(int16_t __a) {
+ return (int16_t)__builtin_neon_vqabsh_s16(__a); }
+__ai int32_t vqabss_s32(int32_t __a) {
+ return (int32_t)__builtin_neon_vqabss_s32(__a); }
+__ai int64_t vqabsd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vqabsd_s64(__a); }
+
+__ai int32_t vqdmlalh_s16(int32_t __a, int16_t __b, int16_t __c) {
+ return (int32_t)__builtin_neon_vqdmlalh_s16(__a, __b, __c); }
+__ai int64_t vqdmlals_s32(int64_t __a, int32_t __b, int32_t __c) {
+ return (int64_t)__builtin_neon_vqdmlals_s32(__a, __b, __c); }
+
+#define vqdmlalh_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32_t __a = (a); int16_t __b = (b); int16x4_t __c = (c); \
+ (int32_t)__builtin_neon_vqdmlalh_lane_s16(__a, __b, __c, __d); })
+#define vqdmlals_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64_t __a = (a); int32_t __b = (b); int32x2_t __c = (c); \
+ (int64_t)__builtin_neon_vqdmlals_lane_s32(__a, __b, __c, __d); })
+
+#define vqdmlalh_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32_t __a = (a); int16_t __b = (b); int16x8_t __c = (c); \
+ (int32_t)__builtin_neon_vqdmlalh_laneq_s16(__a, __b, __c, __d); })
+#define vqdmlals_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64_t __a = (a); int32_t __b = (b); int32x4_t __c = (c); \
+ (int64_t)__builtin_neon_vqdmlals_laneq_s32(__a, __b, __c, __d); })
+
+__ai int32_t vqdmlslh_s16(int32_t __a, int16_t __b, int16_t __c) {
+ return (int32_t)__builtin_neon_vqdmlslh_s16(__a, __b, __c); }
+__ai int64_t vqdmlsls_s32(int64_t __a, int32_t __b, int32_t __c) {
+ return (int64_t)__builtin_neon_vqdmlsls_s32(__a, __b, __c); }
+
+#define vqdmlslh_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32_t __a = (a); int16_t __b = (b); int16x4_t __c = (c); \
+ (int32_t)__builtin_neon_vqdmlslh_lane_s16(__a, __b, __c, __d); })
+#define vqdmlsls_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64_t __a = (a); int32_t __b = (b); int32x2_t __c = (c); \
+ (int64_t)__builtin_neon_vqdmlsls_lane_s32(__a, __b, __c, __d); })
+
+#define vqdmlslh_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32_t __a = (a); int16_t __b = (b); int16x8_t __c = (c); \
+ (int32_t)__builtin_neon_vqdmlslh_laneq_s16(__a, __b, __c, __d); })
+#define vqdmlsls_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64_t __a = (a); int32_t __b = (b); int32x4_t __c = (c); \
+ (int64_t)__builtin_neon_vqdmlsls_laneq_s32(__a, __b, __c, __d); })
+
+__ai int16_t vqdmulhh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vqdmulhh_s16(__a, __b); }
+__ai int32_t vqdmulhs_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vqdmulhs_s32(__a, __b); }
+
+#define vqdmulhh_lane_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x4_t __b = (b); \
+ vqdmulhh_s16(__a, vget_lane_s16(__b, __c)); })
+#define vqdmulhs_lane_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x2_t __b = (b); \
+ vqdmulhs_s32(__a, vget_lane_s32(__b, __c)); })
+
+#define vqdmulhh_laneq_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x8_t __b = (b); \
+ vqdmulhh_s16(__a, vgetq_lane_s16(__b, __c)); })
+#define vqdmulhs_laneq_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x4_t __b = (b); \
+ vqdmulhs_s32(__a, vgetq_lane_s32(__b, __c)); })
+
+__ai int32_t vqdmullh_s16(int16_t __a, int16_t __b) {
+ return (int32_t)__builtin_neon_vqdmullh_s16(__a, __b); }
+__ai int64_t vqdmulls_s32(int32_t __a, int32_t __b) {
+ return (int64_t)__builtin_neon_vqdmulls_s32(__a, __b); }
+
+#define vqdmullh_lane_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x4_t __b = (b); \
+ vqdmullh_s16(__a, vget_lane_s16(b, __c)); })
+#define vqdmulls_lane_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x2_t __b = (b); \
+ vqdmulls_s32(__a, vget_lane_s32(b, __c)); })
+
+#define vqdmullh_laneq_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x8_t __b = (b); \
+ vqdmullh_s16(__a, vgetq_lane_s16(b, __c)); })
+#define vqdmulls_laneq_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x4_t __b = (b); \
+ vqdmulls_s32(__a, vgetq_lane_s32(b, __c)); })
+
+__ai int8_t vqnegb_s8(int8_t __a) {
+ return (int8_t)__builtin_neon_vqnegb_s8(__a); }
+__ai int16_t vqnegh_s16(int16_t __a) {
+ return (int16_t)__builtin_neon_vqnegh_s16(__a); }
+__ai int32_t vqnegs_s32(int32_t __a) {
+ return (int32_t)__builtin_neon_vqnegs_s32(__a); }
+__ai int64_t vqnegd_s64(int64_t __a) {
+ return (int64_t)__builtin_neon_vqnegd_s64(__a); }
+
+__ai int16_t vqrdmulhh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vqrdmulhh_s16(__a, __b); }
+__ai int32_t vqrdmulhs_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vqrdmulhs_s32(__a, __b); }
+
+#define vqrdmulhh_lane_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x4_t __b = (b); \
+ vqrdmulhh_s16(__a, vget_lane_s16(__b, __c)); })
+#define vqrdmulhs_lane_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x2_t __b = (b); \
+ vqrdmulhs_s32(__a, vget_lane_s32(__b, __c)); })
+
+#define vqrdmulhh_laneq_s16(a, b, __c) __extension__ ({ \
+ int16_t __a = (a); int16x8_t __b = (b); \
+ vqrdmulhh_s16(__a, vgetq_lane_s16(__b, __c)); })
+#define vqrdmulhs_laneq_s32(a, b, __c) __extension__ ({ \
+ int32_t __a = (a); int32x4_t __b = (b); \
+ vqrdmulhs_s32(__a, vgetq_lane_s32(__b, __c)); })
+
+#define vqrshrnh_n_s16(a, __b) __extension__ ({ \
+ int16_t __a = (a); \
+ (int8_t)__builtin_neon_vqrshrnh_n_s16(__a, __b); })
+#define vqrshrns_n_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (int16_t)__builtin_neon_vqrshrns_n_s32(__a, __b); })
+#define vqrshrnd_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int32_t)__builtin_neon_vqrshrnd_n_s64(__a, __b); })
+#define vqrshrnh_n_u16(a, __b) __extension__ ({ \
+ uint16_t __a = (a); \
+ (uint8_t)__builtin_neon_vqrshrnh_n_u16(__a, __b); })
+#define vqrshrns_n_u32(a, __b) __extension__ ({ \
+ uint32_t __a = (a); \
+ (uint16_t)__builtin_neon_vqrshrns_n_u32(__a, __b); })
+#define vqrshrnd_n_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (uint32_t)__builtin_neon_vqrshrnd_n_u64(__a, __b); })
+
+#define vqrshrunh_n_s16(a, __b) __extension__ ({ \
+ int16_t __a = (a); \
+ (int8_t)__builtin_neon_vqrshrunh_n_s16(__a, __b); })
+#define vqrshruns_n_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (int16_t)__builtin_neon_vqrshruns_n_s32(__a, __b); })
+#define vqrshrund_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int32_t)__builtin_neon_vqrshrund_n_s64(__a, __b); })
+
+#define vqshlub_n_s8(a, __b) __extension__ ({ \
+ int8_t __a = (a); \
+ (int8_t)__builtin_neon_vqshlub_n_s8(__a, __b); })
+#define vqshluh_n_s16(a, __b) __extension__ ({ \
+ int16_t __a = (a); \
+ (int16_t)__builtin_neon_vqshluh_n_s16(__a, __b); })
+#define vqshlus_n_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (int32_t)__builtin_neon_vqshlus_n_s32(__a, __b); })
+#define vqshlud_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int64_t)__builtin_neon_vqshlud_n_s64(__a, __b); })
+
+#define vqshlb_n_s8(a, __b) __extension__ ({ \
+ int8_t __a = (a); \
+ (int8_t)__builtin_neon_vqshlb_n_s8(__a, __b); })
+#define vqshlh_n_s16(a, __b) __extension__ ({ \
+ int16_t __a = (a); \
+ (int16_t)__builtin_neon_vqshlh_n_s16(__a, __b); })
+#define vqshls_n_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (int32_t)__builtin_neon_vqshls_n_s32(__a, __b); })
+#define vqshld_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int64_t)__builtin_neon_vqshld_n_s64(__a, __b); })
+#define vqshlb_n_u8(a, __b) __extension__ ({ \
+ uint8_t __a = (a); \
+ (uint8_t)__builtin_neon_vqshlb_n_u8(__a, __b); })
+#define vqshlh_n_u16(a, __b) __extension__ ({ \
+ uint16_t __a = (a); \
+ (uint16_t)__builtin_neon_vqshlh_n_u16(__a, __b); })
+#define vqshls_n_u32(a, __b) __extension__ ({ \
+ uint32_t __a = (a); \
+ (uint32_t)__builtin_neon_vqshls_n_u32(__a, __b); })
+#define vqshld_n_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (uint64_t)__builtin_neon_vqshld_n_u64(__a, __b); })
+
+#define vqshrnh_n_s16(a, __b) __extension__ ({ \
+ int16_t __a = (a); \
+ (int8_t)__builtin_neon_vqshrnh_n_s16(__a, __b); })
+#define vqshrns_n_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (int16_t)__builtin_neon_vqshrns_n_s32(__a, __b); })
+#define vqshrnd_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int32_t)__builtin_neon_vqshrnd_n_s64(__a, __b); })
+#define vqshrnh_n_u16(a, __b) __extension__ ({ \
+ uint16_t __a = (a); \
+ (uint8_t)__builtin_neon_vqshrnh_n_u16(__a, __b); })
+#define vqshrns_n_u32(a, __b) __extension__ ({ \
+ uint32_t __a = (a); \
+ (uint16_t)__builtin_neon_vqshrns_n_u32(__a, __b); })
+#define vqshrnd_n_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (uint32_t)__builtin_neon_vqshrnd_n_u64(__a, __b); })
+
+#define vqshrunh_n_s16(a, __b) __extension__ ({ \
+ int16_t __a = (a); \
+ (int8_t)__builtin_neon_vqshrunh_n_s16(__a, __b); })
+#define vqshruns_n_s32(a, __b) __extension__ ({ \
+ int32_t __a = (a); \
+ (int16_t)__builtin_neon_vqshruns_n_s32(__a, __b); })
+#define vqshrund_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int32_t)__builtin_neon_vqshrund_n_s64(__a, __b); })
+
+__ai int8_t vqmovnh_s16(int16_t __a) {
+ return (int8_t)__builtin_neon_vqmovnh_s16(__a); }
+__ai int16_t vqmovns_s32(int32_t __a) {
+ return (int16_t)__builtin_neon_vqmovns_s32(__a); }
+__ai int32_t vqmovnd_s64(int64_t __a) {
+ return (int32_t)__builtin_neon_vqmovnd_s64(__a); }
+
+__ai int8_t vqmovunh_s16(int16_t __a) {
+ return (int8_t)__builtin_neon_vqmovunh_s16(__a); }
+__ai int16_t vqmovuns_s32(int32_t __a) {
+ return (int16_t)__builtin_neon_vqmovuns_s32(__a); }
+__ai int32_t vqmovund_s64(int64_t __a) {
+ return (int32_t)__builtin_neon_vqmovund_s64(__a); }
+
+#define vsrid_n_s64(a, b, __c) __extension__ ({ \
+ int64_t __a = (a); int64_t __b = (b); \
+ (int64_t)__builtin_neon_vsrid_n_s64(__a, __b, __c); })
+#define vsrid_n_u64(a, b, __c) __extension__ ({ \
+ uint64_t __a = (a); uint64_t __b = (b); \
+ (uint64_t)__builtin_neon_vsrid_n_u64(__a, __b, __c); })
+
+#define vrshrd_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int64_t)__builtin_neon_vrshrd_n_s64(__a, __b); })
+#define vrshrd_n_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (uint64_t)__builtin_neon_vrshrd_n_u64(__a, __b); })
+
+#define vrsrad_n_s64(a, b, __c) __extension__ ({ \
+ int64_t __a = (a); int64_t __b = (b); \
+ (int64_t)__builtin_neon_vrsrad_n_s64(__a, __b, __c); })
+#define vrsrad_n_u64(a, b, __c) __extension__ ({ \
+ uint64_t __a = (a); uint64_t __b = (b); \
+ (uint64_t)__builtin_neon_vrsrad_n_u64(__a, __b, __c); })
+
+#define vshrd_n_s64(a, __b) __extension__ ({ \
+ int64_t __a = (a); \
+ (int64_t)__builtin_neon_vshrd_n_s64(__a, __b); })
+#define vshrd_n_u64(a, __b) __extension__ ({ \
+ uint64_t __a = (a); \
+ (uint64_t)__builtin_neon_vshrd_n_u64(__a, __b); })
+
+#define vsrad_n_s64(a, b, __c) __extension__ ({ \
+ int64_t __a = (a); int64_t __b = (b); \
+ (int64_t)__builtin_neon_vsrad_n_s64(__a, __b, __c); })
+#define vsrad_n_u64(a, b, __c) __extension__ ({ \
+ uint64_t __a = (a); uint64_t __b = (b); \
+ (uint64_t)__builtin_neon_vsrad_n_u64(__a, __b, __c); })
+
+__ai int64_t vsubd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vsubd_s64(__a, __b); }
+__ai uint64_t vsubd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vsubd_u64(__a, __b); }
+
+__ai int8_t vuqaddb_s8(int8_t __a, int8_t __b) {
+ return (int8_t)__builtin_neon_vuqaddb_s8(__a, __b); }
+__ai int16_t vuqaddh_s16(int16_t __a, int16_t __b) {
+ return (int16_t)__builtin_neon_vuqaddh_s16(__a, __b); }
+__ai int32_t vuqadds_s32(int32_t __a, int32_t __b) {
+ return (int32_t)__builtin_neon_vuqadds_s32(__a, __b); }
+__ai int64_t vuqaddd_s64(int64_t __a, int64_t __b) {
+ return (int64_t)__builtin_neon_vuqaddd_s64(__a, __b); }
+
+__ai float64_t vcvtd_f64_u64(uint64_t __a) {
+ return (float64_t)__builtin_neon_vcvtd_f64_u64(__a); }
+
+__ai float32_t vcvts_f32_u32(uint32_t __a) {
+ return (float32_t)__builtin_neon_vcvts_f32_u32(__a); }
+
+__ai uint8_t vqmovnh_u16(uint16_t __a) {
+ return (uint8_t)__builtin_neon_vqmovnh_u16(__a); }
+__ai uint16_t vqmovns_u32(uint32_t __a) {
+ return (uint16_t)__builtin_neon_vqmovns_u32(__a); }
+__ai uint32_t vqmovnd_u64(uint64_t __a) {
+ return (uint32_t)__builtin_neon_vqmovnd_u64(__a); }
+
+__ai uint8_t vsqaddb_u8(uint8_t __a, uint8_t __b) {
+ return (uint8_t)__builtin_neon_vsqaddb_u8(__a, __b); }
+__ai uint16_t vsqaddh_u16(uint16_t __a, uint16_t __b) {
+ return (uint16_t)__builtin_neon_vsqaddh_u16(__a, __b); }
+__ai uint32_t vsqadds_u32(uint32_t __a, uint32_t __b) {
+ return (uint32_t)__builtin_neon_vsqadds_u32(__a, __b); }
+__ai uint64_t vsqaddd_u64(uint64_t __a, uint64_t __b) {
+ return (uint64_t)__builtin_neon_vsqaddd_u64(__a, __b); }
+
+#define vdupb_lane_s8(a, __b) __extension__ ({ \
+ int8x8_t __a = (a); \
+ (int8_t)__builtin_neon_vdupb_lane_i8(__a, __b); })
+#define vduph_lane_s16(a, __b) __extension__ ({ \
+ int16x4_t __a = (a); \
+ (int16_t)__builtin_neon_vduph_lane_i16(__a, __b); })
+#define vdups_lane_s32(a, __b) __extension__ ({ \
+ int32x2_t __a = (a); \
+ (int32_t)__builtin_neon_vdups_lane_i32(__a, __b); })
+#define vdupd_lane_s64(a, __b) __extension__ ({ \
+ int64x1_t __a = (a); \
+ (int64_t)__builtin_neon_vdupd_lane_i64(__a, __b); })
+#define vdups_lane_f32(a, __b) __extension__ ({ \
+ float32x2_t __a = (a); \
+ (float32_t)__builtin_neon_vdups_lane_f32(__a, __b); })
+#define vdupd_lane_f64(a, __b) __extension__ ({ \
+ float64x1_t __a = (a); \
+ (float64_t)__builtin_neon_vdupd_lane_f64(__a, __b); })
+#define vdupb_lane_u8(a, __b) __extension__ ({ \
+ uint8x8_t __a = (a); \
+ (uint8_t)__builtin_neon_vdupb_lane_i8((int8x8_t)__a, __b); })
+#define vduph_lane_u16(a, __b) __extension__ ({ \
+ uint16x4_t __a = (a); \
+ (uint16_t)__builtin_neon_vduph_lane_i16((int16x4_t)__a, __b); })
+#define vdups_lane_u32(a, __b) __extension__ ({ \
+ uint32x2_t __a = (a); \
+ (uint32_t)__builtin_neon_vdups_lane_i32((int32x2_t)__a, __b); })
+#define vdupd_lane_u64(a, __b) __extension__ ({ \
+ uint64x1_t __a = (a); \
+ (uint64_t)__builtin_neon_vdupd_lane_i64((int64x1_t)__a, __b); })
+#define vdupb_lane_p8(a, __b) __extension__ ({ \
+ poly8x8_t __a = (a); \
+ (poly8_t)__builtin_neon_vdupb_lane_i8((int8x8_t)__a, __b); })
+#define vduph_lane_p16(a, __b) __extension__ ({ \
+ poly16x4_t __a = (a); \
+ (poly16_t)__builtin_neon_vduph_lane_i16((int16x4_t)__a, __b); })
+
+#define vdupb_laneq_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ (int8_t)__builtin_neon_vdupb_laneq_i8(__a, __b); })
+#define vduph_laneq_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ (int16_t)__builtin_neon_vduph_laneq_i16(__a, __b); })
+#define vdups_laneq_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ (int32_t)__builtin_neon_vdups_laneq_i32(__a, __b); })
+#define vdupd_laneq_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ (int64_t)__builtin_neon_vdupd_laneq_i64(__a, __b); })
+#define vdups_laneq_f32(a, __b) __extension__ ({ \
+ float32x4_t __a = (a); \
+ (float32_t)__builtin_neon_vdups_laneq_f32(__a, __b); })
+#define vdupd_laneq_f64(a, __b) __extension__ ({ \
+ float64x2_t __a = (a); \
+ (float64_t)__builtin_neon_vdupd_laneq_f64(__a, __b); })
+#define vdupb_laneq_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ (uint8_t)__builtin_neon_vdupb_laneq_i8((int8x16_t)__a, __b); })
+#define vduph_laneq_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ (uint16_t)__builtin_neon_vduph_laneq_i16((int16x8_t)__a, __b); })
+#define vdups_laneq_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ (uint32_t)__builtin_neon_vdups_laneq_i32((int32x4_t)__a, __b); })
+#define vdupd_laneq_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ (uint64_t)__builtin_neon_vdupd_laneq_i64((int64x2_t)__a, __b); })
+#define vdupb_laneq_p8(a, __b) __extension__ ({ \
+ poly8x16_t __a = (a); \
+ (poly8_t)__builtin_neon_vdupb_laneq_i8((int8x16_t)__a, __b); })
+#define vduph_laneq_p16(a, __b) __extension__ ({ \
+ poly16x8_t __a = (a); \
+ (poly16_t)__builtin_neon_vduph_laneq_i16((int16x8_t)__a, __b); })
+
+#define vmulx_lane_f64(a, b, __c) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); \
+ float64_t __d1 = vget_lane_f64(__a, 0);\
+ float64_t __e1 = vget_lane_f64(__b, __c);\
+ float64_t __f1 = vmulxd_f64(__d1, __e1);\
+ float64x1_t __g1;\
+ vset_lane_f64(__f1, __g1, __c); })
+
+#define vmulx_laneq_f64(a, b, __c) __extension__ ({ \
+ float64x1_t __a = (a); float64x2_t __b = (b); \
+ float64_t __d1 = vget_lane_f64(__a, 0);\
+ float64_t __e1 = vgetq_lane_f64(__b, __c);\
+ float64_t __f1 = vmulxd_f64(__d1, __e1);\
+ float64x1_t __g1;\
+ vset_lane_f64(__f1, __g1, 0); })
+
+#define vmul_lane_f64(a, b, __c) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); \
+ (float64x1_t)__builtin_neon_vmul_lane_v((int8x8_t)__a, (int8x8_t)__b, __c, 9); })
+
+#define vmul_laneq_f64(a, b, __c) __extension__ ({ \
+ float64x1_t __a = (a); float64x2_t __b = (b); \
+ (float64x1_t)__builtin_neon_vmul_laneq_v((int8x8_t)__a, (int8x16_t)__b, __c, 9); })
+
+__ai float64x1_t vmul_n_f64(float64x1_t __a, float64_t __b) {
+ return (float64x1_t)__builtin_neon_vmul_n_f64(__a, __b); }
+
+#define vset_lane_f64(a, b, __c) __extension__ ({ \
+ float64_t __a = (a); float64x1_t __b = (b); \
+ (float64x1_t)__builtin_neon_vset_lane_f64(__a, __b, __c); })
+#define vsetq_lane_f64(a, b, __c) __extension__ ({ \
+ float64_t __a = (a); float64x2_t __b = (b); \
+ (float64x2_t)__builtin_neon_vsetq_lane_f64(__a, __b, __c); })
+#define vset_lane_p64(a, b, __c) __extension__ ({ \
+ poly64_t __a = (a); poly64x1_t __b = (b); \
+ (poly64x1_t)__builtin_neon_vset_lane_i64(__a, (int64x1_t)__b, __c); })
+#define vsetq_lane_p64(a, b, __c) __extension__ ({ \
+ poly64_t __a = (a); poly64x2_t __b = (b); \
+ (poly64x2_t)__builtin_neon_vsetq_lane_i64(__a, (int64x2_t)__b, __c); })
+
+#define vshll_high_n_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ int8x8_t __a1 = vget_high_s8(__a); \
+ (int16x8_t)vshll_n_s8(__a1, __b); })
+#define vshll_high_n_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ int16x4_t __a1 = vget_high_s16(__a); \
+ (int32x4_t)vshll_n_s16(__a1, __b); })
+#define vshll_high_n_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ int32x2_t __a1 = vget_high_s32(__a); \
+ (int64x2_t)vshll_n_s32(__a1, __b); })
+#define vshll_high_n_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ uint8x8_t __a1 = vget_high_u8(__a); \
+ (uint16x8_t)vshll_n_u8(__a1, __b); })
+#define vshll_high_n_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ uint16x4_t __a1 = vget_high_u16(__a); \
+ (uint32x4_t)vshll_n_u16(__a1, __b); })
+#define vshll_high_n_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ uint32x2_t __a1 = vget_high_u32(__a); \
+ (uint64x2_t)vshll_n_u32(__a1, __b); })
+
+#define vshrn_high_n_s16(a, b, __c) __extension__ ({ \
+ int8x8_t __a = (a); int16x8_t __b = (b); \
+ (int8x16_t)vcombine_s16(__a, vshrn_n_s16(__b, __c)); })
+#define vshrn_high_n_s32(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int32x4_t __b = (b); \
+ (int16x8_t)vcombine_s32(__a, vshrn_n_s32(__b, __c)); })
+#define vshrn_high_n_s64(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int64x2_t __b = (b); \
+ (int32x4_t)vcombine_s64(__a, vshrn_n_s64(__b, __c)); })
+#define vshrn_high_n_u16(a, b, __c) __extension__ ({ \
+ uint8x8_t __a = (a); uint16x8_t __b = (b); \
+ (uint8x16_t)vcombine_u16(__a, vshrn_n_u16(__b, __c)); })
+#define vshrn_high_n_u32(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint32x4_t __b = (b); \
+ (uint16x8_t)vcombine_u32(__a, vshrn_n_u32(__b, __c)); })
+#define vshrn_high_n_u64(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint64x2_t __b = (b); \
+ (uint32x4_t)vcombine_u64(__a, vshrn_n_u64(__b, __c)); })
+
+#define vsli_n_p64(a, b, __c) __extension__ ({ \
+ poly64x1_t __a = (a); poly64x1_t __b = (b); \
+ (poly64x1_t)__builtin_neon_vsli_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 6); })
+#define vsliq_n_p64(a, b, __c) __extension__ ({ \
+ poly64x2_t __a = (a); poly64x2_t __b = (b); \
+ (poly64x2_t)__builtin_neon_vsliq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 38); })
+
+__ai int8x16_t vqmovun_high_s16(int8x8_t __a, int16x8_t __b) {
+ int8x8_t __a1 = vqmovun_s16(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai int16x8_t vqmovun_high_s32(int16x4_t __a, int32x4_t __b) {
+ int16x4_t __a1 = vqmovun_s32(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai int32x4_t vqmovun_high_s64(int32x2_t __a, int64x2_t __b) {
+ int32x2_t __a1 = vqmovun_s64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+
+#define vsri_n_p64(a, b, __c) __extension__ ({ \
+ poly64x1_t __a = (a); poly64x1_t __b = (b); \
+ (poly64x1_t)__builtin_neon_vsri_n_v((int8x8_t)__a, (int8x8_t)__b, __c, 6); })
+#define vsriq_n_p64(a, b, __c) __extension__ ({ \
+ poly64x2_t __a = (a); poly64x2_t __b = (b); \
+ (poly64x2_t)__builtin_neon_vsriq_n_v((int8x16_t)__a, (int8x16_t)__b, __c, 38); })
+
+#define vst1q_f64(__a, b) __extension__ ({ \
+ float64x2_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 41); })
+#define vst1_f64(__a, b) __extension__ ({ \
+ float64x1_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 9); })
+#define vst1_p64(__a, b) __extension__ ({ \
+ poly64x1_t __b = (b); \
+ __builtin_neon_vst1_v(__a, (int8x8_t)__b, 6); })
+#define vst1q_p64(__a, b) __extension__ ({ \
+ poly64x2_t __b = (b); \
+ __builtin_neon_vst1q_v(__a, (int8x16_t)__b, 38); })
+
+#define vst1q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 41); })
+#define vst1q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2_t __b = (b); \
+ __builtin_neon_vst1q_lane_v(__a, (int8x16_t)__b, __c, 38); })
+#define vst1_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 9); })
+#define vst1_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1_t __b = (b); \
+ __builtin_neon_vst1_lane_v(__a, (int8x8_t)__b, __c, 6); })
+
+#define vst1q_u8_x2(__a, b) __extension__ ({ \
+ uint8x16x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 48); })
+#define vst1q_u16_x2(__a, b) __extension__ ({ \
+ uint16x8x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 49); })
+#define vst1q_u32_x2(__a, b) __extension__ ({ \
+ uint32x4x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 50); })
+#define vst1q_u64_x2(__a, b) __extension__ ({ \
+ uint64x2x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 51); })
+#define vst1q_s8_x2(__a, b) __extension__ ({ \
+ int8x16x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, __b.val[0], __b.val[1], 32); })
+#define vst1q_s16_x2(__a, b) __extension__ ({ \
+ int16x8x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 33); })
+#define vst1q_s32_x2(__a, b) __extension__ ({ \
+ int32x4x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 34); })
+#define vst1q_s64_x2(__a, b) __extension__ ({ \
+ int64x2x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 35); })
+#define vst1q_f16_x2(__a, b) __extension__ ({ \
+ float16x8x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 39); })
+#define vst1q_f32_x2(__a, b) __extension__ ({ \
+ float32x4x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 40); })
+#define vst1q_f64_x2(__a, b) __extension__ ({ \
+ float64x2x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 41); })
+#define vst1q_p8_x2(__a, b) __extension__ ({ \
+ poly8x16x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 36); })
+#define vst1q_p16_x2(__a, b) __extension__ ({ \
+ poly16x8x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 37); })
+#define vst1q_p64_x2(__a, b) __extension__ ({ \
+ poly64x2x2_t __b = (b); \
+ __builtin_neon_vst1q_x2_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 38); })
+#define vst1_u8_x2(__a, b) __extension__ ({ \
+ uint8x8x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 16); })
+#define vst1_u16_x2(__a, b) __extension__ ({ \
+ uint16x4x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 17); })
+#define vst1_u32_x2(__a, b) __extension__ ({ \
+ uint32x2x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 18); })
+#define vst1_u64_x2(__a, b) __extension__ ({ \
+ uint64x1x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 19); })
+#define vst1_s8_x2(__a, b) __extension__ ({ \
+ int8x8x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, __b.val[0], __b.val[1], 0); })
+#define vst1_s16_x2(__a, b) __extension__ ({ \
+ int16x4x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 1); })
+#define vst1_s32_x2(__a, b) __extension__ ({ \
+ int32x2x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 2); })
+#define vst1_s64_x2(__a, b) __extension__ ({ \
+ int64x1x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 3); })
+#define vst1_f16_x2(__a, b) __extension__ ({ \
+ float16x4x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 7); })
+#define vst1_f32_x2(__a, b) __extension__ ({ \
+ float32x2x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 8); })
+#define vst1_f64_x2(__a, b) __extension__ ({ \
+ float64x1x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 9); })
+#define vst1_p8_x2(__a, b) __extension__ ({ \
+ poly8x8x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 4); })
+#define vst1_p16_x2(__a, b) __extension__ ({ \
+ poly16x4x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 5); })
+#define vst1_p64_x2(__a, b) __extension__ ({ \
+ poly64x1x2_t __b = (b); \
+ __builtin_neon_vst1_x2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 6); })
+
+#define vst1q_u8_x3(__a, b) __extension__ ({ \
+ uint8x16x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 48); })
+#define vst1q_u16_x3(__a, b) __extension__ ({ \
+ uint16x8x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 49); })
+#define vst1q_u32_x3(__a, b) __extension__ ({ \
+ uint32x4x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 50); })
+#define vst1q_u64_x3(__a, b) __extension__ ({ \
+ uint64x2x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 51); })
+#define vst1q_s8_x3(__a, b) __extension__ ({ \
+ int8x16x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, __b.val[0], __b.val[1], __b.val[2], 32); })
+#define vst1q_s16_x3(__a, b) __extension__ ({ \
+ int16x8x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 33); })
+#define vst1q_s32_x3(__a, b) __extension__ ({ \
+ int32x4x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 34); })
+#define vst1q_s64_x3(__a, b) __extension__ ({ \
+ int64x2x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 35); })
+#define vst1q_f16_x3(__a, b) __extension__ ({ \
+ float16x8x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 39); })
+#define vst1q_f32_x3(__a, b) __extension__ ({ \
+ float32x4x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 40); })
+#define vst1q_f64_x3(__a, b) __extension__ ({ \
+ float64x2x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 41); })
+#define vst1q_p8_x3(__a, b) __extension__ ({ \
+ poly8x16x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 36); })
+#define vst1q_p16_x3(__a, b) __extension__ ({ \
+ poly16x8x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 37); })
+#define vst1q_p64_x3(__a, b) __extension__ ({ \
+ poly64x2x3_t __b = (b); \
+ __builtin_neon_vst1q_x3_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 38); })
+#define vst1_u8_x3(__a, b) __extension__ ({ \
+ uint8x8x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 16); })
+#define vst1_u16_x3(__a, b) __extension__ ({ \
+ uint16x4x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 17); })
+#define vst1_u32_x3(__a, b) __extension__ ({ \
+ uint32x2x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 18); })
+#define vst1_u64_x3(__a, b) __extension__ ({ \
+ uint64x1x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 19); })
+#define vst1_s8_x3(__a, b) __extension__ ({ \
+ int8x8x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, __b.val[0], __b.val[1], __b.val[2], 0); })
+#define vst1_s16_x3(__a, b) __extension__ ({ \
+ int16x4x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 1); })
+#define vst1_s32_x3(__a, b) __extension__ ({ \
+ int32x2x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 2); })
+#define vst1_s64_x3(__a, b) __extension__ ({ \
+ int64x1x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 3); })
+#define vst1_f16_x3(__a, b) __extension__ ({ \
+ float16x4x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 7); })
+#define vst1_f32_x3(__a, b) __extension__ ({ \
+ float32x2x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 8); })
+#define vst1_f64_x3(__a, b) __extension__ ({ \
+ float64x1x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 9); })
+#define vst1_p8_x3(__a, b) __extension__ ({ \
+ poly8x8x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 4); })
+#define vst1_p16_x3(__a, b) __extension__ ({ \
+ poly16x4x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 5); })
+#define vst1_p64_x3(__a, b) __extension__ ({ \
+ poly64x1x3_t __b = (b); \
+ __builtin_neon_vst1_x3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 6); })
+
+#define vst1q_u8_x4(__a, b) __extension__ ({ \
+ uint8x16x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 48); })
+#define vst1q_u16_x4(__a, b) __extension__ ({ \
+ uint16x8x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 49); })
+#define vst1q_u32_x4(__a, b) __extension__ ({ \
+ uint32x4x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 50); })
+#define vst1q_u64_x4(__a, b) __extension__ ({ \
+ uint64x2x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 51); })
+#define vst1q_s8_x4(__a, b) __extension__ ({ \
+ int8x16x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], 32); })
+#define vst1q_s16_x4(__a, b) __extension__ ({ \
+ int16x8x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 33); })
+#define vst1q_s32_x4(__a, b) __extension__ ({ \
+ int32x4x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 34); })
+#define vst1q_s64_x4(__a, b) __extension__ ({ \
+ int64x2x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 35); })
+#define vst1q_f16_x4(__a, b) __extension__ ({ \
+ float16x8x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 39); })
+#define vst1q_f32_x4(__a, b) __extension__ ({ \
+ float32x4x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 40); })
+#define vst1q_f64_x4(__a, b) __extension__ ({ \
+ float64x2x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 41); })
+#define vst1q_p8_x4(__a, b) __extension__ ({ \
+ poly8x16x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 36); })
+#define vst1q_p16_x4(__a, b) __extension__ ({ \
+ poly16x8x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 37); })
+#define vst1q_p64_x4(__a, b) __extension__ ({ \
+ poly64x2x4_t __b = (b); \
+ __builtin_neon_vst1q_x4_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 38); })
+#define vst1_u8_x4(__a, b) __extension__ ({ \
+ uint8x8x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 16); })
+#define vst1_u16_x4(__a, b) __extension__ ({ \
+ uint16x4x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 17); })
+#define vst1_u32_x4(__a, b) __extension__ ({ \
+ uint32x2x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 18); })
+#define vst1_u64_x4(__a, b) __extension__ ({ \
+ uint64x1x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 19); })
+#define vst1_s8_x4(__a, b) __extension__ ({ \
+ int8x8x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], 0); })
+#define vst1_s16_x4(__a, b) __extension__ ({ \
+ int16x4x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 1); })
+#define vst1_s32_x4(__a, b) __extension__ ({ \
+ int32x2x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 2); })
+#define vst1_s64_x4(__a, b) __extension__ ({ \
+ int64x1x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 3); })
+#define vst1_f16_x4(__a, b) __extension__ ({ \
+ float16x4x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 7); })
+#define vst1_f32_x4(__a, b) __extension__ ({ \
+ float32x2x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 8); })
+#define vst1_f64_x4(__a, b) __extension__ ({ \
+ float64x1x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 9); })
+#define vst1_p8_x4(__a, b) __extension__ ({ \
+ poly8x8x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 4); })
+#define vst1_p16_x4(__a, b) __extension__ ({ \
+ poly16x4x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 5); })
+#define vst1_p64_x4(__a, b) __extension__ ({ \
+ poly64x1x4_t __b = (b); \
+ __builtin_neon_vst1_x4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 6); })
+
+#define vst2q_u64(__a, b) __extension__ ({ \
+ uint64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 51); })
+#define vst2q_s64(__a, b) __extension__ ({ \
+ int64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 35); })
+#define vst2q_f64(__a, b) __extension__ ({ \
+ float64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 41); })
+#define vst2_f64(__a, b) __extension__ ({ \
+ float64x1x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 9); })
+#define vst2_p64(__a, b) __extension__ ({ \
+ poly64x1x2_t __b = (b); \
+ __builtin_neon_vst2_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], 6); })
+#define vst2q_p64(__a, b) __extension__ ({ \
+ poly64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], 38); })
+
+#define vst2q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 48); })
+#define vst2q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 51); })
+#define vst2q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, __b.val[0], __b.val[1], __c, 32); })
+#define vst2q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 35); })
+#define vst2q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 41); })
+#define vst2q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 36); })
+#define vst2q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2x2_t __b = (b); \
+ __builtin_neon_vst2q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], __c, 38); })
+#define vst2_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 19); })
+#define vst2_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 3); })
+#define vst2_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 9); })
+#define vst2_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1x2_t __b = (b); \
+ __builtin_neon_vst2_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], __c, 6); })
+
+#define vst3q_u64(__a, b) __extension__ ({ \
+ uint64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 51); })
+#define vst3q_s64(__a, b) __extension__ ({ \
+ int64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 35); })
+#define vst3q_f64(__a, b) __extension__ ({ \
+ float64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 41); })
+#define vst3_f64(__a, b) __extension__ ({ \
+ float64x1x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 9); })
+#define vst3_p64(__a, b) __extension__ ({ \
+ poly64x1x3_t __b = (b); \
+ __builtin_neon_vst3_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], 6); })
+#define vst3q_p64(__a, b) __extension__ ({ \
+ poly64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], 38); })
+
+#define vst3q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 48); })
+#define vst3q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 51); })
+#define vst3q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, __b.val[0], __b.val[1], __b.val[2], __c, 32); })
+#define vst3q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 35); })
+#define vst3q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 41); })
+#define vst3q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 36); })
+#define vst3q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2x3_t __b = (b); \
+ __builtin_neon_vst3q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], __c, 38); })
+#define vst3_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 19); })
+#define vst3_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 3); })
+#define vst3_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 9); })
+#define vst3_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1x3_t __b = (b); \
+ __builtin_neon_vst3_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], __c, 6); })
+
+#define vst4q_u64(__a, b) __extension__ ({ \
+ uint64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 51); })
+#define vst4q_s64(__a, b) __extension__ ({ \
+ int64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 35); })
+#define vst4q_f64(__a, b) __extension__ ({ \
+ float64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 41); })
+#define vst4_f64(__a, b) __extension__ ({ \
+ float64x1x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 9); })
+#define vst4_p64(__a, b) __extension__ ({ \
+ poly64x1x4_t __b = (b); \
+ __builtin_neon_vst4_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], 6); })
+#define vst4q_p64(__a, b) __extension__ ({ \
+ poly64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], 38); })
+
+#define vst4q_lane_u8(__a, b, __c) __extension__ ({ \
+ uint8x16x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 48); })
+#define vst4q_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 51); })
+#define vst4q_lane_s8(__a, b, __c) __extension__ ({ \
+ int8x16x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 32); })
+#define vst4q_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 35); })
+#define vst4q_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 41); })
+#define vst4q_lane_p8(__a, b, __c) __extension__ ({ \
+ poly8x16x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 36); })
+#define vst4q_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x2x4_t __b = (b); \
+ __builtin_neon_vst4q_lane_v(__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], __c, 38); })
+#define vst4_lane_u64(__a, b, __c) __extension__ ({ \
+ uint64x1x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 19); })
+#define vst4_lane_s64(__a, b, __c) __extension__ ({ \
+ int64x1x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 3); })
+#define vst4_lane_f64(__a, b, __c) __extension__ ({ \
+ float64x1x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 9); })
+#define vst4_lane_p64(__a, b, __c) __extension__ ({ \
+ poly64x1x4_t __b = (b); \
+ __builtin_neon_vst4_lane_v(__a, (int8x8_t)__b.val[0], (int8x8_t)__b.val[1], (int8x8_t)__b.val[2], (int8x8_t)__b.val[3], __c, 6); })
+
+__ai float64x1_t vsub_f64(float64x1_t __a, float64x1_t __b) {
+ return __a - __b; }
+__ai float64x2_t vsubq_f64(float64x2_t __a, float64x2_t __b) {
+ return __a - __b; }
+
+__ai int8x8_t vuqadd_s8(int8x8_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vuqadd_v(__a, __b, 0); }
+__ai int16x4_t vuqadd_s16(int16x4_t __a, int16x4_t __b) {
+ return (int16x4_t)__builtin_neon_vuqadd_v((int8x8_t)__a, (int8x8_t)__b, 1); }
+__ai int32x2_t vuqadd_s32(int32x2_t __a, int32x2_t __b) {
+ return (int32x2_t)__builtin_neon_vuqadd_v((int8x8_t)__a, (int8x8_t)__b, 2); }
+__ai int64x1_t vuqadd_s64(int64x1_t __a, int64x1_t __b) {
+ return (int64x1_t)__builtin_neon_vuqadd_v((int8x8_t)__a, (int8x8_t)__b, 3); }
+__ai int8x16_t vuqaddq_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vuqaddq_v(__a, __b, 32); }
+__ai int16x8_t vuqaddq_s16(int16x8_t __a, int16x8_t __b) {
+ return (int16x8_t)__builtin_neon_vuqaddq_v((int8x16_t)__a, (int8x16_t)__b, 33); }
+__ai int32x4_t vuqaddq_s32(int32x4_t __a, int32x4_t __b) {
+ return (int32x4_t)__builtin_neon_vuqaddq_v((int8x16_t)__a, (int8x16_t)__b, 34); }
+__ai int64x2_t vuqaddq_s64(int64x2_t __a, int64x2_t __b) {
+ return (int64x2_t)__builtin_neon_vuqaddq_v((int8x16_t)__a, (int8x16_t)__b, 35); }
+
+__ai uint8x8_t vsqadd_u8(uint8x8_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vsqadd_v((int8x8_t)__a, (int8x8_t)__b, 16); }
+__ai uint16x4_t vsqadd_u16(uint16x4_t __a, uint16x4_t __b) {
+ return (uint16x4_t)__builtin_neon_vsqadd_v((int8x8_t)__a, (int8x8_t)__b, 17); }
+__ai uint32x2_t vsqadd_u32(uint32x2_t __a, uint32x2_t __b) {
+ return (uint32x2_t)__builtin_neon_vsqadd_v((int8x8_t)__a, (int8x8_t)__b, 18); }
+__ai uint64x1_t vsqadd_u64(uint64x1_t __a, uint64x1_t __b) {
+ return (uint64x1_t)__builtin_neon_vsqadd_v((int8x8_t)__a, (int8x8_t)__b, 19); }
+__ai uint8x16_t vsqaddq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vsqaddq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai uint16x8_t vsqaddq_u16(uint16x8_t __a, uint16x8_t __b) {
+ return (uint16x8_t)__builtin_neon_vsqaddq_v((int8x16_t)__a, (int8x16_t)__b, 49); }
+__ai uint32x4_t vsqaddq_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vsqaddq_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+__ai uint64x2_t vsqaddq_u64(uint64x2_t __a, uint64x2_t __b) {
+ return (uint64x2_t)__builtin_neon_vsqaddq_v((int8x16_t)__a, (int8x16_t)__b, 51); }
+
+__ai int16x8_t vabal_high_s8(int16x8_t __a, int8x16_t __b, int8x16_t __c) {
+ return vabal_s8(__a, vget_high_s8(__b), vget_high_s8(__c)); }
+__ai int32x4_t vabal_high_s16(int32x4_t __a, int16x8_t __b, int16x8_t __c) {
+ return vabal_s16(__a, vget_high_s16(__b), vget_high_s16(__c)); }
+__ai int64x2_t vabal_high_s32(int64x2_t __a, int32x4_t __b, int32x4_t __c) {
+ return vabal_s32(__a, vget_high_s32(__b), vget_high_s32(__c)); }
+__ai uint16x8_t vabal_high_u8(uint16x8_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return vabal_u8(__a, vget_high_u8(__b), vget_high_u8(__c)); }
+__ai uint32x4_t vabal_high_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vabal_u16(__a, vget_high_u16(__b), vget_high_u16(__c)); }
+__ai uint64x2_t vabal_high_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vabal_u32(__a, vget_high_u32(__b), vget_high_u32(__c)); }
+
+
+__ai int8x16_t vaddhn_high_s16(int8x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return vcombine_s8(__a, vaddhn_s16(__b, __c)); }
+__ai int16x8_t vaddhn_high_s32(int16x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return vcombine_s16(__a, vaddhn_s32(__b, __c)); }
+__ai int32x4_t vaddhn_high_s64(int32x2_t __a, int64x2_t __b, int64x2_t __c) {
+ return vcombine_s32(__a, vaddhn_s64(__b, __c)); }
+__ai uint8x16_t vaddhn_high_u16(uint8x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vcombine_u8(__a, vaddhn_u16(__b, __c)); }
+__ai uint16x8_t vaddhn_high_u32(uint16x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vcombine_u16(__a, vaddhn_u32(__b, __c)); }
+__ai uint32x4_t vaddhn_high_u64(uint32x2_t __a, uint64x2_t __b, uint64x2_t __c) {
+ return vcombine_u32(__a, vaddhn_u64(__b, __c)); }
+
+__ai int16_t vaddlv_s8(int8x8_t __a) {
+ return (int16_t)__builtin_neon_vaddlv_s8(__a); }
+__ai int32_t vaddlv_s16(int16x4_t __a) {
+ return (int32_t)__builtin_neon_vaddlv_s16(__a); }
+__ai int64_t vaddlv_s32(int32x2_t __a) {
+ return (int64_t)__builtin_neon_vaddlv_s32(__a); }
+__ai uint16_t vaddlv_u8(uint8x8_t __a) {
+ return (uint16_t)__builtin_neon_vaddlv_u8((int8x8_t)__a); }
+__ai uint32_t vaddlv_u16(uint16x4_t __a) {
+ return (uint32_t)__builtin_neon_vaddlv_u16((int16x4_t)__a); }
+__ai uint64_t vaddlv_u32(uint32x2_t __a) {
+ return (uint64_t)__builtin_neon_vaddlv_u32((int32x2_t)__a); }
+__ai int16_t vaddlvq_s8(int8x16_t __a) {
+ return (int16_t)__builtin_neon_vaddlvq_s8(__a); }
+__ai int32_t vaddlvq_s16(int16x8_t __a) {
+ return (int32_t)__builtin_neon_vaddlvq_s16(__a); }
+__ai int64_t vaddlvq_s32(int32x4_t __a) {
+ return (int64_t)__builtin_neon_vaddlvq_s32(__a); }
+__ai uint16_t vaddlvq_u8(uint8x16_t __a) {
+ return (uint16_t)__builtin_neon_vaddlvq_u8((int8x16_t)__a); }
+__ai uint32_t vaddlvq_u16(uint16x8_t __a) {
+ return (uint32_t)__builtin_neon_vaddlvq_u16((int16x8_t)__a); }
+__ai uint64_t vaddlvq_u32(uint32x4_t __a) {
+ return (uint64_t)__builtin_neon_vaddlvq_u32((int32x4_t)__a); }
+
+__ai int16x8_t vaddl_high_s8(int8x16_t __a, int8x16_t __b) {
+ return vmovl_high_s8(__a) + vmovl_high_s8(__b); }
+__ai int32x4_t vaddl_high_s16(int16x8_t __a, int16x8_t __b) {
+ return vmovl_high_s16(__a) + vmovl_high_s16(__b); }
+__ai int64x2_t vaddl_high_s32(int32x4_t __a, int32x4_t __b) {
+ return vmovl_high_s32(__a) + vmovl_high_s32(__b); }
+__ai uint16x8_t vaddl_high_u8(uint8x16_t __a, uint8x16_t __b) {
+ return vmovl_high_u8(__a) + vmovl_high_u8(__b); }
+__ai uint32x4_t vaddl_high_u16(uint16x8_t __a, uint16x8_t __b) {
+ return vmovl_high_u16(__a) + vmovl_high_u16(__b); }
+__ai uint64x2_t vaddl_high_u32(uint32x4_t __a, uint32x4_t __b) {
+ return vmovl_high_u32(__a) + vmovl_high_u32(__b); }
+
+__ai int8_t vaddv_s8(int8x8_t __a) {
+ return (int8_t)__builtin_neon_vaddv_s8(__a); }
+__ai int16_t vaddv_s16(int16x4_t __a) {
+ return (int16_t)__builtin_neon_vaddv_s16(__a); }
+__ai int32_t vaddv_s32(int32x2_t __a) {
+ return (int32_t)__builtin_neon_vaddv_s32(__a); }
+__ai float32_t vaddv_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vaddv_f32(__a); }
+__ai uint8_t vaddv_u8(uint8x8_t __a) {
+ return (uint8_t)__builtin_neon_vaddv_u8((int8x8_t)__a); }
+__ai uint16_t vaddv_u16(uint16x4_t __a) {
+ return (uint16_t)__builtin_neon_vaddv_u16((int16x4_t)__a); }
+__ai uint32_t vaddv_u32(uint32x2_t __a) {
+ return (uint32_t)__builtin_neon_vaddv_u32((int32x2_t)__a); }
+__ai int8_t vaddvq_s8(int8x16_t __a) {
+ return (int8_t)__builtin_neon_vaddvq_s8(__a); }
+__ai int16_t vaddvq_s16(int16x8_t __a) {
+ return (int16_t)__builtin_neon_vaddvq_s16(__a); }
+__ai int32_t vaddvq_s32(int32x4_t __a) {
+ return (int32_t)__builtin_neon_vaddvq_s32(__a); }
+__ai uint8_t vaddvq_u8(uint8x16_t __a) {
+ return (uint8_t)__builtin_neon_vaddvq_u8((int8x16_t)__a); }
+__ai uint16_t vaddvq_u16(uint16x8_t __a) {
+ return (uint16_t)__builtin_neon_vaddvq_u16((int16x8_t)__a); }
+__ai uint32_t vaddvq_u32(uint32x4_t __a) {
+ return (uint32_t)__builtin_neon_vaddvq_u32((int32x4_t)__a); }
+__ai float32_t vaddvq_f32(float32x4_t __a) {
+ return (float32_t)__builtin_neon_vaddvq_f32(__a); }
+__ai float64_t vaddvq_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vaddvq_f64(__a); }
+__ai int64_t vaddvq_s64(int64x2_t __a) {
+ return (int64_t)__builtin_neon_vaddvq_s64(__a); }
+__ai uint64_t vaddvq_u64(uint64x2_t __a) {
+ return (uint64_t)__builtin_neon_vaddvq_u64((int64x2_t)__a); }
+
+__ai int16x8_t vaddw_high_s8(int16x8_t __a, int8x16_t __b) {
+ return __a + vmovl_high_s8(__b); }
+__ai int32x4_t vaddw_high_s16(int32x4_t __a, int16x8_t __b) {
+ return __a + vmovl_high_s16(__b); }
+__ai int64x2_t vaddw_high_s32(int64x2_t __a, int32x4_t __b) {
+ return __a + vmovl_high_s32(__b); }
+__ai uint16x8_t vaddw_high_u8(uint16x8_t __a, uint8x16_t __b) {
+ return __a + vmovl_high_u8(__b); }
+__ai uint32x4_t vaddw_high_u16(uint32x4_t __a, uint16x8_t __b) {
+ return __a + vmovl_high_u16(__b); }
+__ai uint64x2_t vaddw_high_u32(uint64x2_t __a, uint32x4_t __b) {
+ return __a + vmovl_high_u32(__b); }
+
+__ai float32x2_t vcvtx_f32_f64(float64x2_t __a) {
+ return (float32x2_t)__builtin_neon_vcvtx_f32_v((int8x16_t)__a, 41); }
+
+__ai float32x4_t vcvtx_high_f32_f64(float32x2_t __a, float64x2_t __b) {
+ float32x2_t __a1 = vcvtx_f32_f64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+
+__ai float32x2_t vcvt_f32_f64(float64x2_t __a) {
+ return (float32x2_t)__builtin_neon_vcvt_f32_f64((int8x16_t)__a, 41); }
+
+__ai float64x1_t vcvt_f64_s64(int64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vcvt_f64_v((int8x8_t)__a, 3); }
+__ai float64x1_t vcvt_f64_u64(uint64x1_t __a) {
+ return (float64x1_t)__builtin_neon_vcvt_f64_v((int8x8_t)__a, 19); }
+__ai float64x2_t vcvtq_f64_s64(int64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vcvtq_f64_v((int8x16_t)__a, 35); }
+__ai float64x2_t vcvtq_f64_u64(uint64x2_t __a) {
+ return (float64x2_t)__builtin_neon_vcvtq_f64_v((int8x16_t)__a, 51); }
+
+__ai float64x2_t vcvt_f64_f32(float32x2_t __a) {
+ return (float64x2_t)__builtin_neon_vcvt_f64_f32((int8x8_t)__a, 41); }
+
+__ai float16x8_t vcvt_high_f16_f32(float16x4_t __a, float32x4_t __b) {
+ float16x4_t __a1 = vcvt_f16_f32(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7); }
+
+__ai float32x4_t vcvt_high_f32_f16(float16x8_t __a) {
+ float16x4_t __a1 = vget_high_f16(__a);
+ return vcvt_f32_f16(__a1); }
+
+__ai float32x4_t vcvt_high_f32_f64(float32x2_t __a, float64x2_t __b) {
+ float32x2_t __a1 = vcvt_f32_f64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+
+__ai float64x2_t vcvt_high_f64_f32(float32x4_t __a) {
+ float32x2_t __a1 = vget_high_f32(__a);
+ return vcvt_f64_f32(__a1); }
+
+__ai int64x1_t vcvt_s64_f64(float64x1_t __a) {
+ return (int64x1_t)__builtin_neon_vcvt_s64_v((int8x8_t)__a, 3); }
+__ai int64x2_t vcvtq_s64_f64(float64x2_t __a) {
+ return (int64x2_t)__builtin_neon_vcvtq_s64_v((int8x16_t)__a, 35); }
+
+__ai uint64x1_t vcvt_u64_f64(float64x1_t __a) {
+ return (uint64x1_t)__builtin_neon_vcvt_u64_v((int8x8_t)__a, 19); }
+__ai uint64x2_t vcvtq_u64_f64(float64x2_t __a) {
+ return (uint64x2_t)__builtin_neon_vcvtq_u64_v((int8x16_t)__a, 51); }
+
+#define vdup_lane_f16(a, __b) __extension__ ({ \
+ float16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_lane_f64(a, __b) __extension__ ({ \
+ float64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdupq_lane_f16(a, __b) __extension__ ({ \
+ float16x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_lane_f64(a, __b) __extension__ ({ \
+ float64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_lane_p64(a, __b) __extension__ ({ \
+ poly64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdupq_lane_p64(a, __b) __extension__ ({ \
+ poly64x1_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+
+#define vdup_laneq_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdup_laneq_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_laneq_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_laneq_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdup_laneq_p8(a, __b) __extension__ ({ \
+ poly8x16_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdup_laneq_p16(a, __b) __extension__ ({ \
+ poly16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_laneq_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdup_laneq_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_laneq_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_laneq_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdup_laneq_f16(a, __b) __extension__ ({ \
+ float16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdup_laneq_f32(a, __b) __extension__ ({ \
+ float32x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_laneq_f64(a, __b) __extension__ ({ \
+ float64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdupq_laneq_s8(a, __b) __extension__ ({ \
+ int8x16_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_s16(a, __b) __extension__ ({ \
+ int16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_s32(a, __b) __extension__ ({ \
+ int32x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdupq_laneq_s64(a, __b) __extension__ ({ \
+ int64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdupq_laneq_p8(a, __b) __extension__ ({ \
+ poly8x16_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_p16(a, __b) __extension__ ({ \
+ poly16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_u8(a, __b) __extension__ ({ \
+ uint8x16_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_u16(a, __b) __extension__ ({ \
+ uint16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_u32(a, __b) __extension__ ({ \
+ uint32x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdupq_laneq_u64(a, __b) __extension__ ({ \
+ uint64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdupq_laneq_f16(a, __b) __extension__ ({ \
+ float16x8_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b, __b, __b, __b, __b); })
+#define vdupq_laneq_f32(a, __b) __extension__ ({ \
+ float32x4_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b, __b, __b); })
+#define vdupq_laneq_f64(a, __b) __extension__ ({ \
+ float64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+#define vdup_laneq_p64(a, __b) __extension__ ({ \
+ poly64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b); })
+#define vdupq_laneq_p64(a, __b) __extension__ ({ \
+ poly64x2_t __a = (a); \
+ __builtin_shufflevector(__a, __a, __b, __b); })
+
+#define vext_f64(a, b, __c) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); \
+ (float64x1_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 9); })
+#define vextq_f64(a, b, __c) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); \
+ (float64x2_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 41); })
+#define vext_p64(a, b, __c) __extension__ ({ \
+ poly64x1_t __a = (a); poly64x1_t __b = (b); \
+ (poly64x1_t)__builtin_neon_vext_v((int8x8_t)__a, (int8x8_t)__b, __c, 6); })
+#define vextq_p64(a, b, __c) __extension__ ({ \
+ poly64x2_t __a = (a); poly64x2_t __b = (b); \
+ (poly64x2_t)__builtin_neon_vextq_v((int8x16_t)__a, (int8x16_t)__b, __c, 38); })
+
+#define vfma_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x2_t __c = (c); \
+ (float32x2_t)__builtin_neon_vfma_lane_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, __d, 8); })
+#define vfma_lane_f64(a, b, c, __d) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); float64x1_t __c = (c); \
+ (float64x1_t)__builtin_neon_vfma_lane_v((int8x8_t)__a, (int8x8_t)__b, (int8x8_t)__c, __d, 9); })
+#define vfmaq_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x2_t __c = (c); \
+ (float32x4_t)__builtin_neon_vfmaq_lane_v((int8x16_t)__a, (int8x16_t)__b, (int8x8_t)__c, __d, 40); })
+#define vfmaq_lane_f64(a, b, c, __d) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); float64x1_t __c = (c); \
+ (float64x2_t)__builtin_neon_vfmaq_lane_v((int8x16_t)__a, (int8x16_t)__b, (int8x8_t)__c, __d, 41); })
+
+#define vfma_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x4_t __c = (c); \
+ (float32x2_t)__builtin_neon_vfma_laneq_v((int8x8_t)__a, (int8x8_t)__b, (int8x16_t)__c, __d, 8); })
+#define vfma_laneq_f64(a, b, c, __d) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); float64x2_t __c = (c); \
+ (float64x1_t)__builtin_neon_vfma_laneq_v((int8x8_t)__a, (int8x8_t)__b, (int8x16_t)__c, __d, 9); })
+#define vfmaq_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x4_t __c = (c); \
+ (float32x4_t)__builtin_neon_vfmaq_laneq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, __d, 40); })
+#define vfmaq_laneq_f64(a, b, c, __d) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); float64x2_t __c = (c); \
+ (float64x2_t)__builtin_neon_vfmaq_laneq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, __d, 41); })
+
+#define vfms_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x2_t __c = (c); \
+ float32x2_t __a1 = __a; \
+ float32x2_t __b1 = __b; \
+ float32x2_t __c1 = __c; \
+ vfma_lane_f32(__a1, __b1, -__c1, __d); })
+#define vfms_lane_f64(a, b, c, __d) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); float64x1_t __c = (c); \
+ float64x1_t __a1 = __a; \
+ float64x1_t __b1 = __b; \
+ float64x1_t __c1 = __c; \
+ vfma_lane_f64(__a1, __b1, -__c1, __d); })
+#define vfmsq_lane_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x2_t __c = (c); \
+ float32x4_t __a1 = __a; \
+ float32x4_t __b1 = __b; \
+ float32x2_t __c1 = __c; \
+ vfmaq_lane_f32(__a1, __b1, -__c1, __d); })
+#define vfmsq_lane_f64(a, b, c, __d) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); float64x1_t __c = (c); \
+ float64x2_t __a1 = __a; \
+ float64x2_t __b1 = __b; \
+ float64x1_t __c1 = __c; \
+ vfmaq_lane_f64(__a1, __b1, -__c1, __d); })
+
+#define vfms_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x4_t __c = (c); \
+ float32x2_t __a1 = __a; \
+ float32x2_t __b1 = __b; \
+ float32x4_t __c1 = __c; \
+ vfma_laneq_f32(__a1, __b1, -__c1, __d); })
+#define vfms_laneq_f64(a, b, c, __d) __extension__ ({ \
+ float64x1_t __a = (a); float64x1_t __b = (b); float64x2_t __c = (c); \
+ float64x1_t __a1 = __a; \
+ float64x1_t __b1 = __b; \
+ float64x2_t __c1 = __c; \
+ vfma_laneq_f64(__a1, __b1, -__c1, __d); })
+#define vfmsq_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x4_t __c = (c); \
+ float32x4_t __a1 = __a; \
+ float32x4_t __b1 = __b; \
+ float32x4_t __c1 = __c; \
+ vfmaq_laneq_f32(__a1, __b1, -__c1, __d); })
+#define vfmsq_laneq_f64(a, b, c, __d) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); float64x2_t __c = (c); \
+ float64x2_t __a1 = __a; \
+ float64x2_t __b1 = __b; \
+ float64x2_t __c1 = __c; \
+ vfmaq_laneq_f64(__a1, __b1, -__c1, __d); })
+
+__ai float64x1_t vget_high_f64(float64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1); }
+__ai poly64x1_t vget_high_p64(poly64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 1); }
+
+__ai float64x1_t vget_low_f64(float64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 0); }
+__ai poly64x1_t vget_low_p64(poly64x2_t __a) {
+ return __builtin_shufflevector(__a, __a, 0); }
+
+__ai int8_t vmaxv_s8(int8x8_t __a) {
+ return (int8_t)__builtin_neon_vmaxv_s8(__a); }
+__ai int16_t vmaxv_s16(int16x4_t __a) {
+ return (int16_t)__builtin_neon_vmaxv_s16(__a); }
+__ai int32_t vmaxv_s32(int32x2_t __a) {
+ return (int32_t)__builtin_neon_vmaxv_s32(__a); }
+__ai float32_t vmaxv_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vmaxv_f32(__a); }
+__ai uint8_t vmaxv_u8(uint8x8_t __a) {
+ return (uint8_t)__builtin_neon_vmaxv_u8((int8x8_t)__a); }
+__ai uint16_t vmaxv_u16(uint16x4_t __a) {
+ return (uint16_t)__builtin_neon_vmaxv_u16((int16x4_t)__a); }
+__ai uint32_t vmaxv_u32(uint32x2_t __a) {
+ return (uint32_t)__builtin_neon_vmaxv_u32((int32x2_t)__a); }
+__ai int8_t vmaxvq_s8(int8x16_t __a) {
+ return (int8_t)__builtin_neon_vmaxvq_s8(__a); }
+__ai int16_t vmaxvq_s16(int16x8_t __a) {
+ return (int16_t)__builtin_neon_vmaxvq_s16(__a); }
+__ai int32_t vmaxvq_s32(int32x4_t __a) {
+ return (int32_t)__builtin_neon_vmaxvq_s32(__a); }
+__ai uint8_t vmaxvq_u8(uint8x16_t __a) {
+ return (uint8_t)__builtin_neon_vmaxvq_u8((int8x16_t)__a); }
+__ai uint16_t vmaxvq_u16(uint16x8_t __a) {
+ return (uint16_t)__builtin_neon_vmaxvq_u16((int16x8_t)__a); }
+__ai uint32_t vmaxvq_u32(uint32x4_t __a) {
+ return (uint32_t)__builtin_neon_vmaxvq_u32((int32x4_t)__a); }
+__ai float32_t vmaxvq_f32(float32x4_t __a) {
+ return (float32_t)__builtin_neon_vmaxvq_f32(__a); }
+__ai float64_t vmaxvq_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vmaxvq_f64(__a); }
+
+__ai int8_t vminv_s8(int8x8_t __a) {
+ return (int8_t)__builtin_neon_vminv_s8(__a); }
+__ai int16_t vminv_s16(int16x4_t __a) {
+ return (int16_t)__builtin_neon_vminv_s16(__a); }
+__ai int32_t vminv_s32(int32x2_t __a) {
+ return (int32_t)__builtin_neon_vminv_s32(__a); }
+__ai float32_t vminv_f32(float32x2_t __a) {
+ return (float32_t)__builtin_neon_vminv_f32(__a); }
+__ai uint8_t vminv_u8(uint8x8_t __a) {
+ return (uint8_t)__builtin_neon_vminv_u8((int8x8_t)__a); }
+__ai uint16_t vminv_u16(uint16x4_t __a) {
+ return (uint16_t)__builtin_neon_vminv_u16((int16x4_t)__a); }
+__ai uint32_t vminv_u32(uint32x2_t __a) {
+ return (uint32_t)__builtin_neon_vminv_u32((int32x2_t)__a); }
+__ai int8_t vminvq_s8(int8x16_t __a) {
+ return (int8_t)__builtin_neon_vminvq_s8(__a); }
+__ai int16_t vminvq_s16(int16x8_t __a) {
+ return (int16_t)__builtin_neon_vminvq_s16(__a); }
+__ai int32_t vminvq_s32(int32x4_t __a) {
+ return (int32_t)__builtin_neon_vminvq_s32(__a); }
+__ai uint8_t vminvq_u8(uint8x16_t __a) {
+ return (uint8_t)__builtin_neon_vminvq_u8((int8x16_t)__a); }
+__ai uint16_t vminvq_u16(uint16x8_t __a) {
+ return (uint16_t)__builtin_neon_vminvq_u16((int16x8_t)__a); }
+__ai uint32_t vminvq_u32(uint32x4_t __a) {
+ return (uint32_t)__builtin_neon_vminvq_u32((int32x4_t)__a); }
+__ai float32_t vminvq_f32(float32x4_t __a) {
+ return (float32_t)__builtin_neon_vminvq_f32(__a); }
+__ai float64_t vminvq_f64(float64x2_t __a) {
+ return (float64_t)__builtin_neon_vminvq_f64(__a); }
+
+__ai int16x8_t vmlal_high_s8(int16x8_t __a, int8x16_t __b, int8x16_t __c) {
+ return vmlal_s8(__a, vget_high_s8(__b), vget_high_s8(__c)); }
+__ai int32x4_t vmlal_high_s16(int32x4_t __a, int16x8_t __b, int16x8_t __c) {
+ return vmlal_s16(__a, vget_high_s16(__b), vget_high_s16(__c)); }
+__ai int64x2_t vmlal_high_s32(int64x2_t __a, int32x4_t __b, int32x4_t __c) {
+ return vmlal_s32(__a, vget_high_s32(__b), vget_high_s32(__c)); }
+__ai uint16x8_t vmlal_high_u8(uint16x8_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return vmlal_u8(__a, vget_high_u8(__b), vget_high_u8(__c)); }
+__ai uint32x4_t vmlal_high_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vmlal_u16(__a, vget_high_u16(__b), vget_high_u16(__c)); }
+__ai uint64x2_t vmlal_high_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vmlal_u32(__a, vget_high_u32(__b), vget_high_u32(__c)); }
+
+#define vmlal_high_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x4_t __c = (c); \
+ __a + vmull_s16(vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_high_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x2_t __c = (c); \
+ __a + vmull_s32(vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlal_high_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x8_t __b = (b); uint16x4_t __c = (c); \
+ __a + vmull_u16(vget_high_u16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_high_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x4_t __b = (b); uint32x2_t __c = (c); \
+ __a + vmull_u32(vget_high_u32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vmlal_high_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x8_t __c = (c); \
+ __a + vmull_s16(vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_high_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x4_t __c = (c); \
+ __a + vmull_s32(vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlal_high_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x8_t __b = (b); uint16x8_t __c = (c); \
+ __a + vmull_u16(vget_high_u16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_high_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x4_t __b = (b); uint32x4_t __c = (c); \
+ __a + vmull_u32(vget_high_u32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vmlal_high_n_s16(int32x4_t __a, int16x8_t __b, int16_t __c) {
+ return vmlal_n_s16(__a, vget_high_s16(__b), __c); }
+__ai int64x2_t vmlal_high_n_s32(int64x2_t __a, int32x4_t __b, int32_t __c) {
+ return vmlal_n_s32(__a, vget_high_s32(__b), __c); }
+__ai uint32x4_t vmlal_high_n_u16(uint32x4_t __a, uint16x8_t __b, uint16_t __c) {
+ return vmlal_n_u16(__a, vget_high_u16(__b), __c); }
+__ai uint64x2_t vmlal_high_n_u32(uint64x2_t __a, uint32x4_t __b, uint32_t __c) {
+ return vmlal_n_u32(__a, vget_high_u32(__b), __c); }
+
+#define vmlal_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x8_t __c = (c); \
+ __a + vmull_s16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x4_t __c = (c); \
+ __a + vmull_s32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlal_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x4_t __b = (b); uint16x8_t __c = (c); \
+ __a + vmull_u16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlal_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x2_t __b = (b); uint32x4_t __c = (c); \
+ __a + vmull_u32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vmla_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); int16x8_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmla_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); int32x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmla_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); uint16x8_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmla_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); uint32x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmla_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlaq_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); int16x8_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlaq_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); int32x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlaq_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); uint16x8_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlaq_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); uint32x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlaq_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x4_t __c = (c); \
+ __a + (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+
+__ai int16x8_t vmlsl_high_s8(int16x8_t __a, int8x16_t __b, int8x16_t __c) {
+ return vmlsl_s8(__a, vget_high_s8(__b), vget_high_s8(__c)); }
+__ai int32x4_t vmlsl_high_s16(int32x4_t __a, int16x8_t __b, int16x8_t __c) {
+ return vmlsl_s16(__a, vget_high_s16(__b), vget_high_s16(__c)); }
+__ai int64x2_t vmlsl_high_s32(int64x2_t __a, int32x4_t __b, int32x4_t __c) {
+ return vmlsl_s32(__a, vget_high_s32(__b), vget_high_s32(__c)); }
+__ai uint16x8_t vmlsl_high_u8(uint16x8_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return vmlsl_u8(__a, vget_high_u8(__b), vget_high_u8(__c)); }
+__ai uint32x4_t vmlsl_high_u16(uint32x4_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vmlsl_u16(__a, vget_high_u16(__b), vget_high_u16(__c)); }
+__ai uint64x2_t vmlsl_high_u32(uint64x2_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vmlsl_u32(__a, vget_high_u32(__b), vget_high_u32(__c)); }
+
+#define vmlsl_high_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x4_t __c = (c); \
+ __a - vmull_s16(vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_high_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x2_t __c = (c); \
+ __a - vmull_s32(vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlsl_high_lane_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x8_t __b = (b); uint16x4_t __c = (c); \
+ __a - vmull_u16(vget_high_u16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_high_lane_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x4_t __b = (b); uint32x2_t __c = (c); \
+ __a - vmull_u32(vget_high_u32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vmlsl_high_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x8_t __c = (c); \
+ __a - vmull_s16(vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_high_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x4_t __c = (c); \
+ __a - vmull_s32(vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlsl_high_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x8_t __b = (b); uint16x8_t __c = (c); \
+ __a - vmull_u16(vget_high_u16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_high_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x4_t __b = (b); uint32x4_t __c = (c); \
+ __a - vmull_u32(vget_high_u32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vmlsl_high_n_s16(int32x4_t __a, int16x8_t __b, int16_t __c) {
+ return vmlsl_n_s16(__a, vget_high_s16(__b), __c); }
+__ai int64x2_t vmlsl_high_n_s32(int64x2_t __a, int32x4_t __b, int32_t __c) {
+ return vmlsl_n_s32(__a, vget_high_s32(__b), __c); }
+__ai uint32x4_t vmlsl_high_n_u16(uint32x4_t __a, uint16x8_t __b, uint16_t __c) {
+ return vmlsl_n_u16(__a, vget_high_u16(__b), __c); }
+__ai uint64x2_t vmlsl_high_n_u32(uint64x2_t __a, uint32x4_t __b, uint32_t __c) {
+ return vmlsl_n_u32(__a, vget_high_u32(__b), __c); }
+
+#define vmlsl_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x8_t __c = (c); \
+ __a - vmull_s16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x4_t __c = (c); \
+ __a - vmull_s32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlsl_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint16x4_t __b = (b); uint16x8_t __c = (c); \
+ __a - vmull_u16(__b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsl_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint64x2_t __a = (a); uint32x2_t __b = (b); uint32x4_t __c = (c); \
+ __a - vmull_u32(__b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vmls_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int16x4_t __a = (a); int16x4_t __b = (b); int16x8_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmls_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int32x2_t __a = (a); int32x2_t __b = (b); int32x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmls_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x4_t __b = (b); uint16x8_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmls_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x2_t __b = (b); uint32x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmls_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); float32x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d)); })
+#define vmlsq_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); int16x8_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlsq_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); int32x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsq_laneq_u16(a, b, c, __d) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); uint16x8_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d, __d, __d, __d, __d)); })
+#define vmlsq_laneq_u32(a, b, c, __d) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); uint32x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vmlsq_laneq_f32(a, b, c, __d) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); float32x4_t __c = (c); \
+ __a - (__b * __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+
+
+
+#define vmull_high_lane_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x4_t __b = (b); \
+ vmull_s16(vget_high_s16(__a), __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_high_lane_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x2_t __b = (b); \
+ vmull_s32(vget_high_s32(__a), __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vmull_high_lane_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x4_t __b = (b); \
+ vmull_u16(vget_high_u16(__a), __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_high_lane_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x2_t __b = (b); \
+ vmull_u32(vget_high_u32(__a), __builtin_shufflevector(__b, __b, __c, __c)); })
+
+#define vmull_high_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ vmull_s16(vget_high_s16(__a), __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_high_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ vmull_s32(vget_high_s32(__a), __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vmull_high_laneq_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ vmull_u16(vget_high_u16(__a), __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_high_laneq_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ vmull_u32(vget_high_u32(__a), __builtin_shufflevector(__b, __b, __c, __c)); })
+
+__ai int32x4_t vmull_high_n_s16(int16x8_t __a, int16_t __b) {
+ return vmull_n_s16(vget_high_s16(__a), __b); }
+__ai int64x2_t vmull_high_n_s32(int32x4_t __a, int32_t __b) {
+ return vmull_n_s32(vget_high_s32(__a), __b); }
+__ai uint32x4_t vmull_high_n_u16(uint16x8_t __a, uint16_t __b) {
+ return vmull_n_u16(vget_high_u16(__a), __b); }
+__ai uint64x2_t vmull_high_n_u32(uint32x4_t __a, uint32_t __b) {
+ return vmull_n_u32(vget_high_u32(__a), __b); }
+
+#define vmull_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x8_t __b = (b); \
+ vmull_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x4_t __b = (b); \
+ vmull_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vmull_laneq_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x8_t __b = (b); \
+ vmull_u16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmull_laneq_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x4_t __b = (b); \
+ vmull_u32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+
+#define vmulx_lane_f32(a, b, __c) __extension__ ({ \
+ float32x2_t __a = (a); float32x2_t __b = (b); \
+ vmulx_f32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vmulxq_lane_f32(a, b, __c) __extension__ ({ \
+ float32x4_t __a = (a); float32x2_t __b = (b); \
+ vmulxq_f32(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmulxq_lane_f64(a, b, __c) __extension__ ({ \
+ float64x2_t __a = (a); float64x1_t __b = (b); \
+ vmulxq_f64(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+
+#define vmulx_laneq_f32(a, b, __c) __extension__ ({ \
+ float32x2_t __a = (a); float32x4_t __b = (b); \
+ vmulx_f32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vmulxq_laneq_f32(a, b, __c) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); \
+ vmulxq_f32(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vmulxq_laneq_f64(a, b, __c) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); \
+ vmulxq_f64(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+
+#define vmul_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x8_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmul_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+#define vmul_laneq_f32(a, b, __c) __extension__ ({ \
+ float32x2_t __a = (a); float32x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+#define vmul_laneq_u16(a, b, __c) __extension__ ({ \
+ uint16x4_t __a = (a); uint16x8_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmul_laneq_u32(a, b, __c) __extension__ ({ \
+ uint32x2_t __a = (a); uint32x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+#define vmulq_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c); })
+#define vmulq_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmulq_laneq_f32(a, b, __c) __extension__ ({ \
+ float32x4_t __a = (a); float32x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmulq_laneq_u16(a, b, __c) __extension__ ({ \
+ uint16x8_t __a = (a); uint16x8_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c); })
+#define vmulq_laneq_u32(a, b, __c) __extension__ ({ \
+ uint32x4_t __a = (a); uint32x4_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c, __c, __c); })
+#define vmulq_laneq_f64(a, b, __c) __extension__ ({ \
+ float64x2_t __a = (a); float64x2_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+
+#define vmulq_lane_f64(a, b, __c) __extension__ ({ \
+ float64x2_t __a = (a); float64x1_t __b = (b); \
+ __a * __builtin_shufflevector(__b, __b, __c, __c); })
+
+__ai float64x2_t vmulq_n_f64(float64x2_t __a, float64_t __b) {
+ return __a * (float64x2_t){ __b, __b }; }
+
+__ai int32x4_t vqdmlal_high_s16(int32x4_t __a, int16x8_t __b, int16x8_t __c) {
+ return vqdmlal_s16(__a, vget_high_s16(__b), vget_high_s16(__c)); }
+__ai int64x2_t vqdmlal_high_s32(int64x2_t __a, int32x4_t __b, int32x4_t __c) {
+ return vqdmlal_s32(__a, vget_high_s32(__b), vget_high_s32(__c)); }
+
+#define vqdmlal_high_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x4_t __c = (c); \
+ vqdmlal_s16(__a, vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlal_high_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x2_t __c = (c); \
+ vqdmlal_s32(__a, vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vqdmlal_high_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x8_t __c = (c); \
+ vqdmlal_s16(__a, vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlal_high_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x4_t __c = (c); \
+ vqdmlal_s32(__a, vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vqdmlal_high_n_s16(int32x4_t __a, int16x8_t __b, int16_t __c) {
+ return vqdmlal_n_s16(__a, vget_high_s16(__b), __c); }
+__ai int64x2_t vqdmlal_high_n_s32(int64x2_t __a, int32x4_t __b, int32_t __c) {
+ return vqdmlal_n_s32(__a, vget_high_s32(__b), __c); }
+
+#define vqdmlal_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x8_t __c = (c); \
+ vqdmlal_s16(__a, __b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlal_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x4_t __c = (c); \
+ vqdmlal_s32(__a, __b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vqdmlsl_high_s16(int32x4_t __a, int16x8_t __b, int16x8_t __c) {
+ return vqdmlsl_s16(__a, vget_high_s16(__b), vget_high_s16(__c)); }
+__ai int64x2_t vqdmlsl_high_s32(int64x2_t __a, int32x4_t __b, int32x4_t __c) {
+ return vqdmlsl_s32(__a, vget_high_s32(__b), vget_high_s32(__c)); }
+
+#define vqdmlsl_high_lane_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x4_t __c = (c); \
+ vqdmlsl_s16(__a, vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlsl_high_lane_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x2_t __c = (c); \
+ vqdmlsl_s32(__a, vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vqdmlsl_high_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x8_t __b = (b); int16x8_t __c = (c); \
+ vqdmlsl_s16(__a, vget_high_s16(__b), __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlsl_high_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x4_t __b = (b); int32x4_t __c = (c); \
+ vqdmlsl_s32(__a, vget_high_s32(__b), __builtin_shufflevector(__c, __c, __d, __d)); })
+
+__ai int32x4_t vqdmlsl_high_n_s16(int32x4_t __a, int16x8_t __b, int16_t __c) {
+ return vqdmlsl_n_s16(__a, vget_high_s16(__b), __c); }
+__ai int64x2_t vqdmlsl_high_n_s32(int64x2_t __a, int32x4_t __b, int32_t __c) {
+ return vqdmlsl_n_s32(__a, vget_high_s32(__b), __c); }
+
+#define vqdmlsl_laneq_s16(a, b, c, __d) __extension__ ({ \
+ int32x4_t __a = (a); int16x4_t __b = (b); int16x8_t __c = (c); \
+ vqdmlsl_s16(__a, __b, __builtin_shufflevector(__c, __c, __d, __d, __d, __d)); })
+#define vqdmlsl_laneq_s32(a, b, c, __d) __extension__ ({ \
+ int64x2_t __a = (a); int32x2_t __b = (b); int32x4_t __c = (c); \
+ vqdmlsl_s32(__a, __b, __builtin_shufflevector(__c, __c, __d, __d)); })
+
+#define vqdmulh_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x8_t __b = (b); \
+ vqdmulh_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqdmulh_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x4_t __b = (b); \
+ vqdmulh_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vqdmulhq_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ vqdmulhq_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c)); })
+#define vqdmulhq_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ vqdmulhq_s32(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+
+__ai int32x4_t vqdmull_high_s16(int16x8_t __a, int16x8_t __b) {
+ return vqdmull_s16(vget_high_s16(__a), vget_high_s16(__b)); }
+__ai int64x2_t vqdmull_high_s32(int32x4_t __a, int32x4_t __b) {
+ return vqdmull_s32(vget_high_s32(__a), vget_high_s32(__b)); }
+
+#define vqdmull_high_lane_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x4_t __b = (b); \
+ vqdmull_s16(vget_high_s16(__a), __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqdmull_high_lane_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x2_t __b = (b); \
+ vqdmull_s32(vget_high_s32(__a), __builtin_shufflevector(__b, __b, __c, __c)); })
+
+#define vqdmull_high_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ vqdmull_s16(vget_high_s16(__a), __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqdmull_high_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ vqdmull_s32(vget_high_s32(__a), __builtin_shufflevector(__b, __b, __c, __c)); })
+
+__ai int32x4_t vqdmull_high_n_s16(int16x8_t __a, int16_t __b) {
+ return vqdmull_n_s16(vget_high_s16(__a), __b); }
+__ai int64x2_t vqdmull_high_n_s32(int32x4_t __a, int32_t __b) {
+ return vqdmull_n_s32(vget_high_s32(__a), __b); }
+
+#define vqdmull_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x8_t __b = (b); \
+ vqdmull_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqdmull_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x4_t __b = (b); \
+ vqdmull_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+
+#define vqrdmulh_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x4_t __a = (a); int16x8_t __b = (b); \
+ vqrdmulh_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+#define vqrdmulh_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x2_t __a = (a); int32x4_t __b = (b); \
+ vqrdmulh_s32(__a, __builtin_shufflevector(__b, __b, __c, __c)); })
+#define vqrdmulhq_laneq_s16(a, b, __c) __extension__ ({ \
+ int16x8_t __a = (a); int16x8_t __b = (b); \
+ vqrdmulhq_s16(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c, __c, __c, __c, __c)); })
+#define vqrdmulhq_laneq_s32(a, b, __c) __extension__ ({ \
+ int32x4_t __a = (a); int32x4_t __b = (b); \
+ vqrdmulhq_s32(__a, __builtin_shufflevector(__b, __b, __c, __c, __c, __c)); })
+
+__ai uint8x8_t vqtbl1_u8(uint8x16_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqtbl1_v((int8x16_t)__a, (int8x8_t)__b, 16); }
+__ai int8x8_t vqtbl1_s8(int8x16_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqtbl1_v(__a, __b, 0); }
+__ai poly8x8_t vqtbl1_p8(poly8x16_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vqtbl1_v((int8x16_t)__a, (int8x8_t)__b, 4); }
+__ai uint8x16_t vqtbl1q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqtbl1q_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+__ai int8x16_t vqtbl1q_s8(int8x16_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqtbl1q_v(__a, __b, 32); }
+__ai poly8x16_t vqtbl1q_p8(poly8x16_t __a, uint8x16_t __b) {
+ return (poly8x16_t)__builtin_neon_vqtbl1q_v((int8x16_t)__a, (int8x16_t)__b, 36); }
+
+__ai uint8x8_t vqtbl2_u8(uint8x16x2_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqtbl2_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x8_t)__b, 16); }
+__ai int8x8_t vqtbl2_s8(int8x16x2_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqtbl2_v(__a.val[0], __a.val[1], __b, 0); }
+__ai poly8x8_t vqtbl2_p8(poly8x16x2_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vqtbl2_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x8_t)__b, 4); }
+__ai uint8x16_t vqtbl2q_u8(uint8x16x2_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqtbl2q_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__b, 48); }
+__ai int8x16_t vqtbl2q_s8(int8x16x2_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqtbl2q_v(__a.val[0], __a.val[1], __b, 32); }
+__ai poly8x16_t vqtbl2q_p8(poly8x16x2_t __a, uint8x16_t __b) {
+ return (poly8x16_t)__builtin_neon_vqtbl2q_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__b, 36); }
+
+__ai uint8x8_t vqtbl3_u8(uint8x16x3_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqtbl3_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x8_t)__b, 16); }
+__ai int8x8_t vqtbl3_s8(int8x16x3_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqtbl3_v(__a.val[0], __a.val[1], __a.val[2], __b, 0); }
+__ai poly8x8_t vqtbl3_p8(poly8x16x3_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vqtbl3_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x8_t)__b, 4); }
+__ai uint8x16_t vqtbl3q_u8(uint8x16x3_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqtbl3q_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x16_t)__b, 48); }
+__ai int8x16_t vqtbl3q_s8(int8x16x3_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqtbl3q_v(__a.val[0], __a.val[1], __a.val[2], __b, 32); }
+__ai poly8x16_t vqtbl3q_p8(poly8x16x3_t __a, uint8x16_t __b) {
+ return (poly8x16_t)__builtin_neon_vqtbl3q_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x16_t)__b, 36); }
+
+__ai uint8x8_t vqtbl4_u8(uint8x16x4_t __a, uint8x8_t __b) {
+ return (uint8x8_t)__builtin_neon_vqtbl4_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x16_t)__a.val[3], (int8x8_t)__b, 16); }
+__ai int8x8_t vqtbl4_s8(int8x16x4_t __a, int8x8_t __b) {
+ return (int8x8_t)__builtin_neon_vqtbl4_v(__a.val[0], __a.val[1], __a.val[2], __a.val[3], __b, 0); }
+__ai poly8x8_t vqtbl4_p8(poly8x16x4_t __a, uint8x8_t __b) {
+ return (poly8x8_t)__builtin_neon_vqtbl4_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x16_t)__a.val[3], (int8x8_t)__b, 4); }
+__ai uint8x16_t vqtbl4q_u8(uint8x16x4_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vqtbl4q_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x16_t)__a.val[3], (int8x16_t)__b, 48); }
+__ai int8x16_t vqtbl4q_s8(int8x16x4_t __a, int8x16_t __b) {
+ return (int8x16_t)__builtin_neon_vqtbl4q_v(__a.val[0], __a.val[1], __a.val[2], __a.val[3], __b, 32); }
+__ai poly8x16_t vqtbl4q_p8(poly8x16x4_t __a, uint8x16_t __b) {
+ return (poly8x16_t)__builtin_neon_vqtbl4q_v((int8x16_t)__a.val[0], (int8x16_t)__a.val[1], (int8x16_t)__a.val[2], (int8x16_t)__a.val[3], (int8x16_t)__b, 36); }
+
+__ai uint8x8_t vqtbx1_u8(uint8x8_t __a, uint8x16_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vqtbx1_v((int8x8_t)__a, (int8x16_t)__b, (int8x8_t)__c, 16); }
+__ai int8x8_t vqtbx1_s8(int8x8_t __a, int8x16_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vqtbx1_v(__a, __b, __c, 0); }
+__ai poly8x8_t vqtbx1_p8(poly8x8_t __a, poly8x16_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vqtbx1_v((int8x8_t)__a, (int8x16_t)__b, (int8x8_t)__c, 4); }
+__ai uint8x16_t vqtbx1q_u8(uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) {
+ return (uint8x16_t)__builtin_neon_vqtbx1q_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 48); }
+__ai int8x16_t vqtbx1q_s8(int8x16_t __a, int8x16_t __b, int8x16_t __c) {
+ return (int8x16_t)__builtin_neon_vqtbx1q_v(__a, __b, __c, 32); }
+__ai poly8x16_t vqtbx1q_p8(poly8x16_t __a, poly8x16_t __b, uint8x16_t __c) {
+ return (poly8x16_t)__builtin_neon_vqtbx1q_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 36); }
+
+__ai uint8x8_t vqtbx2_u8(uint8x8_t __a, uint8x16x2_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vqtbx2_v((int8x8_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x8_t)__c, 16); }
+__ai int8x8_t vqtbx2_s8(int8x8_t __a, int8x16x2_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vqtbx2_v(__a, __b.val[0], __b.val[1], __c, 0); }
+__ai poly8x8_t vqtbx2_p8(poly8x8_t __a, poly8x16x2_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vqtbx2_v((int8x8_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x8_t)__c, 4); }
+__ai uint8x16_t vqtbx2q_u8(uint8x16_t __a, uint8x16x2_t __b, uint8x16_t __c) {
+ return (uint8x16_t)__builtin_neon_vqtbx2q_v((int8x16_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__c, 48); }
+__ai int8x16_t vqtbx2q_s8(int8x16_t __a, int8x16x2_t __b, int8x16_t __c) {
+ return (int8x16_t)__builtin_neon_vqtbx2q_v(__a, __b.val[0], __b.val[1], __c, 32); }
+__ai poly8x16_t vqtbx2q_p8(poly8x16_t __a, poly8x16x2_t __b, uint8x16_t __c) {
+ return (poly8x16_t)__builtin_neon_vqtbx2q_v((int8x16_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__c, 36); }
+
+__ai uint8x8_t vqtbx3_u8(uint8x8_t __a, uint8x16x3_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vqtbx3_v((int8x8_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x8_t)__c, 16); }
+__ai int8x8_t vqtbx3_s8(int8x8_t __a, int8x16x3_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vqtbx3_v(__a, __b.val[0], __b.val[1], __b.val[2], __c, 0); }
+__ai poly8x8_t vqtbx3_p8(poly8x8_t __a, poly8x16x3_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vqtbx3_v((int8x8_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x8_t)__c, 4); }
+__ai uint8x16_t vqtbx3q_u8(uint8x16_t __a, uint8x16x3_t __b, uint8x16_t __c) {
+ return (uint8x16_t)__builtin_neon_vqtbx3q_v((int8x16_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__c, 48); }
+__ai int8x16_t vqtbx3q_s8(int8x16_t __a, int8x16x3_t __b, int8x16_t __c) {
+ return (int8x16_t)__builtin_neon_vqtbx3q_v(__a, __b.val[0], __b.val[1], __b.val[2], __c, 32); }
+__ai poly8x16_t vqtbx3q_p8(poly8x16_t __a, poly8x16x3_t __b, uint8x16_t __c) {
+ return (poly8x16_t)__builtin_neon_vqtbx3q_v((int8x16_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__c, 36); }
+
+__ai uint8x8_t vqtbx4_u8(uint8x8_t __a, uint8x16x4_t __b, uint8x8_t __c) {
+ return (uint8x8_t)__builtin_neon_vqtbx4_v((int8x8_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], (int8x8_t)__c, 16); }
+__ai int8x8_t vqtbx4_s8(int8x8_t __a, int8x16x4_t __b, int8x8_t __c) {
+ return (int8x8_t)__builtin_neon_vqtbx4_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 0); }
+__ai poly8x8_t vqtbx4_p8(poly8x8_t __a, poly8x16x4_t __b, uint8x8_t __c) {
+ return (poly8x8_t)__builtin_neon_vqtbx4_v((int8x8_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], (int8x8_t)__c, 4); }
+__ai uint8x16_t vqtbx4q_u8(uint8x16_t __a, uint8x16x4_t __b, uint8x16_t __c) {
+ return (uint8x16_t)__builtin_neon_vqtbx4q_v((int8x16_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], (int8x16_t)__c, 48); }
+__ai int8x16_t vqtbx4q_s8(int8x16_t __a, int8x16x4_t __b, int8x16_t __c) {
+ return (int8x16_t)__builtin_neon_vqtbx4q_v(__a, __b.val[0], __b.val[1], __b.val[2], __b.val[3], __c, 32); }
+__ai poly8x16_t vqtbx4q_p8(poly8x16_t __a, poly8x16x4_t __b, uint8x16_t __c) {
+ return (poly8x16_t)__builtin_neon_vqtbx4q_v((int8x16_t)__a, (int8x16_t)__b.val[0], (int8x16_t)__b.val[1], (int8x16_t)__b.val[2], (int8x16_t)__b.val[3], (int8x16_t)__c, 36); }
+
+__ai int8x16_t vraddhn_high_s16(int8x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return vcombine_s8(__a, vraddhn_s16(__b, __c)); }
+__ai int16x8_t vraddhn_high_s32(int16x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return vcombine_s16(__a, vraddhn_s32(__b, __c)); }
+__ai int32x4_t vraddhn_high_s64(int32x2_t __a, int64x2_t __b, int64x2_t __c) {
+ return vcombine_s32(__a, vraddhn_s64(__b, __c)); }
+__ai uint8x16_t vraddhn_high_u16(uint8x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vcombine_u8(__a, vraddhn_u16(__b, __c)); }
+__ai uint16x8_t vraddhn_high_u32(uint16x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vcombine_u16(__a, vraddhn_u32(__b, __c)); }
+__ai uint32x4_t vraddhn_high_u64(uint32x2_t __a, uint64x2_t __b, uint64x2_t __c) {
+ return vcombine_u32(__a, vraddhn_u64(__b, __c)); }
+
+__ai int8x16_t vrsubhn_high_s16(int8x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return vcombine_s8(__a, vrsubhn_s16(__b, __c)); }
+__ai int16x8_t vrsubhn_high_s32(int16x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return vcombine_s16(__a, vrsubhn_s32(__b, __c)); }
+__ai int32x4_t vrsubhn_high_s64(int32x2_t __a, int64x2_t __b, int64x2_t __c) {
+ return vcombine_s32(__a, vrsubhn_s64(__b, __c)); }
+__ai uint8x16_t vrsubhn_high_u16(uint8x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vcombine_u8(__a, vrsubhn_u16(__b, __c)); }
+__ai uint16x8_t vrsubhn_high_u32(uint16x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vcombine_u16(__a, vrsubhn_u32(__b, __c)); }
+__ai uint32x4_t vrsubhn_high_u64(uint32x2_t __a, uint64x2_t __b, uint64x2_t __c) {
+ return vcombine_u32(__a, vrsubhn_u64(__b, __c)); }
+
+__ai int8x16_t vsubhn_high_s16(int8x8_t __a, int16x8_t __b, int16x8_t __c) {
+ return vcombine_s8(__a, vsubhn_s16(__b, __c)); }
+__ai int16x8_t vsubhn_high_s32(int16x4_t __a, int32x4_t __b, int32x4_t __c) {
+ return vcombine_s16(__a, vsubhn_s32(__b, __c)); }
+__ai int32x4_t vsubhn_high_s64(int32x2_t __a, int64x2_t __b, int64x2_t __c) {
+ return vcombine_s32(__a, vsubhn_s64(__b, __c)); }
+__ai uint8x16_t vsubhn_high_u16(uint8x8_t __a, uint16x8_t __b, uint16x8_t __c) {
+ return vcombine_u8(__a, vsubhn_u16(__b, __c)); }
+__ai uint16x8_t vsubhn_high_u32(uint16x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return vcombine_u16(__a, vsubhn_u32(__b, __c)); }
+__ai uint32x4_t vsubhn_high_u64(uint32x2_t __a, uint64x2_t __b, uint64x2_t __c) {
+ return vcombine_u32(__a, vsubhn_u64(__b, __c)); }
+
+__ai int16x8_t vsubl_high_s8(int8x16_t __a, int8x16_t __b) {
+ return vmovl_high_s8(__a) - vmovl_high_s8(__b); }
+__ai int32x4_t vsubl_high_s16(int16x8_t __a, int16x8_t __b) {
+ return vmovl_high_s16(__a) - vmovl_high_s16(__b); }
+__ai int64x2_t vsubl_high_s32(int32x4_t __a, int32x4_t __b) {
+ return vmovl_high_s32(__a) - vmovl_high_s32(__b); }
+__ai uint16x8_t vsubl_high_u8(uint8x16_t __a, uint8x16_t __b) {
+ return vmovl_high_u8(__a) - vmovl_high_u8(__b); }
+__ai uint32x4_t vsubl_high_u16(uint16x8_t __a, uint16x8_t __b) {
+ return vmovl_high_u16(__a) - vmovl_high_u16(__b); }
+__ai uint64x2_t vsubl_high_u32(uint32x4_t __a, uint32x4_t __b) {
+ return vmovl_high_u32(__a) - vmovl_high_u32(__b); }
+
+__ai int16x8_t vsubw_high_s8(int16x8_t __a, int8x16_t __b) {
+ return __a - vmovl_high_s8(__b); }
+__ai int32x4_t vsubw_high_s16(int32x4_t __a, int16x8_t __b) {
+ return __a - vmovl_high_s16(__b); }
+__ai int64x2_t vsubw_high_s32(int64x2_t __a, int32x4_t __b) {
+ return __a - vmovl_high_s32(__b); }
+__ai uint16x8_t vsubw_high_u8(uint16x8_t __a, uint8x16_t __b) {
+ return __a - vmovl_high_u8(__b); }
+__ai uint32x4_t vsubw_high_u16(uint32x4_t __a, uint16x8_t __b) {
+ return __a - vmovl_high_u16(__b); }
+__ai uint64x2_t vsubw_high_u32(uint64x2_t __a, uint32x4_t __b) {
+ return __a - vmovl_high_u32(__b); }
+
+__ai int8x8_t vtrn1_s8(int8x8_t __a, int8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 2, 10, 4, 12, 6, 14); }
+__ai int16x4_t vtrn1_s16(int16x4_t __a, int16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 2, 6); }
+__ai int32x2_t vtrn1_s32(int32x2_t __a, int32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai uint8x8_t vtrn1_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 2, 10, 4, 12, 6, 14); }
+__ai uint16x4_t vtrn1_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 2, 6); }
+__ai uint32x2_t vtrn1_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai float32x2_t vtrn1_f32(float32x2_t __a, float32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai poly8x8_t vtrn1_p8(poly8x8_t __a, poly8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 2, 10, 4, 12, 6, 14); }
+__ai poly16x4_t vtrn1_p16(poly16x4_t __a, poly16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 2, 6); }
+__ai int8x16_t vtrn1q_s8(int8x16_t __a, int8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); }
+__ai int16x8_t vtrn1q_s16(int16x8_t __a, int16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 2, 10, 4, 12, 6, 14); }
+__ai int32x4_t vtrn1q_s32(int32x4_t __a, int32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 2, 6); }
+__ai int64x2_t vtrn1q_s64(int64x2_t __a, int64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai uint8x16_t vtrn1q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); }
+__ai uint16x8_t vtrn1q_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 2, 10, 4, 12, 6, 14); }
+__ai uint32x4_t vtrn1q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 2, 6); }
+__ai uint64x2_t vtrn1q_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai float32x4_t vtrn1q_f32(float32x4_t __a, float32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 2, 6); }
+__ai float64x2_t vtrn1q_f64(float64x2_t __a, float64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai poly8x16_t vtrn1q_p8(poly8x16_t __a, poly8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30); }
+__ai poly16x8_t vtrn1q_p16(poly16x8_t __a, poly16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 2, 10, 4, 12, 6, 14); }
+__ai poly64x2_t vtrn1q_p64(poly64x2_t __a, poly64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+
+__ai int8x8_t vtrn2_s8(int8x8_t __a, int8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 9, 3, 11, 5, 13, 7, 15); }
+__ai int16x4_t vtrn2_s16(int16x4_t __a, int16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 5, 3, 7); }
+__ai int32x2_t vtrn2_s32(int32x2_t __a, int32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai uint8x8_t vtrn2_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 9, 3, 11, 5, 13, 7, 15); }
+__ai uint16x4_t vtrn2_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 5, 3, 7); }
+__ai uint32x2_t vtrn2_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai float32x2_t vtrn2_f32(float32x2_t __a, float32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai poly8x8_t vtrn2_p8(poly8x8_t __a, poly8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 9, 3, 11, 5, 13, 7, 15); }
+__ai poly16x4_t vtrn2_p16(poly16x4_t __a, poly16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 5, 3, 7); }
+__ai int8x16_t vtrn2q_s8(int8x16_t __a, int8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); }
+__ai int16x8_t vtrn2q_s16(int16x8_t __a, int16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 9, 3, 11, 5, 13, 7, 15); }
+__ai int32x4_t vtrn2q_s32(int32x4_t __a, int32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 5, 3, 7); }
+__ai int64x2_t vtrn2q_s64(int64x2_t __a, int64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai uint8x16_t vtrn2q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); }
+__ai uint16x8_t vtrn2q_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 9, 3, 11, 5, 13, 7, 15); }
+__ai uint32x4_t vtrn2q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 5, 3, 7); }
+__ai uint64x2_t vtrn2q_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai float32x4_t vtrn2q_f32(float32x4_t __a, float32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 5, 3, 7); }
+__ai float64x2_t vtrn2q_f64(float64x2_t __a, float64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai poly8x16_t vtrn2q_p8(poly8x16_t __a, poly8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31); }
+__ai poly16x8_t vtrn2q_p16(poly16x8_t __a, poly16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 9, 3, 11, 5, 13, 7, 15); }
+__ai poly64x2_t vtrn2q_p64(poly64x2_t __a, poly64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+
+__ai int8x8_t vuzp1_s8(int8x8_t __a, int8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14); }
+__ai int16x4_t vuzp1_s16(int16x4_t __a, int16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6); }
+__ai int32x2_t vuzp1_s32(int32x2_t __a, int32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai uint8x8_t vuzp1_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14); }
+__ai uint16x4_t vuzp1_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6); }
+__ai uint32x2_t vuzp1_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai float32x2_t vuzp1_f32(float32x2_t __a, float32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai poly8x8_t vuzp1_p8(poly8x8_t __a, poly8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14); }
+__ai poly16x4_t vuzp1_p16(poly16x4_t __a, poly16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6); }
+__ai int8x16_t vuzp1q_s8(int8x16_t __a, int8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); }
+__ai int16x8_t vuzp1q_s16(int16x8_t __a, int16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14); }
+__ai int32x4_t vuzp1q_s32(int32x4_t __a, int32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6); }
+__ai int64x2_t vuzp1q_s64(int64x2_t __a, int64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai uint8x16_t vuzp1q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); }
+__ai uint16x8_t vuzp1q_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14); }
+__ai uint32x4_t vuzp1q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6); }
+__ai uint64x2_t vuzp1q_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai float32x4_t vuzp1q_f32(float32x4_t __a, float32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6); }
+__ai float64x2_t vuzp1q_f64(float64x2_t __a, float64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai poly8x16_t vuzp1q_p8(poly8x16_t __a, poly8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30); }
+__ai poly16x8_t vuzp1q_p16(poly16x8_t __a, poly16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2, 4, 6, 8, 10, 12, 14); }
+__ai poly64x2_t vuzp1q_p64(poly64x2_t __a, poly64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+
+__ai int8x8_t vuzp2_s8(int8x8_t __a, int8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15); }
+__ai int16x4_t vuzp2_s16(int16x4_t __a, int16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7); }
+__ai int32x2_t vuzp2_s32(int32x2_t __a, int32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai uint8x8_t vuzp2_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15); }
+__ai uint16x4_t vuzp2_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7); }
+__ai uint32x2_t vuzp2_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai float32x2_t vuzp2_f32(float32x2_t __a, float32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai poly8x8_t vuzp2_p8(poly8x8_t __a, poly8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15); }
+__ai poly16x4_t vuzp2_p16(poly16x4_t __a, poly16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7); }
+__ai int8x16_t vuzp2q_s8(int8x16_t __a, int8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); }
+__ai int16x8_t vuzp2q_s16(int16x8_t __a, int16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15); }
+__ai int32x4_t vuzp2q_s32(int32x4_t __a, int32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7); }
+__ai int64x2_t vuzp2q_s64(int64x2_t __a, int64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai uint8x16_t vuzp2q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); }
+__ai uint16x8_t vuzp2q_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15); }
+__ai uint32x4_t vuzp2q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7); }
+__ai uint64x2_t vuzp2q_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai float32x4_t vuzp2q_f32(float32x4_t __a, float32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7); }
+__ai float64x2_t vuzp2q_f64(float64x2_t __a, float64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai poly8x16_t vuzp2q_p8(poly8x16_t __a, poly8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31); }
+__ai poly16x8_t vuzp2q_p16(poly16x8_t __a, poly16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3, 5, 7, 9, 11, 13, 15); }
+__ai poly64x2_t vuzp2q_p64(poly64x2_t __a, poly64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+
+__ai int8x8_t vzip1_s8(int8x8_t __a, int8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 1, 9, 2, 10, 3, 11); }
+__ai int16x4_t vzip1_s16(int16x4_t __a, int16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5); }
+__ai int32x2_t vzip1_s32(int32x2_t __a, int32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai uint8x8_t vzip1_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 1, 9, 2, 10, 3, 11); }
+__ai uint16x4_t vzip1_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5); }
+__ai uint32x2_t vzip1_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai float32x2_t vzip1_f32(float32x2_t __a, float32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai poly8x8_t vzip1_p8(poly8x8_t __a, poly8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 1, 9, 2, 10, 3, 11); }
+__ai poly16x4_t vzip1_p16(poly16x4_t __a, poly16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5); }
+__ai int8x16_t vzip1q_s8(int8x16_t __a, int8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); }
+__ai int16x8_t vzip1q_s16(int16x8_t __a, int16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 1, 9, 2, 10, 3, 11); }
+__ai int32x4_t vzip1q_s32(int32x4_t __a, int32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5); }
+__ai int64x2_t vzip1q_s64(int64x2_t __a, int64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai uint8x16_t vzip1q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); }
+__ai uint16x8_t vzip1q_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 1, 9, 2, 10, 3, 11); }
+__ai uint32x4_t vzip1q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5); }
+__ai uint64x2_t vzip1q_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai float32x4_t vzip1q_f32(float32x4_t __a, float32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5); }
+__ai float64x2_t vzip1q_f64(float64x2_t __a, float64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+__ai poly8x16_t vzip1q_p8(poly8x16_t __a, poly8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23); }
+__ai poly16x8_t vzip1q_p16(poly16x8_t __a, poly16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 8, 1, 9, 2, 10, 3, 11); }
+__ai poly64x2_t vzip1q_p64(poly64x2_t __a, poly64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 0, 2); }
+
+__ai int8x8_t vzip2_s8(int8x8_t __a, int8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 4, 12, 5, 13, 6, 14, 7, 15); }
+__ai int16x4_t vzip2_s16(int16x4_t __a, int16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7); }
+__ai int32x2_t vzip2_s32(int32x2_t __a, int32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai uint8x8_t vzip2_u8(uint8x8_t __a, uint8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 4, 12, 5, 13, 6, 14, 7, 15); }
+__ai uint16x4_t vzip2_u16(uint16x4_t __a, uint16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7); }
+__ai uint32x2_t vzip2_u32(uint32x2_t __a, uint32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai float32x2_t vzip2_f32(float32x2_t __a, float32x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai poly8x8_t vzip2_p8(poly8x8_t __a, poly8x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 4, 12, 5, 13, 6, 14, 7, 15); }
+__ai poly16x4_t vzip2_p16(poly16x4_t __a, poly16x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7); }
+__ai int8x16_t vzip2q_s8(int8x16_t __a, int8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); }
+__ai int16x8_t vzip2q_s16(int16x8_t __a, int16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 4, 12, 5, 13, 6, 14, 7, 15); }
+__ai int32x4_t vzip2q_s32(int32x4_t __a, int32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7); }
+__ai int64x2_t vzip2q_s64(int64x2_t __a, int64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai uint8x16_t vzip2q_u8(uint8x16_t __a, uint8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); }
+__ai uint16x8_t vzip2q_u16(uint16x8_t __a, uint16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 4, 12, 5, 13, 6, 14, 7, 15); }
+__ai uint32x4_t vzip2q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7); }
+__ai uint64x2_t vzip2q_u64(uint64x2_t __a, uint64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai float32x4_t vzip2q_f32(float32x4_t __a, float32x4_t __b) {
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7); }
+__ai float64x2_t vzip2q_f64(float64x2_t __a, float64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+__ai poly8x16_t vzip2q_p8(poly8x16_t __a, poly8x16_t __b) {
+ return __builtin_shufflevector(__a, __b, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31); }
+__ai poly16x8_t vzip2q_p16(poly16x8_t __a, poly16x8_t __b) {
+ return __builtin_shufflevector(__a, __b, 4, 12, 5, 13, 6, 14, 7, 15); }
+__ai poly64x2_t vzip2q_p64(poly64x2_t __a, poly64x2_t __b) {
+ return __builtin_shufflevector(__a, __b, 1, 3); }
+
+__ai int8x16_t vmovn_high_s16(int8x8_t __a, int16x8_t __b) {
+ int8x8_t __a1 = vmovn_s16(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai int16x8_t vmovn_high_s32(int16x4_t __a, int32x4_t __b) {
+ int16x4_t __a1 = vmovn_s32(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai int32x4_t vmovn_high_s64(int32x2_t __a, int64x2_t __b) {
+ int32x2_t __a1 = vmovn_s64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+__ai uint8x16_t vmovn_high_u16(uint8x8_t __a, uint16x8_t __b) {
+ uint8x8_t __a1 = vmovn_u16(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); }
+__ai uint16x8_t vmovn_high_u32(uint16x4_t __a, uint32x4_t __b) {
+ uint16x4_t __a1 = vmovn_u32(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3, 4, 5, 6, 7); }
+__ai uint32x4_t vmovn_high_u64(uint32x2_t __a, uint64x2_t __b) {
+ uint32x2_t __a1 = vmovn_u64(__b);
+ return __builtin_shufflevector(__a, __a1, 0, 1, 2, 3); }
+
+#ifdef __ARM_FEATURE_CRYPTO
+__ai uint8x16_t vaesdq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vaesdq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+
+__ai uint8x16_t vaeseq_u8(uint8x16_t __a, uint8x16_t __b) {
+ return (uint8x16_t)__builtin_neon_vaeseq_v((int8x16_t)__a, (int8x16_t)__b, 48); }
+
+__ai uint8x16_t vaesimcq_u8(uint8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vaesimcq_v((int8x16_t)__a, 48); }
+
+__ai uint8x16_t vaesmcq_u8(uint8x16_t __a) {
+ return (uint8x16_t)__builtin_neon_vaesmcq_v((int8x16_t)__a, 48); }
+
+__ai uint32x4_t vsha1cq_u32(uint32x4_t __a, uint32_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha1cq_u32((int32x4_t)__a, __b, (int32x4_t)__c); }
+
+__ai uint32_t vsha1h_u32(uint32_t __a) {
+ return (uint32_t)__builtin_neon_vsha1h_u32(__a); }
+
+__ai uint32x4_t vsha1mq_u32(uint32x4_t __a, uint32_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha1mq_u32((int32x4_t)__a, __b, (int32x4_t)__c); }
+
+__ai uint32x4_t vsha1pq_u32(uint32x4_t __a, uint32_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha1pq_u32((int32x4_t)__a, __b, (int32x4_t)__c); }
+
+__ai uint32x4_t vsha1su0q_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha1su0q_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 50); }
+
+__ai uint32x4_t vsha1su1q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vsha1su1q_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai uint32x4_t vsha256hq_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha256hq_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 50); }
+
+__ai uint32x4_t vsha256h2q_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha256h2q_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 50); }
+
+__ai uint32x4_t vsha256su0q_u32(uint32x4_t __a, uint32x4_t __b) {
+ return (uint32x4_t)__builtin_neon_vsha256su0q_v((int8x16_t)__a, (int8x16_t)__b, 50); }
+
+__ai uint32x4_t vsha256su1q_u32(uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) {
+ return (uint32x4_t)__builtin_neon_vsha256su1q_v((int8x16_t)__a, (int8x16_t)__b, (int8x16_t)__c, 50); }
+
+#endif
+
+#endif
+
+#undef __ai
+
+#endif /* __ARM_NEON_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/avx2intrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/avx2intrin.h
new file mode 100755
index 0000000..9574469
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/avx2intrin.h
@@ -0,0 +1,1206 @@
+/*===---- avx2intrin.h - AVX2 intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __AVX2INTRIN_H
+#define __AVX2INTRIN_H
+
+/* SSE4 Multiple Packed Sums of Absolute Difference. */
+#define _mm256_mpsadbw_epu8(X, Y, M) __builtin_ia32_mpsadbw256((X), (Y), (M))
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_abs_epi8(__m256i __a)
+{
+ return (__m256i)__builtin_ia32_pabsb256((__v32qi)__a);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_abs_epi16(__m256i __a)
+{
+ return (__m256i)__builtin_ia32_pabsw256((__v16hi)__a);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_abs_epi32(__m256i __a)
+{
+ return (__m256i)__builtin_ia32_pabsd256((__v8si)__a);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_packs_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_packsswb256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_packs_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_packssdw256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_packus_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_packuswb256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_packus_epi32(__m256i __V1, __m256i __V2)
+{
+ return (__m256i) __builtin_ia32_packusdw256((__v8si)__V1, (__v8si)__V2);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_add_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v32qi)__a + (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_add_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v16hi)__a + (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_add_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v8si)__a + (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_add_epi64(__m256i __a, __m256i __b)
+{
+ return __a + __b;
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_adds_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_paddsb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_adds_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_paddsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_adds_epu8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_paddusb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_adds_epu16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_paddusw256((__v16hi)__a, (__v16hi)__b);
+}
+
+#define _mm256_alignr_epi8(a, b, n) __extension__ ({ \
+ __m256i __a = (a); \
+ __m256i __b = (b); \
+ (__m256i)__builtin_ia32_palignr256((__v32qi)__a, (__v32qi)__b, (n)); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_and_si256(__m256i __a, __m256i __b)
+{
+ return __a & __b;
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_andnot_si256(__m256i __a, __m256i __b)
+{
+ return ~__a & __b;
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_avg_epu8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pavgb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_avg_epu16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pavgw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_blendv_epi8(__m256i __V1, __m256i __V2, __m256i __M)
+{
+ return (__m256i)__builtin_ia32_pblendvb256((__v32qi)__V1, (__v32qi)__V2,
+ (__v32qi)__M);
+}
+
+#define _mm256_blend_epi16(V1, V2, M) __extension__ ({ \
+ __m256i __V1 = (V1); \
+ __m256i __V2 = (V2); \
+ (__m256i)__builtin_ia32_pblendw256((__v16hi)__V1, (__v16hi)__V2, (M)); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpeq_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v32qi)__a == (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpeq_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v16hi)__a == (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpeq_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v8si)__a == (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpeq_epi64(__m256i __a, __m256i __b)
+{
+ return (__m256i)(__a == __b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpgt_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v32qi)__a > (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpgt_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v16hi)__a > (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpgt_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v8si)__a > (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmpgt_epi64(__m256i __a, __m256i __b)
+{
+ return (__m256i)(__a > __b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_hadd_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_phaddw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_hadd_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_phaddd256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_hadds_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_phaddsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_hsub_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_phsubw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_hsub_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_phsubd256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_hsubs_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_phsubsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_maddubs_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaddubsw256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_madd_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaddwd256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_max_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaxsb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_max_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaxsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_max_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaxsd256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_max_epu8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaxub256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_max_epu16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaxuw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_max_epu32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmaxud256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_min_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pminsb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_min_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pminsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_min_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pminsd256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_min_epu8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pminub256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_min_epu16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pminuw256 ((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_min_epu32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pminud256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm256_movemask_epi8(__m256i __a)
+{
+ return __builtin_ia32_pmovmskb256((__v32qi)__a);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi8_epi16(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovsxbw256((__v16qi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi8_epi32(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovsxbd256((__v16qi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi8_epi64(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovsxbq256((__v16qi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi16_epi32(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovsxwd256((__v8hi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi16_epi64(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovsxwq256((__v8hi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi32_epi64(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovsxdq256((__v4si)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepu8_epi16(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovzxbw256((__v16qi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepu8_epi32(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovzxbd256((__v16qi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepu8_epi64(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovzxbq256((__v16qi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepu16_epi32(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovzxwd256((__v8hi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepu16_epi64(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovzxwq256((__v8hi)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepu32_epi64(__m128i __V)
+{
+ return (__m256i)__builtin_ia32_pmovzxdq256((__v4si)__V);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mul_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmuldq256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mulhrs_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmulhrsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mulhi_epu16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmulhuw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mulhi_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pmulhw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mullo_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v16hi)__a * (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mullo_epi32 (__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v8si)__a * (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_mul_epu32(__m256i __a, __m256i __b)
+{
+ return __builtin_ia32_pmuludq256((__v8si)__a, (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_or_si256(__m256i __a, __m256i __b)
+{
+ return __a | __b;
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sad_epu8(__m256i __a, __m256i __b)
+{
+ return __builtin_ia32_psadbw256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_shuffle_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_pshufb256((__v32qi)__a, (__v32qi)__b);
+}
+
+#define _mm256_shuffle_epi32(a, imm) __extension__ ({ \
+ __m256i __a = (a); \
+ (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)_mm256_set1_epi32(0), \
+ (imm) & 0x3, ((imm) & 0xc) >> 2, \
+ ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6, \
+ 4 + (((imm) & 0x03) >> 0), \
+ 4 + (((imm) & 0x0c) >> 2), \
+ 4 + (((imm) & 0x30) >> 4), \
+ 4 + (((imm) & 0xc0) >> 6)); })
+
+#define _mm256_shufflehi_epi16(a, imm) __extension__ ({ \
+ __m256i __a = (a); \
+ (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)_mm256_set1_epi16(0), \
+ 0, 1, 2, 3, \
+ 4 + (((imm) & 0x03) >> 0), \
+ 4 + (((imm) & 0x0c) >> 2), \
+ 4 + (((imm) & 0x30) >> 4), \
+ 4 + (((imm) & 0xc0) >> 6), \
+ 8, 9, 10, 11, \
+ 12 + (((imm) & 0x03) >> 0), \
+ 12 + (((imm) & 0x0c) >> 2), \
+ 12 + (((imm) & 0x30) >> 4), \
+ 12 + (((imm) & 0xc0) >> 6)); })
+
+#define _mm256_shufflelo_epi16(a, imm) __extension__ ({ \
+ __m256i __a = (a); \
+ (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)_mm256_set1_epi16(0), \
+ (imm) & 0x3,((imm) & 0xc) >> 2, \
+ ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6, \
+ 4, 5, 6, 7, \
+ 8 + (((imm) & 0x03) >> 0), \
+ 8 + (((imm) & 0x0c) >> 2), \
+ 8 + (((imm) & 0x30) >> 4), \
+ 8 + (((imm) & 0xc0) >> 6), \
+ 12, 13, 14, 15); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sign_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psignb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sign_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psignw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sign_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psignd256((__v8si)__a, (__v8si)__b);
+}
+
+#define _mm256_slli_si256(a, count) __extension__ ({ \
+ __m256i __a = (a); \
+ (__m256i)__builtin_ia32_pslldqi256(__a, (count)*8); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_slli_epi16(__m256i __a, int __count)
+{
+ return (__m256i)__builtin_ia32_psllwi256((__v16hi)__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sll_epi16(__m256i __a, __m128i __count)
+{
+ return (__m256i)__builtin_ia32_psllw256((__v16hi)__a, (__v8hi)__count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_slli_epi32(__m256i __a, int __count)
+{
+ return (__m256i)__builtin_ia32_pslldi256((__v8si)__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sll_epi32(__m256i __a, __m128i __count)
+{
+ return (__m256i)__builtin_ia32_pslld256((__v8si)__a, (__v4si)__count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_slli_epi64(__m256i __a, int __count)
+{
+ return __builtin_ia32_psllqi256(__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sll_epi64(__m256i __a, __m128i __count)
+{
+ return __builtin_ia32_psllq256(__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srai_epi16(__m256i __a, int __count)
+{
+ return (__m256i)__builtin_ia32_psrawi256((__v16hi)__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sra_epi16(__m256i __a, __m128i __count)
+{
+ return (__m256i)__builtin_ia32_psraw256((__v16hi)__a, (__v8hi)__count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srai_epi32(__m256i __a, int __count)
+{
+ return (__m256i)__builtin_ia32_psradi256((__v8si)__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sra_epi32(__m256i __a, __m128i __count)
+{
+ return (__m256i)__builtin_ia32_psrad256((__v8si)__a, (__v4si)__count);
+}
+
+#define _mm256_srli_si256(a, count) __extension__ ({ \
+ __m256i __a = (a); \
+ (__m256i)__builtin_ia32_psrldqi256(__a, (count)*8); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srli_epi16(__m256i __a, int __count)
+{
+ return (__m256i)__builtin_ia32_psrlwi256((__v16hi)__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srl_epi16(__m256i __a, __m128i __count)
+{
+ return (__m256i)__builtin_ia32_psrlw256((__v16hi)__a, (__v8hi)__count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srli_epi32(__m256i __a, int __count)
+{
+ return (__m256i)__builtin_ia32_psrldi256((__v8si)__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srl_epi32(__m256i __a, __m128i __count)
+{
+ return (__m256i)__builtin_ia32_psrld256((__v8si)__a, (__v4si)__count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srli_epi64(__m256i __a, int __count)
+{
+ return __builtin_ia32_psrlqi256(__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srl_epi64(__m256i __a, __m128i __count)
+{
+ return __builtin_ia32_psrlq256(__a, __count);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sub_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v32qi)__a - (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sub_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v16hi)__a - (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sub_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)((__v8si)__a - (__v8si)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sub_epi64(__m256i __a, __m256i __b)
+{
+ return __a - __b;
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_subs_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psubsb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_subs_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psubsw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_subs_epu8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psubusb256((__v32qi)__a, (__v32qi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_subs_epu16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_psubusw256((__v16hi)__a, (__v16hi)__b);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpackhi_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector((__v32qi)__a, (__v32qi)__b, 8, 32+8, 9, 32+9, 10, 32+10, 11, 32+11, 12, 32+12, 13, 32+13, 14, 32+14, 15, 32+15, 24, 32+24, 25, 32+25, 26, 32+26, 27, 32+27, 28, 32+28, 29, 32+29, 30, 32+30, 31, 32+31);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpackhi_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)__b, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpackhi_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)__b, 2, 8+2, 3, 8+3, 6, 8+6, 7, 8+7);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpackhi_epi64(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector(__a, __b, 1, 4+1, 3, 4+3);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpacklo_epi8(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector((__v32qi)__a, (__v32qi)__b, 0, 32+0, 1, 32+1, 2, 32+2, 3, 32+3, 4, 32+4, 5, 32+5, 6, 32+6, 7, 32+7, 16, 32+16, 17, 32+17, 18, 32+18, 19, 32+19, 20, 32+20, 21, 32+21, 22, 32+22, 23, 32+23);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpacklo_epi16(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpacklo_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)__b, 0, 8+0, 1, 8+1, 4, 8+4, 5, 8+5);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_unpacklo_epi64(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_shufflevector(__a, __b, 0, 4+0, 2, 4+2);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_xor_si256(__m256i __a, __m256i __b)
+{
+ return __a ^ __b;
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_stream_load_si256(__m256i *__V)
+{
+ return (__m256i)__builtin_ia32_movntdqa256((__v4di *)__V);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_broadcastss_ps(__m128 __X)
+{
+ return (__m128)__builtin_ia32_vbroadcastss_ps((__v4sf)__X);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastss_ps(__m128 __X)
+{
+ return (__m256)__builtin_ia32_vbroadcastss_ps256((__v4sf)__X);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastsd_pd(__m128d __X)
+{
+ return (__m256d)__builtin_ia32_vbroadcastsd_pd256((__v2df)__X);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastsi128_si256(__m128i __X)
+{
+ return (__m256i)__builtin_ia32_vbroadcastsi256(__X);
+}
+
+#define _mm_blend_epi32(V1, V2, M) __extension__ ({ \
+ __m128i __V1 = (V1); \
+ __m128i __V2 = (V2); \
+ (__m128i)__builtin_ia32_pblendd128((__v4si)__V1, (__v4si)__V2, (M)); })
+
+#define _mm256_blend_epi32(V1, V2, M) __extension__ ({ \
+ __m256i __V1 = (V1); \
+ __m256i __V2 = (V2); \
+ (__m256i)__builtin_ia32_pblendd256((__v8si)__V1, (__v8si)__V2, (M)); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastb_epi8(__m128i __X)
+{
+ return (__m256i)__builtin_ia32_pbroadcastb256((__v16qi)__X);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastw_epi16(__m128i __X)
+{
+ return (__m256i)__builtin_ia32_pbroadcastw256((__v8hi)__X);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastd_epi32(__m128i __X)
+{
+ return (__m256i)__builtin_ia32_pbroadcastd256((__v4si)__X);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcastq_epi64(__m128i __X)
+{
+ return (__m256i)__builtin_ia32_pbroadcastq256(__X);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_broadcastb_epi8(__m128i __X)
+{
+ return (__m128i)__builtin_ia32_pbroadcastb128((__v16qi)__X);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_broadcastw_epi16(__m128i __X)
+{
+ return (__m128i)__builtin_ia32_pbroadcastw128((__v8hi)__X);
+}
+
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_broadcastd_epi32(__m128i __X)
+{
+ return (__m128i)__builtin_ia32_pbroadcastd128((__v4si)__X);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_broadcastq_epi64(__m128i __X)
+{
+ return (__m128i)__builtin_ia32_pbroadcastq128(__X);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_permutevar8x32_epi32(__m256i __a, __m256i __b)
+{
+ return (__m256i)__builtin_ia32_permvarsi256((__v8si)__a, (__v8si)__b);
+}
+
+#define _mm256_permute4x64_pd(V, M) __extension__ ({ \
+ __m256d __V = (V); \
+ (__m256d)__builtin_shufflevector((__v4df)__V, (__v4df) _mm256_setzero_pd(), \
+ (M) & 0x3, ((M) & 0xc) >> 2, \
+ ((M) & 0x30) >> 4, ((M) & 0xc0) >> 6); })
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_permutevar8x32_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)__builtin_ia32_permvarsf256((__v8sf)__a, (__v8sf)__b);
+}
+
+#define _mm256_permute4x64_epi64(V, M) __extension__ ({ \
+ __m256i __V = (V); \
+ (__m256i)__builtin_shufflevector((__v4di)__V, (__v4di) _mm256_setzero_si256(), \
+ (M) & 0x3, ((M) & 0xc) >> 2, \
+ ((M) & 0x30) >> 4, ((M) & 0xc0) >> 6); })
+
+#define _mm256_permute2x128_si256(V1, V2, M) __extension__ ({ \
+ __m256i __V1 = (V1); \
+ __m256i __V2 = (V2); \
+ (__m256i)__builtin_ia32_permti256(__V1, __V2, (M)); })
+
+#define _mm256_extracti128_si256(A, O) __extension__ ({ \
+ __m256i __A = (A); \
+ (__m128i)__builtin_ia32_extract128i256(__A, (O)); })
+
+#define _mm256_inserti128_si256(V1, V2, O) __extension__ ({ \
+ __m256i __V1 = (V1); \
+ __m128i __V2 = (V2); \
+ (__m256i)__builtin_ia32_insert128i256(__V1, __V2, (O)); })
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_maskload_epi32(int const *__X, __m256i __M)
+{
+ return (__m256i)__builtin_ia32_maskloadd256((const __v8si *)__X, (__v8si)__M);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_maskload_epi64(long long const *__X, __m256i __M)
+{
+ return (__m256i)__builtin_ia32_maskloadq256((const __v4di *)__X, __M);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maskload_epi32(int const *__X, __m128i __M)
+{
+ return (__m128i)__builtin_ia32_maskloadd((const __v4si *)__X, (__v4si)__M);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maskload_epi64(long long const *__X, __m128i __M)
+{
+ return (__m128i)__builtin_ia32_maskloadq((const __v2di *)__X, (__v2di)__M);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm256_maskstore_epi32(int *__X, __m256i __M, __m256i __Y)
+{
+ __builtin_ia32_maskstored256((__v8si *)__X, (__v8si)__M, (__v8si)__Y);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm256_maskstore_epi64(long long *__X, __m256i __M, __m256i __Y)
+{
+ __builtin_ia32_maskstoreq256((__v4di *)__X, __M, __Y);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_maskstore_epi32(int *__X, __m128i __M, __m128i __Y)
+{
+ __builtin_ia32_maskstored((__v4si *)__X, (__v4si)__M, (__v4si)__Y);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_maskstore_epi64(long long *__X, __m128i __M, __m128i __Y)
+{
+ __builtin_ia32_maskstoreq(( __v2di *)__X, __M, __Y);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sllv_epi32(__m256i __X, __m256i __Y)
+{
+ return (__m256i)__builtin_ia32_psllv8si((__v8si)__X, (__v8si)__Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sllv_epi32(__m128i __X, __m128i __Y)
+{
+ return (__m128i)__builtin_ia32_psllv4si((__v4si)__X, (__v4si)__Y);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_sllv_epi64(__m256i __X, __m256i __Y)
+{
+ return (__m256i)__builtin_ia32_psllv4di(__X, __Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sllv_epi64(__m128i __X, __m128i __Y)
+{
+ return (__m128i)__builtin_ia32_psllv2di(__X, __Y);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srav_epi32(__m256i __X, __m256i __Y)
+{
+ return (__m256i)__builtin_ia32_psrav8si((__v8si)__X, (__v8si)__Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srav_epi32(__m128i __X, __m128i __Y)
+{
+ return (__m128i)__builtin_ia32_psrav4si((__v4si)__X, (__v4si)__Y);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srlv_epi32(__m256i __X, __m256i __Y)
+{
+ return (__m256i)__builtin_ia32_psrlv8si((__v8si)__X, (__v8si)__Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srlv_epi32(__m128i __X, __m128i __Y)
+{
+ return (__m128i)__builtin_ia32_psrlv4si((__v4si)__X, (__v4si)__Y);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_srlv_epi64(__m256i __X, __m256i __Y)
+{
+ return (__m256i)__builtin_ia32_psrlv4di(__X, __Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srlv_epi64(__m128i __X, __m128i __Y)
+{
+ return (__m128i)__builtin_ia32_psrlv2di(__X, __Y);
+}
+
+#define _mm_mask_i32gather_pd(a, m, i, mask, s) __extension__ ({ \
+ __m128d __a = (a); \
+ double const *__m = (m); \
+ __m128i __i = (i); \
+ __m128d __mask = (mask); \
+ (__m128d)__builtin_ia32_gatherd_pd((__v2df)__a, (const __v2df *)__m, \
+ (__v4si)__i, (__v2df)__mask, (s)); })
+
+#define _mm256_mask_i32gather_pd(a, m, i, mask, s) __extension__ ({ \
+ __m256d __a = (a); \
+ double const *__m = (m); \
+ __m128i __i = (i); \
+ __m256d __mask = (mask); \
+ (__m256d)__builtin_ia32_gatherd_pd256((__v4df)__a, (const __v4df *)__m, \
+ (__v4si)__i, (__v4df)__mask, (s)); })
+
+#define _mm_mask_i64gather_pd(a, m, i, mask, s) __extension__ ({ \
+ __m128d __a = (a); \
+ double const *__m = (m); \
+ __m128i __i = (i); \
+ __m128d __mask = (mask); \
+ (__m128d)__builtin_ia32_gatherq_pd((__v2df)__a, (const __v2df *)__m, \
+ (__v2di)__i, (__v2df)__mask, (s)); })
+
+#define _mm256_mask_i64gather_pd(a, m, i, mask, s) __extension__ ({ \
+ __m256d __a = (a); \
+ double const *__m = (m); \
+ __m256i __i = (i); \
+ __m256d __mask = (mask); \
+ (__m256d)__builtin_ia32_gatherq_pd256((__v4df)__a, (const __v4df *)__m, \
+ (__v4di)__i, (__v4df)__mask, (s)); })
+
+#define _mm_mask_i32gather_ps(a, m, i, mask, s) __extension__ ({ \
+ __m128 __a = (a); \
+ float const *__m = (m); \
+ __m128i __i = (i); \
+ __m128 __mask = (mask); \
+ (__m128)__builtin_ia32_gatherd_ps((__v4sf)__a, (const __v4sf *)__m, \
+ (__v4si)__i, (__v4sf)__mask, (s)); })
+
+#define _mm256_mask_i32gather_ps(a, m, i, mask, s) __extension__ ({ \
+ __m256 __a = (a); \
+ float const *__m = (m); \
+ __m256i __i = (i); \
+ __m256 __mask = (mask); \
+ (__m256)__builtin_ia32_gatherd_ps256((__v8sf)__a, (const __v8sf *)__m, \
+ (__v8si)__i, (__v8sf)__mask, (s)); })
+
+#define _mm_mask_i64gather_ps(a, m, i, mask, s) __extension__ ({ \
+ __m128 __a = (a); \
+ float const *__m = (m); \
+ __m128i __i = (i); \
+ __m128 __mask = (mask); \
+ (__m128)__builtin_ia32_gatherq_ps((__v4sf)__a, (const __v4sf *)__m, \
+ (__v2di)__i, (__v4sf)__mask, (s)); })
+
+#define _mm256_mask_i64gather_ps(a, m, i, mask, s) __extension__ ({ \
+ __m128 __a = (a); \
+ float const *__m = (m); \
+ __m256i __i = (i); \
+ __m128 __mask = (mask); \
+ (__m128)__builtin_ia32_gatherq_ps256((__v4sf)__a, (const __v4sf *)__m, \
+ (__v4di)__i, (__v4sf)__mask, (s)); })
+
+#define _mm_mask_i32gather_epi32(a, m, i, mask, s) __extension__ ({ \
+ __m128i __a = (a); \
+ int const *__m = (m); \
+ __m128i __i = (i); \
+ __m128i __mask = (mask); \
+ (__m128i)__builtin_ia32_gatherd_d((__v4si)__a, (const __v4si *)__m, \
+ (__v4si)__i, (__v4si)__mask, (s)); })
+
+#define _mm256_mask_i32gather_epi32(a, m, i, mask, s) __extension__ ({ \
+ __m256i __a = (a); \
+ int const *__m = (m); \
+ __m256i __i = (i); \
+ __m256i __mask = (mask); \
+ (__m256i)__builtin_ia32_gatherd_d256((__v8si)__a, (const __v8si *)__m, \
+ (__v8si)__i, (__v8si)__mask, (s)); })
+
+#define _mm_mask_i64gather_epi32(a, m, i, mask, s) __extension__ ({ \
+ __m128i __a = (a); \
+ int const *__m = (m); \
+ __m128i __i = (i); \
+ __m128i __mask = (mask); \
+ (__m128i)__builtin_ia32_gatherq_d((__v4si)__a, (const __v4si *)__m, \
+ (__v2di)__i, (__v4si)__mask, (s)); })
+
+#define _mm256_mask_i64gather_epi32(a, m, i, mask, s) __extension__ ({ \
+ __m128i __a = (a); \
+ int const *__m = (m); \
+ __m256i __i = (i); \
+ __m128i __mask = (mask); \
+ (__m128i)__builtin_ia32_gatherq_d256((__v4si)__a, (const __v4si *)__m, \
+ (__v4di)__i, (__v4si)__mask, (s)); })
+
+#define _mm_mask_i32gather_epi64(a, m, i, mask, s) __extension__ ({ \
+ __m128i __a = (a); \
+ long long const *__m = (m); \
+ __m128i __i = (i); \
+ __m128i __mask = (mask); \
+ (__m128i)__builtin_ia32_gatherd_q((__v2di)__a, (const __v2di *)__m, \
+ (__v4si)__i, (__v2di)__mask, (s)); })
+
+#define _mm256_mask_i32gather_epi64(a, m, i, mask, s) __extension__ ({ \
+ __m256i __a = (a); \
+ long long const *__m = (m); \
+ __m128i __i = (i); \
+ __m256i __mask = (mask); \
+ (__m256i)__builtin_ia32_gatherd_q256((__v4di)__a, (const __v4di *)__m, \
+ (__v4si)__i, (__v4di)__mask, (s)); })
+
+#define _mm_mask_i64gather_epi64(a, m, i, mask, s) __extension__ ({ \
+ __m128i __a = (a); \
+ long long const *__m = (m); \
+ __m128i __i = (i); \
+ __m128i __mask = (mask); \
+ (__m128i)__builtin_ia32_gatherq_q((__v2di)__a, (const __v2di *)__m, \
+ (__v2di)__i, (__v2di)__mask, (s)); })
+
+#define _mm256_mask_i64gather_epi64(a, m, i, mask, s) __extension__ ({ \
+ __m256i __a = (a); \
+ long long const *__m = (m); \
+ __m256i __i = (i); \
+ __m256i __mask = (mask); \
+ (__m256i)__builtin_ia32_gatherq_q256((__v4di)__a, (const __v4di *)__m, \
+ (__v4di)__i, (__v4di)__mask, (s)); })
+
+#define _mm_i32gather_pd(m, i, s) __extension__ ({ \
+ double const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128d)__builtin_ia32_gatherd_pd((__v2df)_mm_setzero_pd(), \
+ (const __v2df *)__m, (__v4si)__i, \
+ (__v2df)_mm_set1_pd((double)(long long int)-1), (s)); })
+
+#define _mm256_i32gather_pd(m, i, s) __extension__ ({ \
+ double const *__m = (m); \
+ __m128i __i = (i); \
+ (__m256d)__builtin_ia32_gatherd_pd256((__v4df)_mm256_setzero_pd(), \
+ (const __v4df *)__m, (__v4si)__i, \
+ (__v4df)_mm256_set1_pd((double)(long long int)-1), (s)); })
+
+#define _mm_i64gather_pd(m, i, s) __extension__ ({ \
+ double const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128d)__builtin_ia32_gatherq_pd((__v2df)_mm_setzero_pd(), \
+ (const __v2df *)__m, (__v2di)__i, \
+ (__v2df)_mm_set1_pd((double)(long long int)-1), (s)); })
+
+#define _mm256_i64gather_pd(m, i, s) __extension__ ({ \
+ double const *__m = (m); \
+ __m256i __i = (i); \
+ (__m256d)__builtin_ia32_gatherq_pd256((__v4df)_mm256_setzero_pd(), \
+ (const __v4df *)__m, (__v4di)__i, \
+ (__v4df)_mm256_set1_pd((double)(long long int)-1), (s)); })
+
+#define _mm_i32gather_ps(m, i, s) __extension__ ({ \
+ float const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128)__builtin_ia32_gatherd_ps((__v4sf)_mm_setzero_ps(), \
+ (const __v4sf *)__m, (__v4si)__i, \
+ (__v4sf)_mm_set1_ps((float)(int)-1), (s)); })
+
+#define _mm256_i32gather_ps(m, i, s) __extension__ ({ \
+ float const *__m = (m); \
+ __m256i __i = (i); \
+ (__m256)__builtin_ia32_gatherd_ps256((__v8sf)_mm256_setzero_ps(), \
+ (const __v8sf *)__m, (__v8si)__i, \
+ (__v8sf)_mm256_set1_ps((float)(int)-1), (s)); })
+
+#define _mm_i64gather_ps(m, i, s) __extension__ ({ \
+ float const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128)__builtin_ia32_gatherq_ps((__v4sf)_mm_setzero_ps(), \
+ (const __v4sf *)__m, (__v2di)__i, \
+ (__v4sf)_mm_set1_ps((float)(int)-1), (s)); })
+
+#define _mm256_i64gather_ps(m, i, s) __extension__ ({ \
+ float const *__m = (m); \
+ __m256i __i = (i); \
+ (__m128)__builtin_ia32_gatherq_ps256((__v4sf)_mm_setzero_ps(), \
+ (const __v4sf *)__m, (__v4di)__i, \
+ (__v4sf)_mm_set1_ps((float)(int)-1), (s)); })
+
+#define _mm_i32gather_epi32(m, i, s) __extension__ ({ \
+ int const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128i)__builtin_ia32_gatherd_d((__v4si)_mm_setzero_si128(), \
+ (const __v4si *)__m, (__v4si)__i, \
+ (__v4si)_mm_set1_epi32(-1), (s)); })
+
+#define _mm256_i32gather_epi32(m, i, s) __extension__ ({ \
+ int const *__m = (m); \
+ __m256i __i = (i); \
+ (__m256i)__builtin_ia32_gatherd_d256((__v8si)_mm256_setzero_si256(), \
+ (const __v8si *)__m, (__v8si)__i, \
+ (__v8si)_mm256_set1_epi32(-1), (s)); })
+
+#define _mm_i64gather_epi32(m, i, s) __extension__ ({ \
+ int const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128i)__builtin_ia32_gatherq_d((__v4si)_mm_setzero_si128(), \
+ (const __v4si *)__m, (__v2di)__i, \
+ (__v4si)_mm_set1_epi32(-1), (s)); })
+
+#define _mm256_i64gather_epi32(m, i, s) __extension__ ({ \
+ int const *__m = (m); \
+ __m256i __i = (i); \
+ (__m128i)__builtin_ia32_gatherq_d256((__v4si)_mm_setzero_si128(), \
+ (const __v4si *)__m, (__v4di)__i, \
+ (__v4si)_mm_set1_epi32(-1), (s)); })
+
+#define _mm_i32gather_epi64(m, i, s) __extension__ ({ \
+ long long const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128i)__builtin_ia32_gatherd_q((__v2di)_mm_setzero_si128(), \
+ (const __v2di *)__m, (__v4si)__i, \
+ (__v2di)_mm_set1_epi64x(-1), (s)); })
+
+#define _mm256_i32gather_epi64(m, i, s) __extension__ ({ \
+ long long const *__m = (m); \
+ __m128i __i = (i); \
+ (__m256i)__builtin_ia32_gatherd_q256((__v4di)_mm256_setzero_si256(), \
+ (const __v4di *)__m, (__v4si)__i, \
+ (__v4di)_mm256_set1_epi64x(-1), (s)); })
+
+#define _mm_i64gather_epi64(m, i, s) __extension__ ({ \
+ long long const *__m = (m); \
+ __m128i __i = (i); \
+ (__m128i)__builtin_ia32_gatherq_q((__v2di)_mm_setzero_si128(), \
+ (const __v2di *)__m, (__v2di)__i, \
+ (__v2di)_mm_set1_epi64x(-1), (s)); })
+
+#define _mm256_i64gather_epi64(m, i, s) __extension__ ({ \
+ long long const *__m = (m); \
+ __m256i __i = (i); \
+ (__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_setzero_si256(), \
+ (const __v4di *)__m, (__v4di)__i, \
+ (__v4di)_mm256_set1_epi64x(-1), (s)); })
+
+#endif /* __AVX2INTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/avxintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/avxintrin.h
new file mode 100755
index 0000000..141c4d9
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/avxintrin.h
@@ -0,0 +1,1224 @@
+/*===---- avxintrin.h - AVX intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __AVXINTRIN_H
+#define __AVXINTRIN_H
+
+typedef double __v4df __attribute__ ((__vector_size__ (32)));
+typedef float __v8sf __attribute__ ((__vector_size__ (32)));
+typedef long long __v4di __attribute__ ((__vector_size__ (32)));
+typedef int __v8si __attribute__ ((__vector_size__ (32)));
+typedef short __v16hi __attribute__ ((__vector_size__ (32)));
+typedef char __v32qi __attribute__ ((__vector_size__ (32)));
+
+typedef float __m256 __attribute__ ((__vector_size__ (32)));
+typedef double __m256d __attribute__((__vector_size__(32)));
+typedef long long __m256i __attribute__((__vector_size__(32)));
+
+/* Arithmetic */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_add_pd(__m256d __a, __m256d __b)
+{
+ return __a+__b;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_add_ps(__m256 __a, __m256 __b)
+{
+ return __a+__b;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_sub_pd(__m256d __a, __m256d __b)
+{
+ return __a-__b;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_sub_ps(__m256 __a, __m256 __b)
+{
+ return __a-__b;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_addsub_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)__builtin_ia32_addsubpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_addsub_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)__builtin_ia32_addsubps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_div_pd(__m256d __a, __m256d __b)
+{
+ return __a / __b;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_div_ps(__m256 __a, __m256 __b)
+{
+ return __a / __b;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_max_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)__builtin_ia32_maxpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_max_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)__builtin_ia32_maxps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_min_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)__builtin_ia32_minpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_min_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)__builtin_ia32_minps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_mul_pd(__m256d __a, __m256d __b)
+{
+ return __a * __b;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_mul_ps(__m256 __a, __m256 __b)
+{
+ return __a * __b;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_sqrt_pd(__m256d __a)
+{
+ return (__m256d)__builtin_ia32_sqrtpd256((__v4df)__a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_sqrt_ps(__m256 __a)
+{
+ return (__m256)__builtin_ia32_sqrtps256((__v8sf)__a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_rsqrt_ps(__m256 __a)
+{
+ return (__m256)__builtin_ia32_rsqrtps256((__v8sf)__a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_rcp_ps(__m256 __a)
+{
+ return (__m256)__builtin_ia32_rcpps256((__v8sf)__a);
+}
+
+#define _mm256_round_pd(V, M) __extension__ ({ \
+ __m256d __V = (V); \
+ (__m256d)__builtin_ia32_roundpd256((__v4df)__V, (M)); })
+
+#define _mm256_round_ps(V, M) __extension__ ({ \
+ __m256 __V = (V); \
+ (__m256)__builtin_ia32_roundps256((__v8sf)__V, (M)); })
+
+#define _mm256_ceil_pd(V) _mm256_round_pd((V), _MM_FROUND_CEIL)
+#define _mm256_floor_pd(V) _mm256_round_pd((V), _MM_FROUND_FLOOR)
+#define _mm256_ceil_ps(V) _mm256_round_ps((V), _MM_FROUND_CEIL)
+#define _mm256_floor_ps(V) _mm256_round_ps((V), _MM_FROUND_FLOOR)
+
+/* Logical */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_and_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)((__v4di)__a & (__v4di)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_and_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)((__v8si)__a & (__v8si)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_andnot_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)(~(__v4di)__a & (__v4di)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_andnot_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)(~(__v8si)__a & (__v8si)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_or_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)((__v4di)__a | (__v4di)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_or_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)((__v8si)__a | (__v8si)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_xor_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)((__v4di)__a ^ (__v4di)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_xor_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)((__v8si)__a ^ (__v8si)__b);
+}
+
+/* Horizontal arithmetic */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_hadd_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)__builtin_ia32_haddpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_hadd_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)__builtin_ia32_haddps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_hsub_pd(__m256d __a, __m256d __b)
+{
+ return (__m256d)__builtin_ia32_hsubpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_hsub_ps(__m256 __a, __m256 __b)
+{
+ return (__m256)__builtin_ia32_hsubps256((__v8sf)__a, (__v8sf)__b);
+}
+
+/* Vector permutations */
+static __inline __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_permutevar_pd(__m128d __a, __m128i __c)
+{
+ return (__m128d)__builtin_ia32_vpermilvarpd((__v2df)__a, (__v2di)__c);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_permutevar_pd(__m256d __a, __m256i __c)
+{
+ return (__m256d)__builtin_ia32_vpermilvarpd256((__v4df)__a, (__v4di)__c);
+}
+
+static __inline __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_permutevar_ps(__m128 __a, __m128i __c)
+{
+ return (__m128)__builtin_ia32_vpermilvarps((__v4sf)__a, (__v4si)__c);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_permutevar_ps(__m256 __a, __m256i __c)
+{
+ return (__m256)__builtin_ia32_vpermilvarps256((__v8sf)__a,
+ (__v8si)__c);
+}
+
+#define _mm_permute_pd(A, C) __extension__ ({ \
+ __m128d __A = (A); \
+ (__m128d)__builtin_shufflevector((__v2df)__A, (__v2df) _mm_setzero_pd(), \
+ (C) & 0x1, ((C) & 0x2) >> 1); })
+
+#define _mm256_permute_pd(A, C) __extension__ ({ \
+ __m256d __A = (A); \
+ (__m256d)__builtin_shufflevector((__v4df)__A, (__v4df) _mm256_setzero_pd(), \
+ (C) & 0x1, ((C) & 0x2) >> 1, \
+ 2 + (((C) & 0x4) >> 2), \
+ 2 + (((C) & 0x8) >> 3)); })
+
+#define _mm_permute_ps(A, C) __extension__ ({ \
+ __m128 __A = (A); \
+ (__m128)__builtin_shufflevector((__v4sf)__A, (__v4sf) _mm_setzero_ps(), \
+ (C) & 0x3, ((C) & 0xc) >> 2, \
+ ((C) & 0x30) >> 4, ((C) & 0xc0) >> 6); })
+
+#define _mm256_permute_ps(A, C) __extension__ ({ \
+ __m256 __A = (A); \
+ (__m256)__builtin_shufflevector((__v8sf)__A, (__v8sf) _mm256_setzero_ps(), \
+ (C) & 0x3, ((C) & 0xc) >> 2, \
+ ((C) & 0x30) >> 4, ((C) & 0xc0) >> 6, \
+ 4 + (((C) & 0x03) >> 0), \
+ 4 + (((C) & 0x0c) >> 2), \
+ 4 + (((C) & 0x30) >> 4), \
+ 4 + (((C) & 0xc0) >> 6)); })
+
+#define _mm256_permute2f128_pd(V1, V2, M) __extension__ ({ \
+ __m256d __V1 = (V1); \
+ __m256d __V2 = (V2); \
+ (__m256d)__builtin_ia32_vperm2f128_pd256((__v4df)__V1, (__v4df)__V2, (M)); })
+
+#define _mm256_permute2f128_ps(V1, V2, M) __extension__ ({ \
+ __m256 __V1 = (V1); \
+ __m256 __V2 = (V2); \
+ (__m256)__builtin_ia32_vperm2f128_ps256((__v8sf)__V1, (__v8sf)__V2, (M)); })
+
+#define _mm256_permute2f128_si256(V1, V2, M) __extension__ ({ \
+ __m256i __V1 = (V1); \
+ __m256i __V2 = (V2); \
+ (__m256i)__builtin_ia32_vperm2f128_si256((__v8si)__V1, (__v8si)__V2, (M)); })
+
+/* Vector Blend */
+#define _mm256_blend_pd(V1, V2, M) __extension__ ({ \
+ __m256d __V1 = (V1); \
+ __m256d __V2 = (V2); \
+ (__m256d)__builtin_ia32_blendpd256((__v4df)__V1, (__v4df)__V2, (M)); })
+
+#define _mm256_blend_ps(V1, V2, M) __extension__ ({ \
+ __m256 __V1 = (V1); \
+ __m256 __V2 = (V2); \
+ (__m256)__builtin_ia32_blendps256((__v8sf)__V1, (__v8sf)__V2, (M)); })
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_blendv_pd(__m256d __a, __m256d __b, __m256d __c)
+{
+ return (__m256d)__builtin_ia32_blendvpd256(
+ (__v4df)__a, (__v4df)__b, (__v4df)__c);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
+{
+ return (__m256)__builtin_ia32_blendvps256(
+ (__v8sf)__a, (__v8sf)__b, (__v8sf)__c);
+}
+
+/* Vector Dot Product */
+#define _mm256_dp_ps(V1, V2, M) __extension__ ({ \
+ __m256 __V1 = (V1); \
+ __m256 __V2 = (V2); \
+ (__m256)__builtin_ia32_dpps256((__v8sf)__V1, (__v8sf)__V2, (M)); })
+
+/* Vector shuffle */
+#define _mm256_shuffle_ps(a, b, mask) __extension__ ({ \
+ __m256 __a = (a); \
+ __m256 __b = (b); \
+ (__m256)__builtin_shufflevector((__v8sf)__a, (__v8sf)__b, \
+ (mask) & 0x3, ((mask) & 0xc) >> 2, \
+ (((mask) & 0x30) >> 4) + 8, (((mask) & 0xc0) >> 6) + 8, \
+ ((mask) & 0x3) + 4, (((mask) & 0xc) >> 2) + 4, \
+ (((mask) & 0x30) >> 4) + 12, (((mask) & 0xc0) >> 6) + 12); })
+
+#define _mm256_shuffle_pd(a, b, mask) __extension__ ({ \
+ __m256d __a = (a); \
+ __m256d __b = (b); \
+ (__m256d)__builtin_shufflevector((__v4df)__a, (__v4df)__b, \
+ (mask) & 0x1, \
+ (((mask) & 0x2) >> 1) + 4, \
+ (((mask) & 0x4) >> 2) + 2, \
+ (((mask) & 0x8) >> 3) + 6); })
+
+/* Compare */
+#define _CMP_EQ_OQ 0x00 /* Equal (ordered, non-signaling) */
+#define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */
+#define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */
+#define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */
+#define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */
+#define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */
+#define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */
+#define _CMP_ORD_Q 0x07 /* Ordered (nonsignaling) */
+#define _CMP_EQ_UQ 0x08 /* Equal (unordered, non-signaling) */
+#define _CMP_NGE_US 0x09 /* Not-greater-than-or-equal (unord, signaling) */
+#define _CMP_NGT_US 0x0a /* Not-greater-than (unordered, signaling) */
+#define _CMP_FALSE_OQ 0x0b /* False (ordered, non-signaling) */
+#define _CMP_NEQ_OQ 0x0c /* Not-equal (ordered, non-signaling) */
+#define _CMP_GE_OS 0x0d /* Greater-than-or-equal (ordered, signaling) */
+#define _CMP_GT_OS 0x0e /* Greater-than (ordered, signaling) */
+#define _CMP_TRUE_UQ 0x0f /* True (unordered, non-signaling) */
+#define _CMP_EQ_OS 0x10 /* Equal (ordered, signaling) */
+#define _CMP_LT_OQ 0x11 /* Less-than (ordered, non-signaling) */
+#define _CMP_LE_OQ 0x12 /* Less-than-or-equal (ordered, non-signaling) */
+#define _CMP_UNORD_S 0x13 /* Unordered (signaling) */
+#define _CMP_NEQ_US 0x14 /* Not-equal (unordered, signaling) */
+#define _CMP_NLT_UQ 0x15 /* Not-less-than (unordered, non-signaling) */
+#define _CMP_NLE_UQ 0x16 /* Not-less-than-or-equal (unord, non-signaling) */
+#define _CMP_ORD_S 0x17 /* Ordered (signaling) */
+#define _CMP_EQ_US 0x18 /* Equal (unordered, signaling) */
+#define _CMP_NGE_UQ 0x19 /* Not-greater-than-or-equal (unord, non-sign) */
+#define _CMP_NGT_UQ 0x1a /* Not-greater-than (unordered, non-signaling) */
+#define _CMP_FALSE_OS 0x1b /* False (ordered, signaling) */
+#define _CMP_NEQ_OS 0x1c /* Not-equal (ordered, signaling) */
+#define _CMP_GE_OQ 0x1d /* Greater-than-or-equal (ordered, non-signaling) */
+#define _CMP_GT_OQ 0x1e /* Greater-than (ordered, non-signaling) */
+#define _CMP_TRUE_US 0x1f /* True (unordered, signaling) */
+
+#define _mm_cmp_pd(a, b, c) __extension__ ({ \
+ __m128d __a = (a); \
+ __m128d __b = (b); \
+ (__m128d)__builtin_ia32_cmppd((__v2df)__a, (__v2df)__b, (c)); })
+
+#define _mm_cmp_ps(a, b, c) __extension__ ({ \
+ __m128 __a = (a); \
+ __m128 __b = (b); \
+ (__m128)__builtin_ia32_cmpps((__v4sf)__a, (__v4sf)__b, (c)); })
+
+#define _mm256_cmp_pd(a, b, c) __extension__ ({ \
+ __m256d __a = (a); \
+ __m256d __b = (b); \
+ (__m256d)__builtin_ia32_cmppd256((__v4df)__a, (__v4df)__b, (c)); })
+
+#define _mm256_cmp_ps(a, b, c) __extension__ ({ \
+ __m256 __a = (a); \
+ __m256 __b = (b); \
+ (__m256)__builtin_ia32_cmpps256((__v8sf)__a, (__v8sf)__b, (c)); })
+
+#define _mm_cmp_sd(a, b, c) __extension__ ({ \
+ __m128d __a = (a); \
+ __m128d __b = (b); \
+ (__m128d)__builtin_ia32_cmpsd((__v2df)__a, (__v2df)__b, (c)); })
+
+#define _mm_cmp_ss(a, b, c) __extension__ ({ \
+ __m128 __a = (a); \
+ __m128 __b = (b); \
+ (__m128)__builtin_ia32_cmpss((__v4sf)__a, (__v4sf)__b, (c)); })
+
+/* Vector extract */
+#define _mm256_extractf128_pd(A, O) __extension__ ({ \
+ __m256d __A = (A); \
+ (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)__A, (O)); })
+
+#define _mm256_extractf128_ps(A, O) __extension__ ({ \
+ __m256 __A = (A); \
+ (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)__A, (O)); })
+
+#define _mm256_extractf128_si256(A, O) __extension__ ({ \
+ __m256i __A = (A); \
+ (__m128i)__builtin_ia32_vextractf128_si256((__v8si)__A, (O)); })
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_extract_epi32(__m256i __a, int const __imm)
+{
+ __v8si __b = (__v8si)__a;
+ return __b[__imm & 7];
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_extract_epi16(__m256i __a, int const __imm)
+{
+ __v16hi __b = (__v16hi)__a;
+ return __b[__imm & 15];
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_extract_epi8(__m256i __a, int const __imm)
+{
+ __v32qi __b = (__v32qi)__a;
+ return __b[__imm & 31];
+}
+
+#ifdef __x86_64__
+static __inline long long __attribute__((__always_inline__, __nodebug__))
+_mm256_extract_epi64(__m256i __a, const int __imm)
+{
+ __v4di __b = (__v4di)__a;
+ return __b[__imm & 3];
+}
+#endif
+
+/* Vector insert */
+#define _mm256_insertf128_pd(V1, V2, O) __extension__ ({ \
+ __m256d __V1 = (V1); \
+ __m128d __V2 = (V2); \
+ (__m256d)__builtin_ia32_vinsertf128_pd256((__v4df)__V1, (__v2df)__V2, (O)); })
+
+#define _mm256_insertf128_ps(V1, V2, O) __extension__ ({ \
+ __m256 __V1 = (V1); \
+ __m128 __V2 = (V2); \
+ (__m256)__builtin_ia32_vinsertf128_ps256((__v8sf)__V1, (__v4sf)__V2, (O)); })
+
+#define _mm256_insertf128_si256(V1, V2, O) __extension__ ({ \
+ __m256i __V1 = (V1); \
+ __m128i __V2 = (V2); \
+ (__m256i)__builtin_ia32_vinsertf128_si256((__v8si)__V1, (__v4si)__V2, (O)); })
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_insert_epi32(__m256i __a, int __b, int const __imm)
+{
+ __v8si __c = (__v8si)__a;
+ __c[__imm & 7] = __b;
+ return (__m256i)__c;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_insert_epi16(__m256i __a, int __b, int const __imm)
+{
+ __v16hi __c = (__v16hi)__a;
+ __c[__imm & 15] = __b;
+ return (__m256i)__c;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_insert_epi8(__m256i __a, int __b, int const __imm)
+{
+ __v32qi __c = (__v32qi)__a;
+ __c[__imm & 31] = __b;
+ return (__m256i)__c;
+}
+
+#ifdef __x86_64__
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_insert_epi64(__m256i __a, int __b, int const __imm)
+{
+ __v4di __c = (__v4di)__a;
+ __c[__imm & 3] = __b;
+ return (__m256i)__c;
+}
+#endif
+
+/* Conversion */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi32_pd(__m128i __a)
+{
+ return (__m256d)__builtin_ia32_cvtdq2pd256((__v4si) __a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtepi32_ps(__m256i __a)
+{
+ return (__m256)__builtin_ia32_cvtdq2ps256((__v8si) __a);
+}
+
+static __inline __m128 __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtpd_ps(__m256d __a)
+{
+ return (__m128)__builtin_ia32_cvtpd2ps256((__v4df) __a);
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtps_epi32(__m256 __a)
+{
+ return (__m256i)__builtin_ia32_cvtps2dq256((__v8sf) __a);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtps_pd(__m128 __a)
+{
+ return (__m256d)__builtin_ia32_cvtps2pd256((__v4sf) __a);
+}
+
+static __inline __m128i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvttpd_epi32(__m256d __a)
+{
+ return (__m128i)__builtin_ia32_cvttpd2dq256((__v4df) __a);
+}
+
+static __inline __m128i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtpd_epi32(__m256d __a)
+{
+ return (__m128i)__builtin_ia32_cvtpd2dq256((__v4df) __a);
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cvttps_epi32(__m256 __a)
+{
+ return (__m256i)__builtin_ia32_cvttps2dq256((__v8sf) __a);
+}
+
+/* Vector replicate */
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_movehdup_ps(__m256 __a)
+{
+ return __builtin_shufflevector(__a, __a, 1, 1, 3, 3, 5, 5, 7, 7);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_moveldup_ps(__m256 __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 0, 2, 2, 4, 4, 6, 6);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_movedup_pd(__m256d __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 0, 2, 2);
+}
+
+/* Unpack and Interleave */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_unpackhi_pd(__m256d __a, __m256d __b)
+{
+ return __builtin_shufflevector(__a, __b, 1, 5, 1+2, 5+2);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_unpacklo_pd(__m256d __a, __m256d __b)
+{
+ return __builtin_shufflevector(__a, __b, 0, 4, 0+2, 4+2);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_unpackhi_ps(__m256 __a, __m256 __b)
+{
+ return __builtin_shufflevector(__a, __b, 2, 10, 2+1, 10+1, 6, 14, 6+1, 14+1);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_unpacklo_ps(__m256 __a, __m256 __b)
+{
+ return __builtin_shufflevector(__a, __b, 0, 8, 0+1, 8+1, 4, 12, 4+1, 12+1);
+}
+
+/* Bit Test */
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm_testz_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_vtestzpd((__v2df)__a, (__v2df)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm_testc_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_vtestcpd((__v2df)__a, (__v2df)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm_testnzc_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_vtestnzcpd((__v2df)__a, (__v2df)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm_testz_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_vtestzps((__v4sf)__a, (__v4sf)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm_testc_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_vtestcps((__v4sf)__a, (__v4sf)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm_testnzc_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_vtestnzcps((__v4sf)__a, (__v4sf)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testz_pd(__m256d __a, __m256d __b)
+{
+ return __builtin_ia32_vtestzpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testc_pd(__m256d __a, __m256d __b)
+{
+ return __builtin_ia32_vtestcpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testnzc_pd(__m256d __a, __m256d __b)
+{
+ return __builtin_ia32_vtestnzcpd256((__v4df)__a, (__v4df)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testz_ps(__m256 __a, __m256 __b)
+{
+ return __builtin_ia32_vtestzps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testc_ps(__m256 __a, __m256 __b)
+{
+ return __builtin_ia32_vtestcps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testnzc_ps(__m256 __a, __m256 __b)
+{
+ return __builtin_ia32_vtestnzcps256((__v8sf)__a, (__v8sf)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testz_si256(__m256i __a, __m256i __b)
+{
+ return __builtin_ia32_ptestz256((__v4di)__a, (__v4di)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testc_si256(__m256i __a, __m256i __b)
+{
+ return __builtin_ia32_ptestc256((__v4di)__a, (__v4di)__b);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_testnzc_si256(__m256i __a, __m256i __b)
+{
+ return __builtin_ia32_ptestnzc256((__v4di)__a, (__v4di)__b);
+}
+
+/* Vector extract sign mask */
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_movemask_pd(__m256d __a)
+{
+ return __builtin_ia32_movmskpd256((__v4df)__a);
+}
+
+static __inline int __attribute__((__always_inline__, __nodebug__))
+_mm256_movemask_ps(__m256 __a)
+{
+ return __builtin_ia32_movmskps256((__v8sf)__a);
+}
+
+/* Vector __zero */
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_zeroall(void)
+{
+ __builtin_ia32_vzeroall();
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_zeroupper(void)
+{
+ __builtin_ia32_vzeroupper();
+}
+
+/* Vector load with broadcast */
+static __inline __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_broadcast_ss(float const *__a)
+{
+ return (__m128)__builtin_ia32_vbroadcastss(__a);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcast_sd(double const *__a)
+{
+ return (__m256d)__builtin_ia32_vbroadcastsd256(__a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcast_ss(float const *__a)
+{
+ return (__m256)__builtin_ia32_vbroadcastss256(__a);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcast_pd(__m128d const *__a)
+{
+ return (__m256d)__builtin_ia32_vbroadcastf128_pd256(__a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_broadcast_ps(__m128 const *__a)
+{
+ return (__m256)__builtin_ia32_vbroadcastf128_ps256(__a);
+}
+
+/* SIMD load ops */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_load_pd(double const *__p)
+{
+ return *(__m256d *)__p;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_load_ps(float const *__p)
+{
+ return *(__m256 *)__p;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_loadu_pd(double const *__p)
+{
+ struct __loadu_pd {
+ __m256d __v;
+ } __attribute__((packed, may_alias));
+ return ((struct __loadu_pd*)__p)->__v;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_loadu_ps(float const *__p)
+{
+ struct __loadu_ps {
+ __m256 __v;
+ } __attribute__((packed, may_alias));
+ return ((struct __loadu_ps*)__p)->__v;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_load_si256(__m256i const *__p)
+{
+ return *__p;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_loadu_si256(__m256i const *__p)
+{
+ struct __loadu_si256 {
+ __m256i __v;
+ } __attribute__((packed, may_alias));
+ return ((struct __loadu_si256*)__p)->__v;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_lddqu_si256(__m256i const *__p)
+{
+ return (__m256i)__builtin_ia32_lddqu256((char const *)__p);
+}
+
+/* SIMD store ops */
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_store_pd(double *__p, __m256d __a)
+{
+ *(__m256d *)__p = __a;
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_store_ps(float *__p, __m256 __a)
+{
+ *(__m256 *)__p = __a;
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_storeu_pd(double *__p, __m256d __a)
+{
+ __builtin_ia32_storeupd256(__p, (__v4df)__a);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_storeu_ps(float *__p, __m256 __a)
+{
+ __builtin_ia32_storeups256(__p, (__v8sf)__a);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_store_si256(__m256i *__p, __m256i __a)
+{
+ *__p = __a;
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_storeu_si256(__m256i *__p, __m256i __a)
+{
+ __builtin_ia32_storedqu256((char *)__p, (__v32qi)__a);
+}
+
+/* Conditional load ops */
+static __inline __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_maskload_pd(double const *__p, __m128d __m)
+{
+ return (__m128d)__builtin_ia32_maskloadpd((const __v2df *)__p, (__v2df)__m);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_maskload_pd(double const *__p, __m256d __m)
+{
+ return (__m256d)__builtin_ia32_maskloadpd256((const __v4df *)__p,
+ (__v4df)__m);
+}
+
+static __inline __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_maskload_ps(float const *__p, __m128 __m)
+{
+ return (__m128)__builtin_ia32_maskloadps((const __v4sf *)__p, (__v4sf)__m);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_maskload_ps(float const *__p, __m256 __m)
+{
+ return (__m256)__builtin_ia32_maskloadps256((const __v8sf *)__p, (__v8sf)__m);
+}
+
+/* Conditional store ops */
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_maskstore_ps(float *__p, __m256 __m, __m256 __a)
+{
+ __builtin_ia32_maskstoreps256((__v8sf *)__p, (__v8sf)__m, (__v8sf)__a);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm_maskstore_pd(double *__p, __m128d __m, __m128d __a)
+{
+ __builtin_ia32_maskstorepd((__v2df *)__p, (__v2df)__m, (__v2df)__a);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_maskstore_pd(double *__p, __m256d __m, __m256d __a)
+{
+ __builtin_ia32_maskstorepd256((__v4df *)__p, (__v4df)__m, (__v4df)__a);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm_maskstore_ps(float *__p, __m128 __m, __m128 __a)
+{
+ __builtin_ia32_maskstoreps((__v4sf *)__p, (__v4sf)__m, (__v4sf)__a);
+}
+
+/* Cacheability support ops */
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_stream_si256(__m256i *__a, __m256i __b)
+{
+ __builtin_ia32_movntdq256((__v4di *)__a, (__v4di)__b);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_stream_pd(double *__a, __m256d __b)
+{
+ __builtin_ia32_movntpd256(__a, (__v4df)__b);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_stream_ps(float *__p, __m256 __a)
+{
+ __builtin_ia32_movntps256(__p, (__v8sf)__a);
+}
+
+/* Create vectors */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_set_pd(double __a, double __b, double __c, double __d)
+{
+ return (__m256d){ __d, __c, __b, __a };
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_set_ps(float __a, float __b, float __c, float __d,
+ float __e, float __f, float __g, float __h)
+{
+ return (__m256){ __h, __g, __f, __e, __d, __c, __b, __a };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set_epi32(int __i0, int __i1, int __i2, int __i3,
+ int __i4, int __i5, int __i6, int __i7)
+{
+ return (__m256i)(__v8si){ __i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0 };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set_epi16(short __w15, short __w14, short __w13, short __w12,
+ short __w11, short __w10, short __w09, short __w08,
+ short __w07, short __w06, short __w05, short __w04,
+ short __w03, short __w02, short __w01, short __w00)
+{
+ return (__m256i)(__v16hi){ __w00, __w01, __w02, __w03, __w04, __w05, __w06,
+ __w07, __w08, __w09, __w10, __w11, __w12, __w13, __w14, __w15 };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set_epi8(char __b31, char __b30, char __b29, char __b28,
+ char __b27, char __b26, char __b25, char __b24,
+ char __b23, char __b22, char __b21, char __b20,
+ char __b19, char __b18, char __b17, char __b16,
+ char __b15, char __b14, char __b13, char __b12,
+ char __b11, char __b10, char __b09, char __b08,
+ char __b07, char __b06, char __b05, char __b04,
+ char __b03, char __b02, char __b01, char __b00)
+{
+ return (__m256i)(__v32qi){
+ __b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07,
+ __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15,
+ __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23,
+ __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31
+ };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set_epi64x(long long __a, long long __b, long long __c, long long __d)
+{
+ return (__m256i)(__v4di){ __d, __c, __b, __a };
+}
+
+/* Create vectors with elements in reverse order */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_setr_pd(double __a, double __b, double __c, double __d)
+{
+ return (__m256d){ __a, __b, __c, __d };
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_setr_ps(float __a, float __b, float __c, float __d,
+ float __e, float __f, float __g, float __h)
+{
+ return (__m256){ __a, __b, __c, __d, __e, __f, __g, __h };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_setr_epi32(int __i0, int __i1, int __i2, int __i3,
+ int __i4, int __i5, int __i6, int __i7)
+{
+ return (__m256i)(__v8si){ __i0, __i1, __i2, __i3, __i4, __i5, __i6, __i7 };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_setr_epi16(short __w15, short __w14, short __w13, short __w12,
+ short __w11, short __w10, short __w09, short __w08,
+ short __w07, short __w06, short __w05, short __w04,
+ short __w03, short __w02, short __w01, short __w00)
+{
+ return (__m256i)(__v16hi){ __w15, __w14, __w13, __w12, __w11, __w10, __w09,
+ __w08, __w07, __w06, __w05, __w04, __w03, __w02, __w01, __w00 };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_setr_epi8(char __b31, char __b30, char __b29, char __b28,
+ char __b27, char __b26, char __b25, char __b24,
+ char __b23, char __b22, char __b21, char __b20,
+ char __b19, char __b18, char __b17, char __b16,
+ char __b15, char __b14, char __b13, char __b12,
+ char __b11, char __b10, char __b09, char __b08,
+ char __b07, char __b06, char __b05, char __b04,
+ char __b03, char __b02, char __b01, char __b00)
+{
+ return (__m256i)(__v32qi){
+ __b31, __b30, __b29, __b28, __b27, __b26, __b25, __b24,
+ __b23, __b22, __b21, __b20, __b19, __b18, __b17, __b16,
+ __b15, __b14, __b13, __b12, __b11, __b10, __b09, __b08,
+ __b07, __b06, __b05, __b04, __b03, __b02, __b01, __b00 };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_setr_epi64x(long long __a, long long __b, long long __c, long long __d)
+{
+ return (__m256i)(__v4di){ __a, __b, __c, __d };
+}
+
+/* Create vectors with repeated elements */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_set1_pd(double __w)
+{
+ return (__m256d){ __w, __w, __w, __w };
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_set1_ps(float __w)
+{
+ return (__m256){ __w, __w, __w, __w, __w, __w, __w, __w };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set1_epi32(int __i)
+{
+ return (__m256i)(__v8si){ __i, __i, __i, __i, __i, __i, __i, __i };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set1_epi16(short __w)
+{
+ return (__m256i)(__v16hi){ __w, __w, __w, __w, __w, __w, __w, __w, __w, __w,
+ __w, __w, __w, __w, __w, __w };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set1_epi8(char __b)
+{
+ return (__m256i)(__v32qi){ __b, __b, __b, __b, __b, __b, __b, __b, __b, __b,
+ __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b,
+ __b, __b, __b, __b, __b, __b, __b };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_set1_epi64x(long long __q)
+{
+ return (__m256i)(__v4di){ __q, __q, __q, __q };
+}
+
+/* Create __zeroed vectors */
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_setzero_pd(void)
+{
+ return (__m256d){ 0, 0, 0, 0 };
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_setzero_ps(void)
+{
+ return (__m256){ 0, 0, 0, 0, 0, 0, 0, 0 };
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_setzero_si256(void)
+{
+ return (__m256i){ 0LL, 0LL, 0LL, 0LL };
+}
+
+/* Cast between vector types */
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_castpd_ps(__m256d __a)
+{
+ return (__m256)__a;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_castpd_si256(__m256d __a)
+{
+ return (__m256i)__a;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_castps_pd(__m256 __a)
+{
+ return (__m256d)__a;
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_castps_si256(__m256 __a)
+{
+ return (__m256i)__a;
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_castsi256_ps(__m256i __a)
+{
+ return (__m256)__a;
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_castsi256_pd(__m256i __a)
+{
+ return (__m256d)__a;
+}
+
+static __inline __m128d __attribute__((__always_inline__, __nodebug__))
+_mm256_castpd256_pd128(__m256d __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 1);
+}
+
+static __inline __m128 __attribute__((__always_inline__, __nodebug__))
+_mm256_castps256_ps128(__m256 __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3);
+}
+
+static __inline __m128i __attribute__((__always_inline__, __nodebug__))
+_mm256_castsi256_si128(__m256i __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 1);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_castpd128_pd256(__m128d __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 1, -1, -1);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_castps128_ps256(__m128 __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, -1, -1, -1, -1);
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_castsi128_si256(__m128i __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 1, -1, -1);
+}
+
+/* SIMD load ops (unaligned) */
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo)
+{
+ struct __loadu_ps {
+ __m128 __v;
+ } __attribute__((__packed__, __may_alias__));
+
+ __m256 __v256 = _mm256_castps128_ps256(((struct __loadu_ps*)__addr_lo)->__v);
+ return _mm256_insertf128_ps(__v256, ((struct __loadu_ps*)__addr_hi)->__v, 1);
+}
+
+static __inline __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo)
+{
+ struct __loadu_pd {
+ __m128d __v;
+ } __attribute__((__packed__, __may_alias__));
+
+ __m256d __v256 = _mm256_castpd128_pd256(((struct __loadu_pd*)__addr_lo)->__v);
+ return _mm256_insertf128_pd(__v256, ((struct __loadu_pd*)__addr_hi)->__v, 1);
+}
+
+static __inline __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_loadu2_m128i(__m128i const *__addr_hi, __m128i const *__addr_lo)
+{
+ struct __loadu_si128 {
+ __m128i __v;
+ } __attribute__((packed, may_alias));
+ __m256i __v256 = _mm256_castsi128_si256(
+ ((struct __loadu_si128*)__addr_lo)->__v);
+ return _mm256_insertf128_si256(__v256,
+ ((struct __loadu_si128*)__addr_hi)->__v, 1);
+}
+
+/* SIMD store ops (unaligned) */
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a)
+{
+ __m128 __v128;
+
+ __v128 = _mm256_castps256_ps128(__a);
+ __builtin_ia32_storeups(__addr_lo, __v128);
+ __v128 = _mm256_extractf128_ps(__a, 1);
+ __builtin_ia32_storeups(__addr_hi, __v128);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a)
+{
+ __m128d __v128;
+
+ __v128 = _mm256_castpd256_pd128(__a);
+ __builtin_ia32_storeupd(__addr_lo, __v128);
+ __v128 = _mm256_extractf128_pd(__a, 1);
+ __builtin_ia32_storeupd(__addr_hi, __v128);
+}
+
+static __inline void __attribute__((__always_inline__, __nodebug__))
+_mm256_storeu2_m128i(__m128i *__addr_hi, __m128i *__addr_lo, __m256i __a)
+{
+ __m128i __v128;
+
+ __v128 = _mm256_castsi256_si128(__a);
+ __builtin_ia32_storedqu((char *)__addr_lo, (__v16qi)__v128);
+ __v128 = _mm256_extractf128_si256(__a, 1);
+ __builtin_ia32_storedqu((char *)__addr_hi, (__v16qi)__v128);
+}
+
+#endif /* __AVXINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/bmi2intrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/bmi2intrin.h
new file mode 100755
index 0000000..a05cfad
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/bmi2intrin.h
@@ -0,0 +1,94 @@
+/*===---- bmi2intrin.h - BMI2 intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __BMI2__
+# error "BMI2 instruction set not enabled"
+#endif /* __BMI2__ */
+
+#ifndef __BMI2INTRIN_H
+#define __BMI2INTRIN_H
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_bzhi_u32(unsigned int __X, unsigned int __Y)
+{
+ return __builtin_ia32_bzhi_si(__X, __Y);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_pdep_u32(unsigned int __X, unsigned int __Y)
+{
+ return __builtin_ia32_pdep_si(__X, __Y);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_pext_u32(unsigned int __X, unsigned int __Y)
+{
+ return __builtin_ia32_pext_si(__X, __Y);
+}
+
+#ifdef __x86_64__
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+_bzhi_u64(unsigned long long __X, unsigned long long __Y)
+{
+ return __builtin_ia32_bzhi_di(__X, __Y);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+_pdep_u64(unsigned long long __X, unsigned long long __Y)
+{
+ return __builtin_ia32_pdep_di(__X, __Y);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+_pext_u64(unsigned long long __X, unsigned long long __Y)
+{
+ return __builtin_ia32_pext_di(__X, __Y);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+_mulx_u64 (unsigned long long __X, unsigned long long __Y,
+ unsigned long long *__P)
+{
+ unsigned __int128 __res = (unsigned __int128) __X * __Y;
+ *__P = (unsigned long long) (__res >> 64);
+ return (unsigned long long) __res;
+}
+
+#else /* !__x86_64__ */
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_mulx_u32 (unsigned int __X, unsigned int __Y, unsigned int *__P)
+{
+ unsigned long long __res = (unsigned long long) __X * __Y;
+ *__P = (unsigned int) (__res >> 32);
+ return (unsigned int) __res;
+}
+
+#endif /* !__x86_64__ */
+
+#endif /* __BMI2INTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/bmiintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/bmiintrin.h
new file mode 100755
index 0000000..8cb00f5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/bmiintrin.h
@@ -0,0 +1,115 @@
+/*===---- bmiintrin.h - BMI intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __BMI__
+# error "BMI instruction set not enabled"
+#endif /* __BMI__ */
+
+#ifndef __BMIINTRIN_H
+#define __BMIINTRIN_H
+
+static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))
+__tzcnt_u16(unsigned short __X)
+{
+ return __builtin_ctzs(__X);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__andn_u32(unsigned int __X, unsigned int __Y)
+{
+ return ~__X & __Y;
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__bextr_u32(unsigned int __X, unsigned int __Y)
+{
+ return __builtin_ia32_bextr_u32(__X, __Y);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blsi_u32(unsigned int __X)
+{
+ return __X & -__X;
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blsmsk_u32(unsigned int __X)
+{
+ return __X ^ (__X - 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blsr_u32(unsigned int __X)
+{
+ return __X & (__X - 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__tzcnt_u32(unsigned int __X)
+{
+ return __builtin_ctz(__X);
+}
+
+#ifdef __x86_64__
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__andn_u64 (unsigned long long __X, unsigned long long __Y)
+{
+ return ~__X & __Y;
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__bextr_u64(unsigned long long __X, unsigned long long __Y)
+{
+ return __builtin_ia32_bextr_u64(__X, __Y);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__blsi_u64(unsigned long long __X)
+{
+ return __X & -__X;
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__blsmsk_u64(unsigned long long __X)
+{
+ return __X ^ (__X - 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__blsr_u64(unsigned long long __X)
+{
+ return __X & (__X - 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__tzcnt_u64(unsigned long long __X)
+{
+ return __builtin_ctzll(__X);
+}
+#endif
+
+#endif /* __BMIINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/cpuid.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/cpuid.h
new file mode 100755
index 0000000..8f12cae
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/cpuid.h
@@ -0,0 +1,156 @@
+/*===---- cpuid.h - X86 cpu model detection --------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !(__x86_64__ || __i386__)
+#error this header is for x86 only
+#endif
+
+/* Features in %ecx for level 1 */
+#define bit_SSE3 0x00000001
+#define bit_PCLMULQDQ 0x00000002
+#define bit_DTES64 0x00000004
+#define bit_MONITOR 0x00000008
+#define bit_DSCPL 0x00000010
+#define bit_VMX 0x00000020
+#define bit_SMX 0x00000040
+#define bit_EIST 0x00000080
+#define bit_TM2 0x00000100
+#define bit_SSSE3 0x00000200
+#define bit_CNXTID 0x00000400
+#define bit_FMA 0x00001000
+#define bit_CMPXCHG16B 0x00002000
+#define bit_xTPR 0x00004000
+#define bit_PDCM 0x00008000
+#define bit_PCID 0x00020000
+#define bit_DCA 0x00040000
+#define bit_SSE41 0x00080000
+#define bit_SSE42 0x00100000
+#define bit_x2APIC 0x00200000
+#define bit_MOVBE 0x00400000
+#define bit_POPCNT 0x00800000
+#define bit_TSCDeadline 0x01000000
+#define bit_AESNI 0x02000000
+#define bit_XSAVE 0x04000000
+#define bit_OSXSAVE 0x08000000
+#define bit_AVX 0x10000000
+#define bit_RDRAND 0x40000000
+
+/* Features in %edx for level 1 */
+#define bit_FPU 0x00000001
+#define bit_VME 0x00000002
+#define bit_DE 0x00000004
+#define bit_PSE 0x00000008
+#define bit_TSC 0x00000010
+#define bit_MSR 0x00000020
+#define bit_PAE 0x00000040
+#define bit_MCE 0x00000080
+#define bit_CX8 0x00000100
+#define bit_APIC 0x00000200
+#define bit_SEP 0x00000800
+#define bit_MTRR 0x00001000
+#define bit_PGE 0x00002000
+#define bit_MCA 0x00004000
+#define bit_CMOV 0x00008000
+#define bit_PAT 0x00010000
+#define bit_PSE36 0x00020000
+#define bit_PSN 0x00040000
+#define bit_CLFSH 0x00080000
+#define bit_DS 0x00200000
+#define bit_ACPI 0x00400000
+#define bit_MMX 0x00800000
+#define bit_FXSR 0x01000000
+#define bit_SSE 0x02000000
+#define bit_SSE2 0x04000000
+#define bit_SS 0x08000000
+#define bit_HTT 0x10000000
+#define bit_TM 0x20000000
+#define bit_PBE 0x80000000
+
+/* Features in %ebx for level 7 sub-leaf 0 */
+#define bit_FSGSBASE 0x00000001
+#define bit_SMEP 0x00000080
+#define bit_ENH_MOVSB 0x00000200
+
+/* PIC on i386 uses %ebx, so preserve it. */
+#if __i386__
+#define __cpuid(__level, __eax, __ebx, __ecx, __edx) \
+ __asm(" pushl %%ebx\n" \
+ " cpuid\n" \
+ " mov %%ebx,%1\n" \
+ " popl %%ebx" \
+ : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \
+ : "0"(__level))
+
+#define __cpuid_count(__level, __count, __eax, __ebx, __ecx, __edx) \
+ __asm(" pushl %%ebx\n" \
+ " cpuid\n" \
+ " mov %%ebx,%1\n" \
+ " popl %%ebx" \
+ : "=a"(__eax), "=r" (__ebx), "=c"(__ecx), "=d"(__edx) \
+ : "0"(__level), "2"(__count))
+#else
+#define __cpuid(__level, __eax, __ebx, __ecx, __edx) \
+ __asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \
+ : "0"(__level))
+
+#define __cpuid_count(__level, __count, __eax, __ebx, __ecx, __edx) \
+ __asm("cpuid" : "=a"(__eax), "=b" (__ebx), "=c"(__ecx), "=d"(__edx) \
+ : "0"(__level), "2"(__count))
+#endif
+
+static __inline int __get_cpuid (unsigned int __level, unsigned int *__eax,
+ unsigned int *__ebx, unsigned int *__ecx,
+ unsigned int *__edx) {
+ __cpuid(__level, *__eax, *__ebx, *__ecx, *__edx);
+ return 1;
+}
+
+static __inline int __get_cpuid_max (unsigned int __level, unsigned int *__sig)
+{
+ unsigned int __eax, __ebx, __ecx, __edx;
+#if __i386__
+ int __cpuid_supported;
+
+ __asm(" pushfl\n"
+ " popl %%eax\n"
+ " movl %%eax,%%ecx\n"
+ " xorl $0x00200000,%%eax\n"
+ " pushl %%eax\n"
+ " popfl\n"
+ " pushfl\n"
+ " popl %%eax\n"
+ " movl $0,%0\n"
+ " cmpl %%eax,%%ecx\n"
+ " je 1f\n"
+ " movl $1,%0\n"
+ "1:"
+ : "=r" (__cpuid_supported) : : "eax", "ecx");
+ if (!__cpuid_supported)
+ return 0;
+#endif
+
+ __cpuid(__level, __eax, __ebx, __ecx, __edx);
+ if (__sig)
+ *__sig = __ebx;
+ return __eax;
+}
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/emmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/emmintrin.h
new file mode 100755
index 0000000..b3f8569
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/emmintrin.h
@@ -0,0 +1,1451 @@
+/*===---- emmintrin.h - SSE2 intrinsics ------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __EMMINTRIN_H
+#define __EMMINTRIN_H
+
+#ifndef __SSE2__
+#error "SSE2 instruction set not enabled"
+#else
+
+#include
+
+typedef double __m128d __attribute__((__vector_size__(16)));
+typedef long long __m128i __attribute__((__vector_size__(16)));
+
+/* Type defines. */
+typedef double __v2df __attribute__ ((__vector_size__ (16)));
+typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+typedef short __v8hi __attribute__((__vector_size__(16)));
+typedef char __v16qi __attribute__((__vector_size__(16)));
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_add_sd(__m128d __a, __m128d __b)
+{
+ __a[0] += __b[0];
+ return __a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_add_pd(__m128d __a, __m128d __b)
+{
+ return __a + __b;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_sub_sd(__m128d __a, __m128d __b)
+{
+ __a[0] -= __b[0];
+ return __a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_sub_pd(__m128d __a, __m128d __b)
+{
+ return __a - __b;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_mul_sd(__m128d __a, __m128d __b)
+{
+ __a[0] *= __b[0];
+ return __a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_mul_pd(__m128d __a, __m128d __b)
+{
+ return __a * __b;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_div_sd(__m128d __a, __m128d __b)
+{
+ __a[0] /= __b[0];
+ return __a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_div_pd(__m128d __a, __m128d __b)
+{
+ return __a / __b;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_sqrt_sd(__m128d __a, __m128d __b)
+{
+ __m128d __c = __builtin_ia32_sqrtsd(__b);
+ return (__m128d) { __c[0], __a[1] };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_sqrt_pd(__m128d __a)
+{
+ return __builtin_ia32_sqrtpd(__a);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_min_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_minsd(__a, __b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_min_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_minpd(__a, __b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_max_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_maxsd(__a, __b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_max_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_maxpd(__a, __b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_and_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)((__v4si)__a & (__v4si)__b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_andnot_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)(~(__v4si)__a & (__v4si)__b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_or_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)((__v4si)__a | (__v4si)__b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_xor_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)((__v4si)__a ^ (__v4si)__b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 0);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 1);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmple_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 2);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__b, __a, 1);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpge_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__b, __a, 2);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpord_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 7);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpunord_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 3);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpneq_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 4);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnlt_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 5);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnle_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__a, __b, 6);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpngt_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__b, __a, 5);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnge_pd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmppd(__b, __a, 6);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 0);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 1);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmple_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 2);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_sd(__m128d __a, __m128d __b)
+{
+ __m128d __c = __builtin_ia32_cmpsd(__b, __a, 1);
+ return (__m128d) { __c[0], __a[1] };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpge_sd(__m128d __a, __m128d __b)
+{
+ __m128d __c = __builtin_ia32_cmpsd(__b, __a, 2);
+ return (__m128d) { __c[0], __a[1] };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpord_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 7);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpunord_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 3);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpneq_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 4);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnlt_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 5);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnle_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d)__builtin_ia32_cmpsd(__a, __b, 6);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpngt_sd(__m128d __a, __m128d __b)
+{
+ __m128d __c = __builtin_ia32_cmpsd(__b, __a, 5);
+ return (__m128d) { __c[0], __a[1] };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnge_sd(__m128d __a, __m128d __b)
+{
+ __m128d __c = __builtin_ia32_cmpsd(__b, __a, 6);
+ return (__m128d) { __c[0], __a[1] };
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comieq_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_comisdeq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comilt_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_comisdlt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comile_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_comisdle(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comigt_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_comisdgt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comige_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_comisdge(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comineq_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_comisdneq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomieq_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_ucomisdeq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomilt_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_ucomisdlt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomile_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_ucomisdle(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomigt_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_ucomisdgt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomige_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_ucomisdge(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomineq_sd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_ucomisdneq(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpd_ps(__m128d __a)
+{
+ return __builtin_ia32_cvtpd2ps(__a);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cvtps_pd(__m128 __a)
+{
+ return __builtin_ia32_cvtps2pd(__a);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi32_pd(__m128i __a)
+{
+ return __builtin_ia32_cvtdq2pd((__v4si)__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpd_epi32(__m128d __a)
+{
+ return __builtin_ia32_cvtpd2dq(__a);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsd_si32(__m128d __a)
+{
+ return __builtin_ia32_cvtsd2si(__a);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsd_ss(__m128 __a, __m128d __b)
+{
+ __a[0] = __b[0];
+ return __a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi32_sd(__m128d __a, int __b)
+{
+ __a[0] = __b;
+ return __a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cvtss_sd(__m128d __a, __m128 __b)
+{
+ __a[0] = __b[0];
+ return __a;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvttpd_epi32(__m128d __a)
+{
+ return (__m128i)__builtin_ia32_cvttpd2dq(__a);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvttsd_si32(__m128d __a)
+{
+ return __a[0];
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpd_pi32(__m128d __a)
+{
+ return (__m64)__builtin_ia32_cvtpd2pi(__a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvttpd_pi32(__m128d __a)
+{
+ return (__m64)__builtin_ia32_cvttpd2pi(__a);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpi32_pd(__m64 __a)
+{
+ return __builtin_ia32_cvtpi2pd((__v2si)__a);
+}
+
+static __inline__ double __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsd_f64(__m128d __a)
+{
+ return __a[0];
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_load_pd(double const *__dp)
+{
+ return *(__m128d*)__dp;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_load1_pd(double const *__dp)
+{
+ struct __mm_load1_pd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ double __u = ((struct __mm_load1_pd_struct*)__dp)->__u;
+ return (__m128d){ __u, __u };
+}
+
+#define _mm_load_pd1(dp) _mm_load1_pd(dp)
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_loadr_pd(double const *__dp)
+{
+ __m128d __u = *(__m128d*)__dp;
+ return __builtin_shufflevector(__u, __u, 1, 0);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_loadu_pd(double const *__dp)
+{
+ struct __loadu_pd {
+ __m128d __v;
+ } __attribute__((packed, may_alias));
+ return ((struct __loadu_pd*)__dp)->__v;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_load_sd(double const *__dp)
+{
+ struct __mm_load_sd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ double __u = ((struct __mm_load_sd_struct*)__dp)->__u;
+ return (__m128d){ __u, 0 };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_loadh_pd(__m128d __a, double const *__dp)
+{
+ struct __mm_loadh_pd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ double __u = ((struct __mm_loadh_pd_struct*)__dp)->__u;
+ return (__m128d){ __a[0], __u };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_loadl_pd(__m128d __a, double const *__dp)
+{
+ struct __mm_loadl_pd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ double __u = ((struct __mm_loadl_pd_struct*)__dp)->__u;
+ return (__m128d){ __u, __a[1] };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_set_sd(double __w)
+{
+ return (__m128d){ __w, 0 };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_set1_pd(double __w)
+{
+ return (__m128d){ __w, __w };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_set_pd(double __w, double __x)
+{
+ return (__m128d){ __x, __w };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_setr_pd(double __w, double __x)
+{
+ return (__m128d){ __w, __x };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_setzero_pd(void)
+{
+ return (__m128d){ 0, 0 };
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_move_sd(__m128d __a, __m128d __b)
+{
+ return (__m128d){ __b[0], __a[1] };
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store_sd(double *__dp, __m128d __a)
+{
+ struct __mm_store_sd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ ((struct __mm_store_sd_struct*)__dp)->__u = __a[0];
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store1_pd(double *__dp, __m128d __a)
+{
+ struct __mm_store1_pd_struct {
+ double __u[2];
+ } __attribute__((__packed__, __may_alias__));
+ ((struct __mm_store1_pd_struct*)__dp)->__u[0] = __a[0];
+ ((struct __mm_store1_pd_struct*)__dp)->__u[1] = __a[0];
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store_pd(double *__dp, __m128d __a)
+{
+ *(__m128d *)__dp = __a;
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storeu_pd(double *__dp, __m128d __a)
+{
+ __builtin_ia32_storeupd(__dp, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storer_pd(double *__dp, __m128d __a)
+{
+ __a = __builtin_shufflevector(__a, __a, 1, 0);
+ *(__m128d *)__dp = __a;
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storeh_pd(double *__dp, __m128d __a)
+{
+ struct __mm_storeh_pd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1];
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storel_pd(double *__dp, __m128d __a)
+{
+ struct __mm_storeh_pd_struct {
+ double __u;
+ } __attribute__((__packed__, __may_alias__));
+ ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0];
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_add_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v16qi)__a + (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_add_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v8hi)__a + (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_add_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v4si)__a + (__v4si)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_add_si64(__m64 __a, __m64 __b)
+{
+ return __a + __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_add_epi64(__m128i __a, __m128i __b)
+{
+ return __a + __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_adds_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_adds_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_adds_epu8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_adds_epu16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_avg_epu8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_avg_epu16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_madd_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_max_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_max_epu8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_min_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_min_epu8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mulhi_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mulhi_epu16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mullo_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v8hi)__a * (__v8hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_mul_su32(__m64 __a, __m64 __b)
+{
+ return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mul_epu32(__m128i __a, __m128i __b)
+{
+ return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sad_epu8(__m128i __a, __m128i __b)
+{
+ return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sub_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v16qi)__a - (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sub_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v8hi)__a - (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sub_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v4si)__a - (__v4si)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sub_si64(__m64 __a, __m64 __b)
+{
+ return __a - __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sub_epi64(__m128i __a, __m128i __b)
+{
+ return __a - __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_subs_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_subs_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_subs_epu8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_subs_epu16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_and_si128(__m128i __a, __m128i __b)
+{
+ return __a & __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_andnot_si128(__m128i __a, __m128i __b)
+{
+ return ~__a & __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_or_si128(__m128i __a, __m128i __b)
+{
+ return __a | __b;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_xor_si128(__m128i __a, __m128i __b)
+{
+ return __a ^ __b;
+}
+
+#define _mm_slli_si128(a, count) __extension__ ({ \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\""); \
+ __m128i __a = (a); \
+ _Pragma("clang diagnostic pop"); \
+ (__m128i)__builtin_ia32_pslldqi128(__a, (count)*8); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_slli_epi16(__m128i __a, int __count)
+{
+ return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sll_epi16(__m128i __a, __m128i __count)
+{
+ return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_slli_epi32(__m128i __a, int __count)
+{
+ return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sll_epi32(__m128i __a, __m128i __count)
+{
+ return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_slli_epi64(__m128i __a, int __count)
+{
+ return __builtin_ia32_psllqi128(__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sll_epi64(__m128i __a, __m128i __count)
+{
+ return __builtin_ia32_psllq128(__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srai_epi16(__m128i __a, int __count)
+{
+ return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sra_epi16(__m128i __a, __m128i __count)
+{
+ return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srai_epi32(__m128i __a, int __count)
+{
+ return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sra_epi32(__m128i __a, __m128i __count)
+{
+ return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count);
+}
+
+
+#define _mm_srli_si128(a, count) __extension__ ({ \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\""); \
+ __m128i __a = (a); \
+ _Pragma("clang diagnostic pop"); \
+ (__m128i)__builtin_ia32_psrldqi128(__a, (count)*8); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srli_epi16(__m128i __a, int __count)
+{
+ return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srl_epi16(__m128i __a, __m128i __count)
+{
+ return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srli_epi32(__m128i __a, int __count)
+{
+ return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srl_epi32(__m128i __a, __m128i __count)
+{
+ return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srli_epi64(__m128i __a, int __count)
+{
+ return __builtin_ia32_psrlqi128(__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_srl_epi64(__m128i __a, __m128i __count)
+{
+ return __builtin_ia32_psrlq128(__a, __count);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v16qi)__a == (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v8hi)__a == (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v4si)__a == (__v4si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_epi8(__m128i __a, __m128i __b)
+{
+ /* This function always performs a signed comparison, but __v16qi is a char
+ which may be signed or unsigned. */
+ typedef signed char __v16qs __attribute__((__vector_size__(16)));
+ return (__m128i)((__v16qs)__a > (__v16qs)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v8hi)__a > (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)((__v4si)__a > (__v4si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_epi8(__m128i __a, __m128i __b)
+{
+ return _mm_cmpgt_epi8(__b, __a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_epi16(__m128i __a, __m128i __b)
+{
+ return _mm_cmpgt_epi16(__b, __a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_epi32(__m128i __a, __m128i __b)
+{
+ return _mm_cmpgt_epi32(__b, __a);
+}
+
+#ifdef __x86_64__
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi64_sd(__m128d __a, long long __b)
+{
+ __a[0] = __b;
+ return __a;
+}
+
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsd_si64(__m128d __a)
+{
+ return __builtin_ia32_cvtsd2si64(__a);
+}
+
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_cvttsd_si64(__m128d __a)
+{
+ return __a[0];
+}
+#endif
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi32_ps(__m128i __a)
+{
+ return __builtin_ia32_cvtdq2ps((__v4si)__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtps_epi32(__m128 __a)
+{
+ return (__m128i)__builtin_ia32_cvtps2dq(__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvttps_epi32(__m128 __a)
+{
+ return (__m128i)__builtin_ia32_cvttps2dq(__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi32_si128(int __a)
+{
+ return (__m128i)(__v4si){ __a, 0, 0, 0 };
+}
+
+#ifdef __x86_64__
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi64_si128(long long __a)
+{
+ return (__m128i){ __a, 0 };
+}
+#endif
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi128_si32(__m128i __a)
+{
+ __v4si __b = (__v4si)__a;
+ return __b[0];
+}
+
+#ifdef __x86_64__
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi128_si64(__m128i __a)
+{
+ return __a[0];
+}
+#endif
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_load_si128(__m128i const *__p)
+{
+ return *__p;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_loadu_si128(__m128i const *__p)
+{
+ struct __loadu_si128 {
+ __m128i __v;
+ } __attribute__((packed, may_alias));
+ return ((struct __loadu_si128*)__p)->__v;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_loadl_epi64(__m128i const *__p)
+{
+ struct __mm_loadl_epi64_struct {
+ long long __u;
+ } __attribute__((__packed__, __may_alias__));
+ return (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0};
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set_epi64x(long long q1, long long q0)
+{
+ return (__m128i){ q0, q1 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set_epi64(__m64 q1, __m64 q0)
+{
+ return (__m128i){ (long long)q0, (long long)q1 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set_epi32(int i3, int i2, int i1, int i0)
+{
+ return (__m128i)(__v4si){ i0, i1, i2, i3};
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set_epi16(short w7, short w6, short w5, short w4, short w3, short w2, short w1, short w0)
+{
+ return (__m128i)(__v8hi){ w0, w1, w2, w3, w4, w5, w6, w7 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set_epi8(char b15, char b14, char b13, char b12, char b11, char b10, char b9, char b8, char b7, char b6, char b5, char b4, char b3, char b2, char b1, char b0)
+{
+ return (__m128i)(__v16qi){ b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set1_epi64x(long long __q)
+{
+ return (__m128i){ __q, __q };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set1_epi64(__m64 __q)
+{
+ return (__m128i){ (long long)__q, (long long)__q };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set1_epi32(int __i)
+{
+ return (__m128i)(__v4si){ __i, __i, __i, __i };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set1_epi16(short __w)
+{
+ return (__m128i)(__v8hi){ __w, __w, __w, __w, __w, __w, __w, __w };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_set1_epi8(char __b)
+{
+ return (__m128i)(__v16qi){ __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_setr_epi64(__m64 q0, __m64 q1)
+{
+ return (__m128i){ (long long)q0, (long long)q1 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_setr_epi32(int i0, int i1, int i2, int i3)
+{
+ return (__m128i)(__v4si){ i0, i1, i2, i3};
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_setr_epi16(short w0, short w1, short w2, short w3, short w4, short w5, short w6, short w7)
+{
+ return (__m128i)(__v8hi){ w0, w1, w2, w3, w4, w5, w6, w7 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_setr_epi8(char b0, char b1, char b2, char b3, char b4, char b5, char b6, char b7, char b8, char b9, char b10, char b11, char b12, char b13, char b14, char b15)
+{
+ return (__m128i)(__v16qi){ b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_setzero_si128(void)
+{
+ return (__m128i){ 0LL, 0LL };
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store_si128(__m128i *__p, __m128i __b)
+{
+ *__p = __b;
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storeu_si128(__m128i *__p, __m128i __b)
+{
+ __builtin_ia32_storedqu((char *)__p, (__v16qi)__b);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p)
+{
+ __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storel_epi64(__m128i *__p, __m128i __a)
+{
+ struct __mm_storel_epi64_struct {
+ long long __u;
+ } __attribute__((__packed__, __may_alias__));
+ ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0];
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_pd(double *__p, __m128d __a)
+{
+ __builtin_ia32_movntpd(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_si128(__m128i *__p, __m128i __a)
+{
+ __builtin_ia32_movntdq(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_si32(int *__p, int __a)
+{
+ __builtin_ia32_movnti(__p, __a);
+}
+
+#ifdef __x86_64__
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_si64(long long *__p, long long __a)
+{
+ __builtin_ia32_movnti64(__p, __a);
+}
+#endif
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_clflush(void const *__p)
+{
+ __builtin_ia32_clflush(__p);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_lfence(void)
+{
+ __builtin_ia32_lfence();
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_mfence(void)
+{
+ __builtin_ia32_mfence();
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_packs_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_packs_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_packus_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_extract_epi16(__m128i __a, int __imm)
+{
+ __v8hi __b = (__v8hi)__a;
+ return (unsigned short)__b[__imm & 7];
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_insert_epi16(__m128i __a, int __b, int __imm)
+{
+ __v8hi __c = (__v8hi)__a;
+ __c[__imm & 7] = __b;
+ return (__m128i)__c;
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_movemask_epi8(__m128i __a)
+{
+ return __builtin_ia32_pmovmskb128((__v16qi)__a);
+}
+
+#define _mm_shuffle_epi32(a, imm) __extension__ ({ \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\""); \
+ __m128i __a = (a); \
+ _Pragma("clang diagnostic pop"); \
+ (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si) _mm_set1_epi32(0), \
+ (imm) & 0x3, ((imm) & 0xc) >> 2, \
+ ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6); })
+
+#define _mm_shufflelo_epi16(a, imm) __extension__ ({ \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\""); \
+ __m128i __a = (a); \
+ _Pragma("clang diagnostic pop"); \
+ (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi) _mm_set1_epi16(0), \
+ (imm) & 0x3, ((imm) & 0xc) >> 2, \
+ ((imm) & 0x30) >> 4, ((imm) & 0xc0) >> 6, \
+ 4, 5, 6, 7); })
+
+#define _mm_shufflehi_epi16(a, imm) __extension__ ({ \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\""); \
+ __m128i __a = (a); \
+ _Pragma("clang diagnostic pop"); \
+ (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi) _mm_set1_epi16(0), \
+ 0, 1, 2, 3, \
+ 4 + (((imm) & 0x03) >> 0), \
+ 4 + (((imm) & 0x0c) >> 2), \
+ 4 + (((imm) & 0x30) >> 4), \
+ 4 + (((imm) & 0xc0) >> 6)); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_epi64(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector(__a, __b, 1, 2+1);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_epi64(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_shufflevector(__a, __b, 0, 2+0);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_movepi64_pi64(__m128i __a)
+{
+ return (__m64)__a[0];
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_movpi64_epi64(__m64 __a)
+{
+ return (__m128i){ (long long)__a, 0 };
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_move_epi64(__m128i __a)
+{
+ return __builtin_shufflevector(__a, (__m128i){ 0 }, 0, 2);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_shufflevector(__a, __b, 1, 2+1);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_shufflevector(__a, __b, 0, 2+0);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_movemask_pd(__m128d __a)
+{
+ return __builtin_ia32_movmskpd(__a);
+}
+
+#define _mm_shuffle_pd(a, b, i) __extension__ ({ \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wshadow\""); \
+ __m128d __a = (a); \
+ __m128d __b = (b); \
+ _Pragma("clang diagnostic pop"); \
+ __builtin_shufflevector(__a, __b, (i) & 1, (((i) & 2) >> 1) + 2); })
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_castpd_ps(__m128d __a)
+{
+ return (__m128)__a;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_castpd_si128(__m128d __a)
+{
+ return (__m128i)__a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_castps_pd(__m128 __a)
+{
+ return (__m128d)__a;
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_castps_si128(__m128 __a)
+{
+ return (__m128i)__a;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_castsi128_ps(__m128i __a)
+{
+ return (__m128)__a;
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_castsi128_pd(__m128i __a)
+{
+ return (__m128d)__a;
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_pause(void)
+{
+ __asm__ volatile ("pause");
+}
+
+#define _MM_SHUFFLE2(x, y) (((x) << 1) | (y))
+
+#endif /* __SSE2__ */
+
+#endif /* __EMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/f16cintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/f16cintrin.h
new file mode 100755
index 0000000..f3614c0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/f16cintrin.h
@@ -0,0 +1,58 @@
+/*===---- f16cintrin.h - F16C intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __F16C__
+# error "F16C instruction is not enabled"
+#endif /* __F16C__ */
+
+#ifndef __F16CINTRIN_H
+#define __F16CINTRIN_H
+
+typedef float __v8sf __attribute__ ((__vector_size__ (32)));
+typedef float __m256 __attribute__ ((__vector_size__ (32)));
+
+#define _mm_cvtps_ph(a, imm) __extension__ ({ \
+ __m128 __a = (a); \
+ (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)__a, (imm)); })
+
+#define _mm256_cvtps_ph(a, imm) __extension__ ({ \
+ __m256 __a = (a); \
+ (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)__a, (imm)); })
+
+static __inline __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtph_ps(__m128i __a)
+{
+ return (__m128)__builtin_ia32_vcvtph2ps((__v8hi)__a);
+}
+
+static __inline __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_cvtph_ps(__m128i __a)
+{
+ return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a);
+}
+
+#endif /* __F16CINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/float.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/float.h
new file mode 100755
index 0000000..2cb13d3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/float.h
@@ -0,0 +1,124 @@
+/*===---- float.h - Characteristics of floating point types ----------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __FLOAT_H
+#define __FLOAT_H
+
+/* If we're on MinGW, fall back to the system's float.h, which might have
+ * additional definitions provided for Windows.
+ * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
+ */
+#if (defined(__MINGW32__) || defined(_MSC_VER)) && \
+ defined(__has_include_next) && __has_include_next()
+# include_next
+
+/* Undefine anything that we'll be redefining below. */
+# undef FLT_EVAL_METHOD
+# undef FLT_ROUNDS
+# undef FLT_RADIX
+# undef FLT_MANT_DIG
+# undef DBL_MANT_DIG
+# undef LDBL_MANT_DIG
+# undef DECIMAL_DIG
+# undef FLT_DIG
+# undef DBL_DIG
+# undef LDBL_DIG
+# undef FLT_MIN_EXP
+# undef DBL_MIN_EXP
+# undef LDBL_MIN_EXP
+# undef FLT_MIN_10_EXP
+# undef DBL_MIN_10_EXP
+# undef LDBL_MIN_10_EXP
+# undef FLT_MAX_EXP
+# undef DBL_MAX_EXP
+# undef LDBL_MAX_EXP
+# undef FLT_MAX_10_EXP
+# undef DBL_MAX_10_EXP
+# undef LDBL_MAX_10_EXP
+# undef FLT_MAX
+# undef DBL_MAX
+# undef LDBL_MAX
+# undef FLT_EPSILON
+# undef DBL_EPSILON
+# undef LDBL_EPSILON
+# undef FLT_MIN
+# undef DBL_MIN
+# undef LDBL_MIN
+# if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
+# undef FLT_TRUE_MIN
+# undef DBL_TRUE_MIN
+# undef LDBL_TRUE_MIN
+# endif
+#endif
+
+/* Characteristics of floating point types, C99 5.2.4.2.2 */
+
+#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
+#define FLT_ROUNDS (__builtin_flt_rounds())
+#define FLT_RADIX __FLT_RADIX__
+
+#define FLT_MANT_DIG __FLT_MANT_DIG__
+#define DBL_MANT_DIG __DBL_MANT_DIG__
+#define LDBL_MANT_DIG __LDBL_MANT_DIG__
+
+#define DECIMAL_DIG __DECIMAL_DIG__
+
+#define FLT_DIG __FLT_DIG__
+#define DBL_DIG __DBL_DIG__
+#define LDBL_DIG __LDBL_DIG__
+
+#define FLT_MIN_EXP __FLT_MIN_EXP__
+#define DBL_MIN_EXP __DBL_MIN_EXP__
+#define LDBL_MIN_EXP __LDBL_MIN_EXP__
+
+#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
+#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
+#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
+
+#define FLT_MAX_EXP __FLT_MAX_EXP__
+#define DBL_MAX_EXP __DBL_MAX_EXP__
+#define LDBL_MAX_EXP __LDBL_MAX_EXP__
+
+#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
+#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
+#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
+
+#define FLT_MAX __FLT_MAX__
+#define DBL_MAX __DBL_MAX__
+#define LDBL_MAX __LDBL_MAX__
+
+#define FLT_EPSILON __FLT_EPSILON__
+#define DBL_EPSILON __DBL_EPSILON__
+#define LDBL_EPSILON __LDBL_EPSILON__
+
+#define FLT_MIN __FLT_MIN__
+#define DBL_MIN __DBL_MIN__
+#define LDBL_MIN __LDBL_MIN__
+
+#if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
+# define FLT_TRUE_MIN __FLT_DENORM_MIN__
+# define DBL_TRUE_MIN __DBL_DENORM_MIN__
+# define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
+#endif
+
+#endif /* __FLOAT_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/fma4intrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/fma4intrin.h
new file mode 100755
index 0000000..c30920d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/fma4intrin.h
@@ -0,0 +1,231 @@
+/*===---- fma4intrin.h - FMA4 intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __X86INTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __FMA4INTRIN_H
+#define __FMA4INTRIN_H
+
+#ifndef __FMA4__
+# error "FMA4 instruction set is not enabled"
+#else
+
+#include
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_macc_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_macc_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_macc_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_macc_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_msub_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_msub_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_msub_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_msub_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_nmacc_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_nmacc_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_nmacc_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_nmacc_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_nmsub_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_nmsub_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_nmsub_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_nmsub_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_maddsub_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_maddsub_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_msubadd_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_msubadd_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_macc_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_macc_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_msub_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_msub_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_nmacc_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_nmacc_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_nmsub_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_nmsub_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_maddsub_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_maddsub_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_msubadd_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_msubadd_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
+}
+
+#endif /* __FMA4__ */
+
+#endif /* __FMA4INTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/fmaintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/fmaintrin.h
new file mode 100755
index 0000000..6bfd5a8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/fmaintrin.h
@@ -0,0 +1,229 @@
+/*===---- fma4intrin.h - FMA4 intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __FMAINTRIN_H
+#define __FMAINTRIN_H
+
+#ifndef __FMA__
+# error "FMA instruction set is not enabled"
+#else
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmaddps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmaddpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmaddss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmaddsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmsubps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmsubpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmsubss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmsubsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmaddps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmaddpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmaddss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmaddsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmsubps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmsubpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfnmsubss(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfnmsubsd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmaddsubps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmaddsubpd(__A, __B, __C);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C)
+{
+ return (__m128)__builtin_ia32_vfmsubaddps(__A, __B, __C);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C)
+{
+ return (__m128d)__builtin_ia32_vfmsubaddpd(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmaddps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmaddpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmsubps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmsubpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfnmaddps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfnmaddpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfnmsubps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfnmsubpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmaddsubps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmaddsubpd256(__A, __B, __C);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C)
+{
+ return (__m256)__builtin_ia32_vfmsubaddps256(__A, __B, __C);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C)
+{
+ return (__m256d)__builtin_ia32_vfmsubaddpd256(__A, __B, __C);
+}
+
+#endif /* __FMA__ */
+
+#endif /* __FMAINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/immintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/immintrin.h
new file mode 100755
index 0000000..15d6e05
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/immintrin.h
@@ -0,0 +1,118 @@
+/*===---- immintrin.h - Intel intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __IMMINTRIN_H
+#define __IMMINTRIN_H
+
+#ifdef __MMX__
+#include
+#endif
+
+#ifdef __SSE__
+#include
+#endif
+
+#ifdef __SSE2__
+#include
+#endif
+
+#ifdef __SSE3__
+#include
+#endif
+
+#ifdef __SSSE3__
+#include
+#endif
+
+#if defined (__SSE4_2__) || defined (__SSE4_1__)
+#include
+#endif
+
+#if defined (__AES__)
+#include
+#endif
+
+#ifdef __AVX__
+#include
+#endif
+
+#ifdef __AVX2__
+#include
+#endif
+
+#ifdef __BMI__
+#include
+#endif
+
+#ifdef __BMI2__
+#include
+#endif
+
+#ifdef __LZCNT__
+#include
+#endif
+
+#ifdef __FMA__
+#include
+#endif
+
+#ifdef __RDRND__
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_rdrand16_step(unsigned short *__p)
+{
+ return __builtin_ia32_rdrand16_step(__p);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_rdrand32_step(unsigned int *__p)
+{
+ return __builtin_ia32_rdrand32_step(__p);
+}
+
+#ifdef __x86_64__
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_rdrand64_step(unsigned long long *__p)
+{
+ return __builtin_ia32_rdrand64_step(__p);
+}
+#endif
+#endif /* __RDRND__ */
+
+#ifdef __RTM__
+#include
+#endif
+
+/* FIXME: check __HLE__ as well when HLE is supported. */
+#if defined (__RTM__)
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_xtest(void)
+{
+ return __builtin_ia32_xtest();
+}
+#endif
+
+#ifdef __SHA__
+#include
+#endif
+
+#endif /* __IMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/iso646.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/iso646.h
new file mode 100755
index 0000000..dca13c5
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/iso646.h
@@ -0,0 +1,43 @@
+/*===---- iso646.h - Standard header for alternate spellings of operators---===
+ *
+ * Copyright (c) 2008 Eli Friedman
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __ISO646_H
+#define __ISO646_H
+
+#ifndef __cplusplus
+#define and &&
+#define and_eq &=
+#define bitand &
+#define bitor |
+#define compl ~
+#define not !
+#define not_eq !=
+#define or ||
+#define or_eq |=
+#define xor ^
+#define xor_eq ^=
+#endif
+
+#endif /* __ISO646_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/limits.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/limits.h
new file mode 100755
index 0000000..91bd404
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/limits.h
@@ -0,0 +1,119 @@
+/*===---- limits.h - Standard header for integer sizes --------------------===*\
+ *
+ * Copyright (c) 2009 Chris Lattner
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+\*===----------------------------------------------------------------------===*/
+
+#ifndef __CLANG_LIMITS_H
+#define __CLANG_LIMITS_H
+
+/* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
+ Avert this #include_next madness. */
+#if defined __GNUC__ && !defined _GCC_LIMITS_H_
+#define _GCC_LIMITS_H_
+#endif
+
+/* System headers include a number of constants from POSIX in .
+ Include it if we're hosted. */
+#if __STDC_HOSTED__ && \
+ defined(__has_include_next) && __has_include_next()
+#include_next
+#endif
+
+/* Many system headers try to "help us out" by defining these. No really, we
+ know how big each datatype is. */
+#undef SCHAR_MIN
+#undef SCHAR_MAX
+#undef UCHAR_MAX
+#undef SHRT_MIN
+#undef SHRT_MAX
+#undef USHRT_MAX
+#undef INT_MIN
+#undef INT_MAX
+#undef UINT_MAX
+#undef LONG_MIN
+#undef LONG_MAX
+#undef ULONG_MAX
+
+#undef CHAR_BIT
+#undef CHAR_MIN
+#undef CHAR_MAX
+
+/* C90/99 5.2.4.2.1 */
+#define SCHAR_MAX __SCHAR_MAX__
+#define SHRT_MAX __SHRT_MAX__
+#define INT_MAX __INT_MAX__
+#define LONG_MAX __LONG_MAX__
+
+#define SCHAR_MIN (-__SCHAR_MAX__-1)
+#define SHRT_MIN (-__SHRT_MAX__ -1)
+#define INT_MIN (-__INT_MAX__ -1)
+#define LONG_MIN (-__LONG_MAX__ -1L)
+
+#define UCHAR_MAX (__SCHAR_MAX__*2 +1)
+#define USHRT_MAX (__SHRT_MAX__ *2 +1)
+#define UINT_MAX (__INT_MAX__ *2U +1U)
+#define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 1
+#endif
+
+#define CHAR_BIT __CHAR_BIT__
+
+#ifdef __CHAR_UNSIGNED__ /* -funsigned-char */
+#define CHAR_MIN 0
+#define CHAR_MAX UCHAR_MAX
+#else
+#define CHAR_MIN SCHAR_MIN
+#define CHAR_MAX __SCHAR_MAX__
+#endif
+
+/* C99 5.2.4.2.1: Added long long.
+ C++11 18.3.3.2: same contents as the Standard C Library header .
+ */
+#if __STDC_VERSION__ >= 199901 || __cplusplus >= 201103L
+
+#undef LLONG_MIN
+#undef LLONG_MAX
+#undef ULLONG_MAX
+
+#define LLONG_MAX __LONG_LONG_MAX__
+#define LLONG_MIN (-__LONG_LONG_MAX__-1LL)
+#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
+#endif
+
+/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad
+ that we don't have something like #pragma poison that could be used to
+ deprecate a macro - the code should just use LLONG_MAX and friends.
+ */
+#if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__)
+
+#undef LONG_LONG_MIN
+#undef LONG_LONG_MAX
+#undef ULONG_LONG_MAX
+
+#define LONG_LONG_MAX __LONG_LONG_MAX__
+#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL)
+#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
+#endif
+
+#endif /* __CLANG_LIMITS_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/lzcntintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/lzcntintrin.h
new file mode 100755
index 0000000..62ab5ca
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/lzcntintrin.h
@@ -0,0 +1,55 @@
+/*===---- lzcntintrin.h - LZCNT intrinsics ---------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __LZCNT__
+# error "LZCNT instruction is not enabled"
+#endif /* __LZCNT__ */
+
+#ifndef __LZCNTINTRIN_H
+#define __LZCNTINTRIN_H
+
+static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__))
+__lzcnt16(unsigned short __X)
+{
+ return __builtin_clzs(__X);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__lzcnt32(unsigned int __X)
+{
+ return __builtin_clz(__X);
+}
+
+#ifdef __x86_64__
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+__lzcnt64(unsigned long long __X)
+{
+ return __builtin_clzll(__X);
+}
+#endif
+
+#endif /* __LZCNTINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mm3dnow.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mm3dnow.h
new file mode 100755
index 0000000..5242d99
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mm3dnow.h
@@ -0,0 +1,162 @@
+/*===---- mm3dnow.h - 3DNow! intrinsics ------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef _MM3DNOW_H_INCLUDED
+#define _MM3DNOW_H_INCLUDED
+
+#include
+#include
+
+typedef float __v2sf __attribute__((__vector_size__(8)));
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_m_femms() {
+ __builtin_ia32_femms();
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pavgusb(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pavgusb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pf2id(__m64 __m) {
+ return (__m64)__builtin_ia32_pf2id((__v2sf)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfacc(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfacc((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfadd(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfadd((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfcmpeq(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfcmpeq((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfcmpge(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfcmpge((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfcmpgt(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfcmpgt((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfmax(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfmax((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfmin(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfmin((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfmul(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfmul((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfrcp(__m64 __m) {
+ return (__m64)__builtin_ia32_pfrcp((__v2sf)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfrcpit1(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfrcpit1((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfrcpit2(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfrcpit2((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfrsqrt(__m64 __m) {
+ return (__m64)__builtin_ia32_pfrsqrt((__v2sf)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfrsqrtit1(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfrsqit1((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfsub(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfsub((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfsubr(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfsubr((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pi2fd(__m64 __m) {
+ return (__m64)__builtin_ia32_pi2fd((__v2si)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pmulhrw(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pmulhrw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pf2iw(__m64 __m) {
+ return (__m64)__builtin_ia32_pf2iw((__v2sf)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfnacc(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfnacc((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pfpnacc(__m64 __m1, __m64 __m2) {
+ return (__m64)__builtin_ia32_pfpnacc((__v2sf)__m1, (__v2sf)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pi2fw(__m64 __m) {
+ return (__m64)__builtin_ia32_pi2fw((__v2si)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pswapdsf(__m64 __m) {
+ return (__m64)__builtin_ia32_pswapdsf((__v2sf)__m);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_m_pswapdsi(__m64 __m) {
+ return (__m64)__builtin_ia32_pswapdsi((__v2si)__m);
+}
+
+#endif
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mm_malloc.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mm_malloc.h
new file mode 100755
index 0000000..305afd3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mm_malloc.h
@@ -0,0 +1,75 @@
+/*===---- mm_malloc.h - Allocating and Freeing Aligned Memory Blocks -------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __MM_MALLOC_H
+#define __MM_MALLOC_H
+
+#include
+
+#ifdef _WIN32
+#include
+#else
+#ifndef __cplusplus
+extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
+#else
+// Some systems (e.g. those with GNU libc) declare posix_memalign with an
+// exception specifier. Via an "egregious workaround" in
+// Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid
+// redeclaration of glibc's declaration.
+extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
+#endif
+#endif
+
+#if !(defined(_WIN32) && defined(_mm_malloc))
+static __inline__ void *__attribute__((__always_inline__, __nodebug__,
+ __malloc__))
+_mm_malloc(size_t __size, size_t __align)
+{
+ if (__align == 1) {
+ return malloc(__size);
+ }
+
+ if (!(__align & (__align - 1)) && __align < sizeof(void *))
+ __align = sizeof(void *);
+
+ void *__mallocedMemory;
+#if defined(__MINGW32__)
+ __mallocedMemory = __mingw_aligned_malloc(__size, __align);
+#elif defined(_WIN32)
+ __mallocedMemory = _aligned_malloc(__size, __align);
+#else
+ if (posix_memalign(&__mallocedMemory, __align, __size))
+ return 0;
+#endif
+
+ return __mallocedMemory;
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_free(void *__p)
+{
+ free(__p);
+}
+#endif
+
+#endif /* __MM_MALLOC_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mmintrin.h
new file mode 100755
index 0000000..986870a
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/mmintrin.h
@@ -0,0 +1,503 @@
+/*===---- mmintrin.h - MMX intrinsics --------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __MMINTRIN_H
+#define __MMINTRIN_H
+
+#ifndef __MMX__
+#error "MMX instruction set not enabled"
+#else
+
+typedef long long __m64 __attribute__((__vector_size__(8)));
+
+typedef int __v2si __attribute__((__vector_size__(8)));
+typedef short __v4hi __attribute__((__vector_size__(8)));
+typedef char __v8qi __attribute__((__vector_size__(8)));
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_empty(void)
+{
+ __builtin_ia32_emms();
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi32_si64(int __i)
+{
+ return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi64_si32(__m64 __m)
+{
+ return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi64_m64(long long __i)
+{
+ return (__m64)__i;
+}
+
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_cvtm64_si64(__m64 __m)
+{
+ return (long long)__m;
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_packs_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_packs_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_packs_pu16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_add_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_add_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_add_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_adds_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_adds_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_adds_pu8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_adds_pu16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sub_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sub_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sub_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_subs_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_subs_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_subs_pu8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_subs_pu16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_madd_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_mulhi_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_mullo_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sll_pi16(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_slli_pi16(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sll_pi32(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_pslld((__v2si)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_slli_pi32(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sll_si64(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psllq(__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_slli_si64(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psllqi(__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sra_pi16(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srai_pi16(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sra_pi32(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psrad((__v2si)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srai_pi32(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psradi((__v2si)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srl_pi16(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srli_pi16(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srl_pi32(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psrld((__v2si)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srli_pi32(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srl_si64(__m64 __m, __m64 __count)
+{
+ return (__m64)__builtin_ia32_psrlq(__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_srli_si64(__m64 __m, int __count)
+{
+ return (__m64)__builtin_ia32_psrlqi(__m, __count);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_and_si64(__m64 __m1, __m64 __m2)
+{
+ return __builtin_ia32_pand(__m1, __m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_andnot_si64(__m64 __m1, __m64 __m2)
+{
+ return __builtin_ia32_pandn(__m1, __m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_or_si64(__m64 __m1, __m64 __m2)
+{
+ return __builtin_ia32_por(__m1, __m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_xor_si64(__m64 __m1, __m64 __m2)
+{
+ return __builtin_ia32_pxor(__m1, __m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
+{
+ return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_setzero_si64(void)
+{
+ return (__m64){ 0LL };
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_set_pi32(int __i1, int __i0)
+{
+ return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
+{
+ return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
+ char __b1, char __b0)
+{
+ return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3,
+ __b4, __b5, __b6, __b7);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_set1_pi32(int __i)
+{
+ return _mm_set_pi32(__i, __i);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_set1_pi16(short __w)
+{
+ return _mm_set_pi16(__w, __w, __w, __w);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_set1_pi8(char __b)
+{
+ return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_setr_pi32(int __i0, int __i1)
+{
+ return _mm_set_pi32(__i1, __i0);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
+{
+ return _mm_set_pi16(__w3, __w2, __w1, __w0);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
+ char __b6, char __b7)
+{
+ return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
+}
+
+
+/* Aliases for compatibility. */
+#define _m_empty _mm_empty
+#define _m_from_int _mm_cvtsi32_si64
+#define _m_to_int _mm_cvtsi64_si32
+#define _m_packsswb _mm_packs_pi16
+#define _m_packssdw _mm_packs_pi32
+#define _m_packuswb _mm_packs_pu16
+#define _m_punpckhbw _mm_unpackhi_pi8
+#define _m_punpckhwd _mm_unpackhi_pi16
+#define _m_punpckhdq _mm_unpackhi_pi32
+#define _m_punpcklbw _mm_unpacklo_pi8
+#define _m_punpcklwd _mm_unpacklo_pi16
+#define _m_punpckldq _mm_unpacklo_pi32
+#define _m_paddb _mm_add_pi8
+#define _m_paddw _mm_add_pi16
+#define _m_paddd _mm_add_pi32
+#define _m_paddsb _mm_adds_pi8
+#define _m_paddsw _mm_adds_pi16
+#define _m_paddusb _mm_adds_pu8
+#define _m_paddusw _mm_adds_pu16
+#define _m_psubb _mm_sub_pi8
+#define _m_psubw _mm_sub_pi16
+#define _m_psubd _mm_sub_pi32
+#define _m_psubsb _mm_subs_pi8
+#define _m_psubsw _mm_subs_pi16
+#define _m_psubusb _mm_subs_pu8
+#define _m_psubusw _mm_subs_pu16
+#define _m_pmaddwd _mm_madd_pi16
+#define _m_pmulhw _mm_mulhi_pi16
+#define _m_pmullw _mm_mullo_pi16
+#define _m_psllw _mm_sll_pi16
+#define _m_psllwi _mm_slli_pi16
+#define _m_pslld _mm_sll_pi32
+#define _m_pslldi _mm_slli_pi32
+#define _m_psllq _mm_sll_si64
+#define _m_psllqi _mm_slli_si64
+#define _m_psraw _mm_sra_pi16
+#define _m_psrawi _mm_srai_pi16
+#define _m_psrad _mm_sra_pi32
+#define _m_psradi _mm_srai_pi32
+#define _m_psrlw _mm_srl_pi16
+#define _m_psrlwi _mm_srli_pi16
+#define _m_psrld _mm_srl_pi32
+#define _m_psrldi _mm_srli_pi32
+#define _m_psrlq _mm_srl_si64
+#define _m_psrlqi _mm_srli_si64
+#define _m_pand _mm_and_si64
+#define _m_pandn _mm_andnot_si64
+#define _m_por _mm_or_si64
+#define _m_pxor _mm_xor_si64
+#define _m_pcmpeqb _mm_cmpeq_pi8
+#define _m_pcmpeqw _mm_cmpeq_pi16
+#define _m_pcmpeqd _mm_cmpeq_pi32
+#define _m_pcmpgtb _mm_cmpgt_pi8
+#define _m_pcmpgtw _mm_cmpgt_pi16
+#define _m_pcmpgtd _mm_cmpgt_pi32
+
+#endif /* __MMX__ */
+
+#endif /* __MMINTRIN_H */
+
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/module.map b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/module.map
new file mode 100755
index 0000000..9f7944d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/module.map
@@ -0,0 +1,156 @@
+module _Builtin_intrinsics [system] {
+ explicit module altivec {
+ requires altivec
+ header "altivec.h"
+ }
+
+ explicit module arm {
+ requires arm
+
+ explicit module neon {
+ requires neon
+ header "arm_neon.h"
+ export *
+ }
+ }
+
+ explicit module intel {
+ requires x86
+ export *
+
+ header "immintrin.h"
+ header "x86intrin.h"
+
+ explicit module mm_malloc {
+ header "mm_malloc.h"
+ export * // note: for dependency
+ }
+
+ explicit module cpuid {
+ requires x86
+ header "cpuid.h"
+ }
+
+ explicit module mmx {
+ requires mmx
+ header "mmintrin.h"
+ }
+
+ explicit module f16c {
+ requires f16c
+ header "f16cintrin.h"
+ }
+
+ explicit module sse {
+ requires sse
+ export mmx
+ export * // note: for hackish dependency
+ header "xmmintrin.h"
+ }
+
+ explicit module sse2 {
+ requires sse2
+ export sse
+ header "emmintrin.h"
+ }
+
+ explicit module sse3 {
+ requires sse3
+ export sse2
+ header "pmmintrin.h"
+ }
+
+ explicit module ssse3 {
+ requires ssse3
+ export sse3
+ header "tmmintrin.h"
+ }
+
+ explicit module sse4_1 {
+ requires sse41
+ export ssse3
+ header "smmintrin.h"
+ }
+
+ explicit module sse4_2 {
+ requires sse42
+ export sse4_1
+ header "nmmintrin.h"
+ }
+
+ explicit module sse4a {
+ requires sse4a
+ export sse3
+ header "ammintrin.h"
+ }
+
+ explicit module avx {
+ requires avx
+ export sse4_2
+ header "avxintrin.h"
+ }
+
+ explicit module avx2 {
+ requires avx2
+ export avx
+ header "avx2intrin.h"
+ }
+
+ explicit module bmi {
+ requires bmi
+ header "bmiintrin.h"
+ }
+
+ explicit module bmi2 {
+ requires bmi2
+ header "bmi2intrin.h"
+ }
+
+ explicit module fma {
+ requires fma
+ header "fmaintrin.h"
+ }
+
+ explicit module fma4 {
+ requires fma4
+ export sse3
+ header "fma4intrin.h"
+ }
+
+ explicit module lzcnt {
+ requires lzcnt
+ header "lzcntintrin.h"
+ }
+
+ explicit module popcnt {
+ requires popcnt
+ header "popcntintrin.h"
+ }
+
+ explicit module mm3dnow {
+ requires mm3dnow
+ header "mm3dnow.h"
+ }
+
+ explicit module xop {
+ requires xop
+ export fma4
+ header "xopintrin.h"
+ }
+
+ explicit module aes_pclmul {
+ requires aes, pclmul
+ header "wmmintrin.h"
+ }
+
+ explicit module aes {
+ requires aes
+ header "__wmmintrin_aes.h"
+ }
+
+ explicit module pclmul {
+ requires pclmul
+ header "__wmmintrin_pclmul.h"
+ }
+ }
+}
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/nmmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/nmmintrin.h
new file mode 100755
index 0000000..f12622d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/nmmintrin.h
@@ -0,0 +1,35 @@
+/*===---- nmmintrin.h - SSE4 intrinsics ------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef _NMMINTRIN_H
+#define _NMMINTRIN_H
+
+#ifndef __SSE4_2__
+#error "SSE4.2 instruction set not enabled"
+#else
+
+/* To match expectations of gcc we put the sse4.2 definitions into smmintrin.h,
+ just include it now then. */
+#include
+#endif /* __SSE4_2__ */
+#endif /* _NMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/pmmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/pmmintrin.h
new file mode 100755
index 0000000..6f1fc32
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/pmmintrin.h
@@ -0,0 +1,117 @@
+/*===---- pmmintrin.h - SSE3 intrinsics ------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __PMMINTRIN_H
+#define __PMMINTRIN_H
+
+#ifndef __SSE3__
+#error "SSE3 instruction set not enabled"
+#else
+
+#include
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_lddqu_si128(__m128i const *__p)
+{
+ return (__m128i)__builtin_ia32_lddqu((char const *)__p);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_addsub_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_addsubps(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_hadd_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_haddps(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_hsub_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_hsubps(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_movehdup_ps(__m128 __a)
+{
+ return __builtin_shufflevector(__a, __a, 1, 1, 3, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_moveldup_ps(__m128 __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 0, 2, 2);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_addsub_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_addsubpd(__a, __b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_hadd_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_haddpd(__a, __b);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_hsub_pd(__m128d __a, __m128d __b)
+{
+ return __builtin_ia32_hsubpd(__a, __b);
+}
+
+#define _mm_loaddup_pd(dp) _mm_load1_pd(dp)
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_movedup_pd(__m128d __a)
+{
+ return __builtin_shufflevector(__a, __a, 0, 0);
+}
+
+#define _MM_DENORMALS_ZERO_ON (0x0040)
+#define _MM_DENORMALS_ZERO_OFF (0x0000)
+
+#define _MM_DENORMALS_ZERO_MASK (0x0040)
+
+#define _MM_GET_DENORMALS_ZERO_MODE() (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK)
+#define _MM_SET_DENORMALS_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_DENORMALS_ZERO_MASK) | (x)))
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_monitor(void const *__p, unsigned __extensions, unsigned __hints)
+{
+ __builtin_ia32_monitor((void *)__p, __extensions, __hints);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_mwait(unsigned __extensions, unsigned __hints)
+{
+ __builtin_ia32_mwait(__extensions, __hints);
+}
+
+#endif /* __SSE3__ */
+
+#endif /* __PMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/popcntintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/popcntintrin.h
new file mode 100755
index 0000000..d439daa
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/popcntintrin.h
@@ -0,0 +1,45 @@
+/*===---- popcntintrin.h - POPCNT intrinsics -------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __POPCNT__
+#error "POPCNT instruction set not enabled"
+#endif
+
+#ifndef _POPCNTINTRIN_H
+#define _POPCNTINTRIN_H
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_popcnt_u32(unsigned int __A)
+{
+ return __builtin_popcount(__A);
+}
+
+#ifdef __x86_64__
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_popcnt_u64(unsigned long long __A)
+{
+ return __builtin_popcountll(__A);
+}
+#endif /* __x86_64__ */
+
+#endif /* _POPCNTINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/prfchwintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/prfchwintrin.h
new file mode 100755
index 0000000..9825bd8
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/prfchwintrin.h
@@ -0,0 +1,39 @@
+/*===---- prfchwintrin.h - PREFETCHW intrinsic -----------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#if !defined(__X86INTRIN_H) && !defined(_MM3DNOW_H_INCLUDED)
+#error "Never use directly; include or instead."
+#endif
+
+#ifndef __PRFCHWINTRIN_H
+#define __PRFCHWINTRIN_H
+
+#if defined(__PRFCHW__) || defined(__3dNOW__)
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_m_prefetchw(void *__P)
+{
+ __builtin_prefetch (__P, 1, 3 /* _MM_HINT_T0 */);
+}
+#endif
+
+#endif /* __PRFCHWINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/rdseedintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/rdseedintrin.h
new file mode 100755
index 0000000..0fef1fa
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/rdseedintrin.h
@@ -0,0 +1,52 @@
+/*===---- rdseedintrin.h - RDSEED intrinsics -------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __X86INTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __RDSEEDINTRIN_H
+#define __RDSEEDINTRIN_H
+
+#ifdef __RDSEED__
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_rdseed16_step(unsigned short *__p)
+{
+ return __builtin_ia32_rdseed16_step(__p);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_rdseed32_step(unsigned int *__p)
+{
+ return __builtin_ia32_rdseed32_step(__p);
+}
+
+#ifdef __x86_64__
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_rdseed64_step(unsigned long long *__p)
+{
+ return __builtin_ia32_rdseed64_step(__p);
+}
+#endif
+#endif /* __RDSEED__ */
+#endif /* __RDSEEDINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/rtmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/rtmintrin.h
new file mode 100755
index 0000000..26149ca
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/rtmintrin.h
@@ -0,0 +1,54 @@
+/*===---- rtmintrin.h - RTM intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __RTMINTRIN_H
+#define __RTMINTRIN_H
+
+#define _XBEGIN_STARTED (~0u)
+#define _XABORT_EXPLICIT (1 << 0)
+#define _XABORT_RETRY (1 << 1)
+#define _XABORT_CONFLICT (1 << 2)
+#define _XABORT_CAPACITY (1 << 3)
+#define _XABORT_DEBUG (1 << 4)
+#define _XABORT_NESTED (1 << 5)
+#define _XABORT_CODE(x) (((x) >> 24) & 0xFF)
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_xbegin(void)
+{
+ return __builtin_ia32_xbegin();
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_xend(void)
+{
+ __builtin_ia32_xend();
+}
+
+#define _xabort(imm) __builtin_ia32_xabort((imm))
+
+#endif /* __RTMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/shaintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/shaintrin.h
new file mode 100755
index 0000000..66ed055
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/shaintrin.h
@@ -0,0 +1,74 @@
+/*===---- shaintrin.h - SHA intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __IMMINTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __SHAINTRIN_H
+#define __SHAINTRIN_H
+
+#if !defined (__SHA__)
+# error "SHA instructions not enabled"
+#endif
+
+#define _mm_sha1rnds4_epu32(V1, V2, M) __extension__ ({ \
+ __builtin_ia32_sha1rnds4((V1), (V2), (M)); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha1nexte_epu32(__m128i __X, __m128i __Y)
+{
+ return __builtin_ia32_sha1nexte(__X, __Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha1msg1_epu32(__m128i __X, __m128i __Y)
+{
+ return __builtin_ia32_sha1msg1(__X, __Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha1msg2_epu32(__m128i __X, __m128i __Y)
+{
+ return __builtin_ia32_sha1msg2(__X, __Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha256rnds2_epu32(__m128i __X, __m128i __Y, __m128i __Z)
+{
+ return __builtin_ia32_sha256rnds2(__X, __Y, __Z);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha256msg1_epu32(__m128i __X, __m128i __Y)
+{
+ return __builtin_ia32_sha256msg1(__X, __Y);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha256msg2_epu32(__m128i __X, __m128i __Y)
+{
+ return __builtin_ia32_sha256msg2(__X, __Y);
+}
+
+#endif /* __SHAINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/smmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/smmintrin.h
new file mode 100755
index 0000000..53b3ccb
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/smmintrin.h
@@ -0,0 +1,468 @@
+/*===---- smmintrin.h - SSE4 intrinsics ------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef _SMMINTRIN_H
+#define _SMMINTRIN_H
+
+#ifndef __SSE4_1__
+#error "SSE4.1 instruction set not enabled"
+#else
+
+#include
+
+/* SSE4 Rounding macros. */
+#define _MM_FROUND_TO_NEAREST_INT 0x00
+#define _MM_FROUND_TO_NEG_INF 0x01
+#define _MM_FROUND_TO_POS_INF 0x02
+#define _MM_FROUND_TO_ZERO 0x03
+#define _MM_FROUND_CUR_DIRECTION 0x04
+
+#define _MM_FROUND_RAISE_EXC 0x00
+#define _MM_FROUND_NO_EXC 0x08
+
+#define _MM_FROUND_NINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEAREST_INT)
+#define _MM_FROUND_FLOOR (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEG_INF)
+#define _MM_FROUND_CEIL (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_POS_INF)
+#define _MM_FROUND_TRUNC (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_ZERO)
+#define _MM_FROUND_RINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTION)
+#define _MM_FROUND_NEARBYINT (_MM_FROUND_NO_EXC | _MM_FROUND_CUR_DIRECTION)
+
+#define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL)
+#define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL)
+#define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL)
+#define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL)
+
+#define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR)
+#define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR)
+#define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR)
+#define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR)
+
+#define _mm_round_ps(X, M) __extension__ ({ \
+ __m128 __X = (X); \
+ (__m128) __builtin_ia32_roundps((__v4sf)__X, (M)); })
+
+#define _mm_round_ss(X, Y, M) __extension__ ({ \
+ __m128 __X = (X); \
+ __m128 __Y = (Y); \
+ (__m128) __builtin_ia32_roundss((__v4sf)__X, (__v4sf)__Y, (M)); })
+
+#define _mm_round_pd(X, M) __extension__ ({ \
+ __m128d __X = (X); \
+ (__m128d) __builtin_ia32_roundpd((__v2df)__X, (M)); })
+
+#define _mm_round_sd(X, Y, M) __extension__ ({ \
+ __m128d __X = (X); \
+ __m128d __Y = (Y); \
+ (__m128d) __builtin_ia32_roundsd((__v2df)__X, (__v2df)__Y, (M)); })
+
+/* SSE4 Packed Blending Intrinsics. */
+#define _mm_blend_pd(V1, V2, M) __extension__ ({ \
+ __m128d __V1 = (V1); \
+ __m128d __V2 = (V2); \
+ (__m128d) __builtin_ia32_blendpd ((__v2df)__V1, (__v2df)__V2, (M)); })
+
+#define _mm_blend_ps(V1, V2, M) __extension__ ({ \
+ __m128 __V1 = (V1); \
+ __m128 __V2 = (V2); \
+ (__m128) __builtin_ia32_blendps ((__v4sf)__V1, (__v4sf)__V2, (M)); })
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_blendv_pd (__m128d __V1, __m128d __V2, __m128d __M)
+{
+ return (__m128d) __builtin_ia32_blendvpd ((__v2df)__V1, (__v2df)__V2,
+ (__v2df)__M);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_blendv_ps (__m128 __V1, __m128 __V2, __m128 __M)
+{
+ return (__m128) __builtin_ia32_blendvps ((__v4sf)__V1, (__v4sf)__V2,
+ (__v4sf)__M);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_blendv_epi8 (__m128i __V1, __m128i __V2, __m128i __M)
+{
+ return (__m128i) __builtin_ia32_pblendvb128 ((__v16qi)__V1, (__v16qi)__V2,
+ (__v16qi)__M);
+}
+
+#define _mm_blend_epi16(V1, V2, M) __extension__ ({ \
+ __m128i __V1 = (V1); \
+ __m128i __V2 = (V2); \
+ (__m128i) __builtin_ia32_pblendw128 ((__v8hi)__V1, (__v8hi)__V2, (M)); })
+
+/* SSE4 Dword Multiply Instructions. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mullo_epi32 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) ((__v4si)__V1 * (__v4si)__V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mul_epi32 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pmuldq128 ((__v4si)__V1, (__v4si)__V2);
+}
+
+/* SSE4 Floating Point Dot Product Instructions. */
+#define _mm_dp_ps(X, Y, M) __extension__ ({ \
+ __m128 __X = (X); \
+ __m128 __Y = (Y); \
+ (__m128) __builtin_ia32_dpps((__v4sf)__X, (__v4sf)__Y, (M)); })
+
+#define _mm_dp_pd(X, Y, M) __extension__ ({\
+ __m128d __X = (X); \
+ __m128d __Y = (Y); \
+ (__m128d) __builtin_ia32_dppd((__v2df)__X, (__v2df)__Y, (M)); })
+
+/* SSE4 Streaming Load Hint Instruction. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_stream_load_si128 (__m128i *__V)
+{
+ return (__m128i) __builtin_ia32_movntdqa ((__v2di *) __V);
+}
+
+/* SSE4 Packed Integer Min/Max Instructions. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_min_epi8 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pminsb128 ((__v16qi) __V1, (__v16qi) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_max_epi8 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pmaxsb128 ((__v16qi) __V1, (__v16qi) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_min_epu16 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pminuw128 ((__v8hi) __V1, (__v8hi) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_max_epu16 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pmaxuw128 ((__v8hi) __V1, (__v8hi) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_min_epi32 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pminsd128 ((__v4si) __V1, (__v4si) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_max_epi32 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pmaxsd128 ((__v4si) __V1, (__v4si) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_min_epu32 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pminud128((__v4si) __V1, (__v4si) __V2);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_max_epu32 (__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_pmaxud128((__v4si) __V1, (__v4si) __V2);
+}
+
+/* SSE4 Insertion and Extraction from XMM Register Instructions. */
+#define _mm_insert_ps(X, Y, N) __builtin_ia32_insertps128((X), (Y), (N))
+#define _mm_extract_ps(X, N) (__extension__ \
+ ({ union { int __i; float __f; } __t; \
+ __v4sf __a = (__v4sf)(X); \
+ __t.__f = __a[(N) & 3]; \
+ __t.__i;}))
+
+/* Miscellaneous insert and extract macros. */
+/* Extract a single-precision float from X at index N into D. */
+#define _MM_EXTRACT_FLOAT(D, X, N) (__extension__ ({ __v4sf __a = (__v4sf)(X); \
+ (D) = __a[N]; }))
+
+/* Or together 2 sets of indexes (X and Y) with the zeroing bits (Z) to create
+ an index suitable for _mm_insert_ps. */
+#define _MM_MK_INSERTPS_NDX(X, Y, Z) (((X) << 6) | ((Y) << 4) | (Z))
+
+/* Extract a float from X at index N into the first index of the return. */
+#define _MM_PICK_OUT_PS(X, N) _mm_insert_ps (_mm_setzero_ps(), (X), \
+ _MM_MK_INSERTPS_NDX((N), 0, 0x0e))
+
+/* Insert int into packed integer array at index. */
+#define _mm_insert_epi8(X, I, N) (__extension__ ({ __v16qi __a = (__v16qi)(X); \
+ __a[(N) & 15] = (I); \
+ __a;}))
+#define _mm_insert_epi32(X, I, N) (__extension__ ({ __v4si __a = (__v4si)(X); \
+ __a[(N) & 3] = (I); \
+ __a;}))
+#ifdef __x86_64__
+#define _mm_insert_epi64(X, I, N) (__extension__ ({ __v2di __a = (__v2di)(X); \
+ __a[(N) & 1] = (I); \
+ __a;}))
+#endif /* __x86_64__ */
+
+/* Extract int from packed integer array at index. This returns the element
+ * as a zero extended value, so it is unsigned.
+ */
+#define _mm_extract_epi8(X, N) (__extension__ ({ __v16qi __a = (__v16qi)(X); \
+ (int)(unsigned char) \
+ __a[(N) & 15];}))
+#define _mm_extract_epi32(X, N) (__extension__ ({ __v4si __a = (__v4si)(X); \
+ __a[(N) & 3];}))
+#ifdef __x86_64__
+#define _mm_extract_epi64(X, N) (__extension__ ({ __v2di __a = (__v2di)(X); \
+ __a[(N) & 1];}))
+#endif /* __x86_64 */
+
+/* SSE4 128-bit Packed Integer Comparisons. */
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_testz_si128(__m128i __M, __m128i __V)
+{
+ return __builtin_ia32_ptestz128((__v2di)__M, (__v2di)__V);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_testc_si128(__m128i __M, __m128i __V)
+{
+ return __builtin_ia32_ptestc128((__v2di)__M, (__v2di)__V);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_testnzc_si128(__m128i __M, __m128i __V)
+{
+ return __builtin_ia32_ptestnzc128((__v2di)__M, (__v2di)__V);
+}
+
+#define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V)))
+#define _mm_test_mix_ones_zeros(M, V) _mm_testnzc_si128((M), (V))
+#define _mm_test_all_zeros(M, V) _mm_testz_si128 ((M), (V))
+
+/* SSE4 64-bit Packed Integer Comparisons. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_epi64(__m128i __V1, __m128i __V2)
+{
+ return (__m128i)((__v2di)__V1 == (__v2di)__V2);
+}
+
+/* SSE4 Packed Integer Sign-Extension. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi8_epi16(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovsxbw128((__v16qi) __V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi8_epi32(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovsxbd128((__v16qi) __V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi8_epi64(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovsxbq128((__v16qi) __V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi16_epi32(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovsxwd128((__v8hi) __V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi16_epi64(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovsxwq128((__v8hi)__V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepi32_epi64(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovsxdq128((__v4si)__V);
+}
+
+/* SSE4 Packed Integer Zero-Extension. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepu8_epi16(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovzxbw128((__v16qi) __V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepu8_epi32(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovzxbd128((__v16qi)__V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepu8_epi64(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovzxbq128((__v16qi)__V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepu16_epi32(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovzxwd128((__v8hi)__V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepu16_epi64(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovzxwq128((__v8hi)__V);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cvtepu32_epi64(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_pmovzxdq128((__v4si)__V);
+}
+
+/* SSE4 Pack with Unsigned Saturation. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_packus_epi32(__m128i __V1, __m128i __V2)
+{
+ return (__m128i) __builtin_ia32_packusdw128((__v4si)__V1, (__v4si)__V2);
+}
+
+/* SSE4 Multiple Packed Sums of Absolute Difference. */
+#define _mm_mpsadbw_epu8(X, Y, M) __extension__ ({ \
+ __m128i __X = (X); \
+ __m128i __Y = (Y); \
+ (__m128i) __builtin_ia32_mpsadbw128((__v16qi)__X, (__v16qi)__Y, (M)); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_minpos_epu16(__m128i __V)
+{
+ return (__m128i) __builtin_ia32_phminposuw128((__v8hi)__V);
+}
+
+/* These definitions are normally in nmmintrin.h, but gcc puts them in here
+ so we'll do the same. */
+#ifdef __SSE4_2__
+
+/* These specify the type of data that we're comparing. */
+#define _SIDD_UBYTE_OPS 0x00
+#define _SIDD_UWORD_OPS 0x01
+#define _SIDD_SBYTE_OPS 0x02
+#define _SIDD_SWORD_OPS 0x03
+
+/* These specify the type of comparison operation. */
+#define _SIDD_CMP_EQUAL_ANY 0x00
+#define _SIDD_CMP_RANGES 0x04
+#define _SIDD_CMP_EQUAL_EACH 0x08
+#define _SIDD_CMP_EQUAL_ORDERED 0x0c
+
+/* These macros specify the polarity of the operation. */
+#define _SIDD_POSITIVE_POLARITY 0x00
+#define _SIDD_NEGATIVE_POLARITY 0x10
+#define _SIDD_MASKED_POSITIVE_POLARITY 0x20
+#define _SIDD_MASKED_NEGATIVE_POLARITY 0x30
+
+/* These macros are used in _mm_cmpXstri() to specify the return. */
+#define _SIDD_LEAST_SIGNIFICANT 0x00
+#define _SIDD_MOST_SIGNIFICANT 0x40
+
+/* These macros are used in _mm_cmpXstri() to specify the return. */
+#define _SIDD_BIT_MASK 0x00
+#define _SIDD_UNIT_MASK 0x40
+
+/* SSE4.2 Packed Comparison Intrinsics. */
+#define _mm_cmpistrm(A, B, M) __builtin_ia32_pcmpistrm128((A), (B), (M))
+#define _mm_cmpistri(A, B, M) __builtin_ia32_pcmpistri128((A), (B), (M))
+
+#define _mm_cmpestrm(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestrm128((A), (LA), (B), (LB), (M))
+#define _mm_cmpestri(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestri128((A), (LA), (B), (LB), (M))
+
+/* SSE4.2 Packed Comparison Intrinsics and EFlag Reading. */
+#define _mm_cmpistra(A, B, M) \
+ __builtin_ia32_pcmpistria128((A), (B), (M))
+#define _mm_cmpistrc(A, B, M) \
+ __builtin_ia32_pcmpistric128((A), (B), (M))
+#define _mm_cmpistro(A, B, M) \
+ __builtin_ia32_pcmpistrio128((A), (B), (M))
+#define _mm_cmpistrs(A, B, M) \
+ __builtin_ia32_pcmpistris128((A), (B), (M))
+#define _mm_cmpistrz(A, B, M) \
+ __builtin_ia32_pcmpistriz128((A), (B), (M))
+
+#define _mm_cmpestra(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestria128((A), (LA), (B), (LB), (M))
+#define _mm_cmpestrc(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestric128((A), (LA), (B), (LB), (M))
+#define _mm_cmpestro(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestrio128((A), (LA), (B), (LB), (M))
+#define _mm_cmpestrs(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestris128((A), (LA), (B), (LB), (M))
+#define _mm_cmpestrz(A, LA, B, LB, M) \
+ __builtin_ia32_pcmpestriz128((A), (LA), (B), (LB), (M))
+
+/* SSE4.2 Compare Packed Data -- Greater Than. */
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_epi64(__m128i __V1, __m128i __V2)
+{
+ return (__m128i)((__v2di)__V1 > (__v2di)__V2);
+}
+
+/* SSE4.2 Accumulate CRC32. */
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_mm_crc32_u8(unsigned int __C, unsigned char __D)
+{
+ return __builtin_ia32_crc32qi(__C, __D);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_mm_crc32_u16(unsigned int __C, unsigned short __D)
+{
+ return __builtin_ia32_crc32hi(__C, __D);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_mm_crc32_u32(unsigned int __C, unsigned int __D)
+{
+ return __builtin_ia32_crc32si(__C, __D);
+}
+
+#ifdef __x86_64__
+static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__))
+_mm_crc32_u64(unsigned long long __C, unsigned long long __D)
+{
+ return __builtin_ia32_crc32di(__C, __D);
+}
+#endif /* __x86_64__ */
+
+#ifdef __POPCNT__
+#include
+#endif
+
+#endif /* __SSE4_2__ */
+#endif /* __SSE4_1__ */
+
+#endif /* _SMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdalign.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdalign.h
new file mode 100755
index 0000000..3738d12
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdalign.h
@@ -0,0 +1,35 @@
+/*===---- stdalign.h - Standard header for alignment ------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDALIGN_H
+#define __STDALIGN_H
+
+#ifndef __cplusplus
+#define alignas _Alignas
+#define alignof _Alignof
+#endif
+
+#define __alignas_is_defined 1
+#define __alignof_is_defined 1
+
+#endif /* __STDALIGN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdarg.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdarg.h
new file mode 100755
index 0000000..2957bf0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdarg.h
@@ -0,0 +1,50 @@
+/*===---- stdarg.h - Variable argument handling ----------------------------===
+ *
+ * Copyright (c) 2008 Eli Friedman
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDARG_H
+#define __STDARG_H
+
+#ifndef _VA_LIST
+typedef __builtin_va_list va_list;
+#define _VA_LIST
+#endif
+#define va_start(ap, param) __builtin_va_start(ap, param)
+#define va_end(ap) __builtin_va_end(ap)
+#define va_arg(ap, type) __builtin_va_arg(ap, type)
+
+/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode
+ * or -ansi is not specified, since it was not part of C90.
+ */
+#define __va_copy(d,s) __builtin_va_copy(d,s)
+
+#if __STDC_VERSION__ >= 199900L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__)
+#define va_copy(dest, src) __builtin_va_copy(dest, src)
+#endif
+
+/* Hack required to make standard headers work, at least on Ubuntu */
+#define __GNUC_VA_LIST 1
+typedef __builtin_va_list __gnuc_va_list;
+
+#endif /* __STDARG_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdbool.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdbool.h
new file mode 100755
index 0000000..0467893
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdbool.h
@@ -0,0 +1,44 @@
+/*===---- stdbool.h - Standard header for booleans -------------------------===
+ *
+ * Copyright (c) 2008 Eli Friedman
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDBOOL_H
+#define __STDBOOL_H
+
+/* Don't define bool, true, and false in C++, except as a GNU extension. */
+#ifndef __cplusplus
+#define bool _Bool
+#define true 1
+#define false 0
+#elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
+/* Define _Bool, bool, false, true as a GNU extension. */
+#define _Bool bool
+#define bool bool
+#define false false
+#define true true
+#endif
+
+#define __bool_true_false_are_defined 1
+
+#endif /* __STDBOOL_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stddef.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stddef.h
new file mode 100755
index 0000000..97126ed
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stddef.h
@@ -0,0 +1,116 @@
+/*===---- stddef.h - Basic type definitions --------------------------------===
+ *
+ * Copyright (c) 2008 Eli Friedman
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDDEF_H
+#define __STDDEF_H
+
+#if !defined(_PTRDIFF_T) || __has_feature(modules)
+/* Always define ptrdiff_t when modules are available. */
+#if !__has_feature(modules)
+#define _PTRDIFF_T
+#endif
+typedef __PTRDIFF_TYPE__ ptrdiff_t;
+#endif
+
+#if !defined(_SIZE_T) || __has_feature(modules)
+/* Always define size_t when modules are available. */
+#if !__has_feature(modules)
+#define _SIZE_T
+#endif
+typedef __SIZE_TYPE__ size_t;
+#endif
+
+/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
+ * enabled. */
+#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \
+ !defined(_RSIZE_T)) || __has_feature(modules)
+/* Always define rsize_t when modules are available. */
+#if !__has_feature(modules)
+#define _RSIZE_T
+#endif
+typedef __SIZE_TYPE__ rsize_t;
+#endif
+
+#ifndef __cplusplus
+/* Always define wchar_t when modules are available. */
+#if !defined(_WCHAR_T) || __has_feature(modules)
+#if !__has_feature(modules)
+#define _WCHAR_T
+#if defined(_MSC_EXTENSIONS)
+#define _WCHAR_T_DEFINED
+#endif
+#endif
+typedef __WCHAR_TYPE__ wchar_t;
+#endif
+#endif
+
+#undef NULL
+#ifdef __cplusplus
+# if !defined(__MINGW32__) && !defined(_MSC_VER)
+# define NULL __null
+# else
+# define NULL 0
+# endif
+#else
+# define NULL ((void*)0)
+#endif
+
+#ifdef __cplusplus
+#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
+namespace std { typedef decltype(nullptr) nullptr_t; }
+using ::std::nullptr_t;
+#endif
+#endif
+
+#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
+#ifndef _MSC_VER
+typedef struct {
+ long long __clang_max_align_nonce1
+ __attribute__((__aligned__(__alignof__(long long))));
+ long double __clang_max_align_nonce2
+ __attribute__((__aligned__(__alignof__(long double))));
+} max_align_t;
+#else
+typedef double max_align_t;
+#endif
+#define __CLANG_MAX_ALIGN_T_DEFINED
+#endif
+
+#define offsetof(t, d) __builtin_offsetof(t, d)
+
+#endif /* __STDDEF_H */
+
+/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
+__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
+#if defined(__need_wint_t)
+/* Always define wint_t when modules are available. */
+#if !defined(_WINT_T) || __has_feature(modules)
+#if !__has_feature(modules)
+#define _WINT_T
+#endif
+typedef __WINT_TYPE__ wint_t;
+#endif
+#undef __need_wint_t
+#endif /* __need_wint_t */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdint.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdint.h
new file mode 100755
index 0000000..11529c0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdint.h
@@ -0,0 +1,708 @@
+/*===---- stdint.h - Standard header for sized integer types --------------===*\
+ *
+ * Copyright (c) 2009 Chris Lattner
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+\*===----------------------------------------------------------------------===*/
+
+#ifndef __CLANG_STDINT_H
+#define __CLANG_STDINT_H
+
+/* If we're hosted, fall back to the system's stdint.h, which might have
+ * additional definitions.
+ */
+#if __STDC_HOSTED__ && \
+ defined(__has_include_next) && __has_include_next()
+
+// C99 7.18.3 Limits of other integer types
+//
+// Footnote 219, 220: C++ implementations should define these macros only when
+// __STDC_LIMIT_MACROS is defined before is included.
+//
+// Footnote 222: C++ implementations should define these macros only when
+// __STDC_CONSTANT_MACROS is defined before is included.
+//
+// C++11 [cstdint.syn]p2:
+//
+// The macros defined by are provided unconditionally. In particular,
+// the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in
+// footnotes 219, 220, and 222 in the C standard) play no role in C++.
+//
+// C11 removed the problematic footnotes.
+//
+// Work around this inconsistency by always defining those macros in C++ mode,
+// so that a C library implementation which follows the C99 standard can be
+// used in C++.
+# ifdef __cplusplus
+# if !defined(__STDC_LIMIT_MACROS)
+# define __STDC_LIMIT_MACROS
+# define __STDC_LIMIT_MACROS_DEFINED_BY_CLANG
+# endif
+# if !defined(__STDC_CONSTANT_MACROS)
+# define __STDC_CONSTANT_MACROS
+# define __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG
+# endif
+# endif
+
+# include_next
+
+# ifdef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG
+# undef __STDC_LIMIT_MACROS
+# undef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG
+# endif
+# ifdef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG
+# undef __STDC_CONSTANT_MACROS
+# undef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG
+# endif
+
+#else
+
+/* C99 7.18.1.1 Exact-width integer types.
+ * C99 7.18.1.2 Minimum-width integer types.
+ * C99 7.18.1.3 Fastest minimum-width integer types.
+ *
+ * The standard requires that exact-width type be defined for 8-, 16-, 32-, and
+ * 64-bit types if they are implemented. Other exact width types are optional.
+ * This implementation defines an exact-width types for every integer width
+ * that is represented in the standard integer types.
+ *
+ * The standard also requires minimum-width types be defined for 8-, 16-, 32-,
+ * and 64-bit widths regardless of whether there are corresponding exact-width
+ * types.
+ *
+ * To accommodate targets that are missing types that are exactly 8, 16, 32, or
+ * 64 bits wide, this implementation takes an approach of cascading
+ * redefintions, redefining __int_leastN_t to successively smaller exact-width
+ * types. It is therefore important that the types are defined in order of
+ * descending widths.
+ *
+ * We currently assume that the minimum-width types and the fastest
+ * minimum-width types are the same. This is allowed by the standard, but is
+ * suboptimal.
+ *
+ * In violation of the standard, some targets do not implement a type that is
+ * wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit).
+ * To accommodate these targets, a required minimum-width type is only
+ * defined if there exists an exact-width type of equal or greater width.
+ */
+
+#ifdef __INT64_TYPE__
+# ifndef __int8_t_defined /* glibc sys/types.h also defines int64_t*/
+typedef signed __INT64_TYPE__ int64_t;
+# endif /* __int8_t_defined */
+typedef unsigned __INT64_TYPE__ uint64_t;
+# define __int_least64_t int64_t
+# define __uint_least64_t uint64_t
+# define __int_least32_t int64_t
+# define __uint_least32_t uint64_t
+# define __int_least16_t int64_t
+# define __uint_least16_t uint64_t
+# define __int_least8_t int64_t
+# define __uint_least8_t uint64_t
+#endif /* __INT64_TYPE__ */
+
+#ifdef __int_least64_t
+typedef __int_least64_t int_least64_t;
+typedef __uint_least64_t uint_least64_t;
+typedef __int_least64_t int_fast64_t;
+typedef __uint_least64_t uint_fast64_t;
+#endif /* __int_least64_t */
+
+#ifdef __INT56_TYPE__
+typedef signed __INT56_TYPE__ int56_t;
+typedef unsigned __INT56_TYPE__ uint56_t;
+typedef int56_t int_least56_t;
+typedef uint56_t uint_least56_t;
+typedef int56_t int_fast56_t;
+typedef uint56_t uint_fast56_t;
+# define __int_least32_t int56_t
+# define __uint_least32_t uint56_t
+# define __int_least16_t int56_t
+# define __uint_least16_t uint56_t
+# define __int_least8_t int56_t
+# define __uint_least8_t uint56_t
+#endif /* __INT56_TYPE__ */
+
+
+#ifdef __INT48_TYPE__
+typedef signed __INT48_TYPE__ int48_t;
+typedef unsigned __INT48_TYPE__ uint48_t;
+typedef int48_t int_least48_t;
+typedef uint48_t uint_least48_t;
+typedef int48_t int_fast48_t;
+typedef uint48_t uint_fast48_t;
+# define __int_least32_t int48_t
+# define __uint_least32_t uint48_t
+# define __int_least16_t int48_t
+# define __uint_least16_t uint48_t
+# define __int_least8_t int48_t
+# define __uint_least8_t uint48_t
+#endif /* __INT48_TYPE__ */
+
+
+#ifdef __INT40_TYPE__
+typedef signed __INT40_TYPE__ int40_t;
+typedef unsigned __INT40_TYPE__ uint40_t;
+typedef int40_t int_least40_t;
+typedef uint40_t uint_least40_t;
+typedef int40_t int_fast40_t;
+typedef uint40_t uint_fast40_t;
+# define __int_least32_t int40_t
+# define __uint_least32_t uint40_t
+# define __int_least16_t int40_t
+# define __uint_least16_t uint40_t
+# define __int_least8_t int40_t
+# define __uint_least8_t uint40_t
+#endif /* __INT40_TYPE__ */
+
+
+#ifdef __INT32_TYPE__
+
+# ifndef __int8_t_defined /* glibc sys/types.h also defines int32_t*/
+typedef signed __INT32_TYPE__ int32_t;
+# endif /* __int8_t_defined */
+
+# ifndef __uint32_t_defined /* more glibc compatibility */
+# define __uint32_t_defined
+typedef unsigned __INT32_TYPE__ uint32_t;
+# endif /* __uint32_t_defined */
+
+# define __int_least32_t int32_t
+# define __uint_least32_t uint32_t
+# define __int_least16_t int32_t
+# define __uint_least16_t uint32_t
+# define __int_least8_t int32_t
+# define __uint_least8_t uint32_t
+#endif /* __INT32_TYPE__ */
+
+#ifdef __int_least32_t
+typedef __int_least32_t int_least32_t;
+typedef __uint_least32_t uint_least32_t;
+typedef __int_least32_t int_fast32_t;
+typedef __uint_least32_t uint_fast32_t;
+#endif /* __int_least32_t */
+
+#ifdef __INT24_TYPE__
+typedef signed __INT24_TYPE__ int24_t;
+typedef unsigned __INT24_TYPE__ uint24_t;
+typedef int24_t int_least24_t;
+typedef uint24_t uint_least24_t;
+typedef int24_t int_fast24_t;
+typedef uint24_t uint_fast24_t;
+# define __int_least16_t int24_t
+# define __uint_least16_t uint24_t
+# define __int_least8_t int24_t
+# define __uint_least8_t uint24_t
+#endif /* __INT24_TYPE__ */
+
+#ifdef __INT16_TYPE__
+#ifndef __int8_t_defined /* glibc sys/types.h also defines int16_t*/
+typedef signed __INT16_TYPE__ int16_t;
+#endif /* __int8_t_defined */
+typedef unsigned __INT16_TYPE__ uint16_t;
+# define __int_least16_t int16_t
+# define __uint_least16_t uint16_t
+# define __int_least8_t int16_t
+# define __uint_least8_t uint16_t
+#endif /* __INT16_TYPE__ */
+
+#ifdef __int_least16_t
+typedef __int_least16_t int_least16_t;
+typedef __uint_least16_t uint_least16_t;
+typedef __int_least16_t int_fast16_t;
+typedef __uint_least16_t uint_fast16_t;
+#endif /* __int_least16_t */
+
+
+#ifdef __INT8_TYPE__
+#ifndef __int8_t_defined /* glibc sys/types.h also defines int8_t*/
+typedef signed __INT8_TYPE__ int8_t;
+#endif /* __int8_t_defined */
+typedef unsigned __INT8_TYPE__ uint8_t;
+# define __int_least8_t int8_t
+# define __uint_least8_t uint8_t
+#endif /* __INT8_TYPE__ */
+
+#ifdef __int_least8_t
+typedef __int_least8_t int_least8_t;
+typedef __uint_least8_t uint_least8_t;
+typedef __int_least8_t int_fast8_t;
+typedef __uint_least8_t uint_fast8_t;
+#endif /* __int_least8_t */
+
+/* prevent glibc sys/types.h from defining conflicting types */
+#ifndef __int8_t_defined
+# define __int8_t_defined
+#endif /* __int8_t_defined */
+
+/* C99 7.18.1.4 Integer types capable of holding object pointers.
+ */
+#define __stdint_join3(a,b,c) a ## b ## c
+
+#define __intn_t(n) __stdint_join3( int, n, _t)
+#define __uintn_t(n) __stdint_join3(uint, n, _t)
+
+#ifndef _INTPTR_T
+#ifndef __intptr_t_defined
+typedef __intn_t(__INTPTR_WIDTH__) intptr_t;
+#define __intptr_t_defined
+#define _INTPTR_T
+#endif
+#endif
+
+#ifndef _UINTPTR_T
+typedef __uintn_t(__INTPTR_WIDTH__) uintptr_t;
+#define _UINTPTR_T
+#endif
+
+/* C99 7.18.1.5 Greatest-width integer types.
+ */
+typedef __INTMAX_TYPE__ intmax_t;
+typedef __UINTMAX_TYPE__ uintmax_t;
+
+/* C99 7.18.4 Macros for minimum-width integer constants.
+ *
+ * The standard requires that integer constant macros be defined for all the
+ * minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width
+ * types are required, the corresponding integer constant macros are defined
+ * here. This implementation also defines minimum-width types for every other
+ * integer width that the target implements, so corresponding macros are
+ * defined below, too.
+ *
+ * These macros are defined using the same successive-shrinking approach as
+ * the type definitions above. It is likewise important that macros are defined
+ * in order of decending width.
+ *
+ * Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the
+ * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+ */
+
+#define __int_c_join(a, b) a ## b
+#define __int_c(v, suffix) __int_c_join(v, suffix)
+#define __uint_c(v, suffix) __int_c_join(v##U, suffix)
+
+
+#ifdef __INT64_TYPE__
+# ifdef __INT64_C_SUFFIX__
+# define __int64_c_suffix __INT64_C_SUFFIX__
+# define __int32_c_suffix __INT64_C_SUFFIX__
+# define __int16_c_suffix __INT64_C_SUFFIX__
+# define __int8_c_suffix __INT64_C_SUFFIX__
+# else
+# undef __int64_c_suffix
+# undef __int32_c_suffix
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT64_C_SUFFIX__ */
+#endif /* __INT64_TYPE__ */
+
+#ifdef __int_least64_t
+# ifdef __int64_c_suffix
+# define INT64_C(v) __int_c(v, __int64_c_suffix)
+# define UINT64_C(v) __uint_c(v, __int64_c_suffix)
+# else
+# define INT64_C(v) v
+# define UINT64_C(v) v ## U
+# endif /* __int64_c_suffix */
+#endif /* __int_least64_t */
+
+
+#ifdef __INT56_TYPE__
+# ifdef __INT56_C_SUFFIX__
+# define INT56_C(v) __int_c(v, __INT56_C_SUFFIX__)
+# define UINT56_C(v) __uint_c(v, __INT56_C_SUFFIX__)
+# define __int32_c_suffix __INT56_C_SUFFIX__
+# define __int16_c_suffix __INT56_C_SUFFIX__
+# define __int8_c_suffix __INT56_C_SUFFIX__
+# else
+# define INT56_C(v) v
+# define UINT56_C(v) v ## U
+# undef __int32_c_suffix
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT56_C_SUFFIX__ */
+#endif /* __INT56_TYPE__ */
+
+
+#ifdef __INT48_TYPE__
+# ifdef __INT48_C_SUFFIX__
+# define INT48_C(v) __int_c(v, __INT48_C_SUFFIX__)
+# define UINT48_C(v) __uint_c(v, __INT48_C_SUFFIX__)
+# define __int32_c_suffix __INT48_C_SUFFIX__
+# define __int16_c_suffix __INT48_C_SUFFIX__
+# define __int8_c_suffix __INT48_C_SUFFIX__
+# else
+# define INT48_C(v) v
+# define UINT48_C(v) v ## U
+# undef __int32_c_suffix
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT48_C_SUFFIX__ */
+#endif /* __INT48_TYPE__ */
+
+
+#ifdef __INT40_TYPE__
+# ifdef __INT40_C_SUFFIX__
+# define INT40_C(v) __int_c(v, __INT40_C_SUFFIX__)
+# define UINT40_C(v) __uint_c(v, __INT40_C_SUFFIX__)
+# define __int32_c_suffix __INT40_C_SUFFIX__
+# define __int16_c_suffix __INT40_C_SUFFIX__
+# define __int8_c_suffix __INT40_C_SUFFIX__
+# else
+# define INT40_C(v) v
+# define UINT40_C(v) v ## U
+# undef __int32_c_suffix
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT40_C_SUFFIX__ */
+#endif /* __INT40_TYPE__ */
+
+
+#ifdef __INT32_TYPE__
+# ifdef __INT32_C_SUFFIX__
+# define __int32_c_suffix __INT32_C_SUFFIX__
+# define __int16_c_suffix __INT32_C_SUFFIX__
+# define __int8_c_suffix __INT32_C_SUFFIX__
+#else
+# undef __int32_c_suffix
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT32_C_SUFFIX__ */
+#endif /* __INT32_TYPE__ */
+
+#ifdef __int_least32_t
+# ifdef __int32_c_suffix
+# define INT32_C(v) __int_c(v, __int32_c_suffix)
+# define UINT32_C(v) __uint_c(v, __int32_c_suffix)
+# else
+# define INT32_C(v) v
+# define UINT32_C(v) v ## U
+# endif /* __int32_c_suffix */
+#endif /* __int_least32_t */
+
+
+#ifdef __INT24_TYPE__
+# ifdef __INT24_C_SUFFIX__
+# define INT24_C(v) __int_c(v, __INT24_C_SUFFIX__)
+# define UINT24_C(v) __uint_c(v, __INT24_C_SUFFIX__)
+# define __int16_c_suffix __INT24_C_SUFFIX__
+# define __int8_c_suffix __INT24_C_SUFFIX__
+# else
+# define INT24_C(v) v
+# define UINT24_C(v) v ## U
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT24_C_SUFFIX__ */
+#endif /* __INT24_TYPE__ */
+
+
+#ifdef __INT16_TYPE__
+# ifdef __INT16_C_SUFFIX__
+# define __int16_c_suffix __INT16_C_SUFFIX__
+# define __int8_c_suffix __INT16_C_SUFFIX__
+#else
+# undef __int16_c_suffix
+# undef __int8_c_suffix
+# endif /* __INT16_C_SUFFIX__ */
+#endif /* __INT16_TYPE__ */
+
+#ifdef __int_least16_t
+# ifdef __int16_c_suffix
+# define INT16_C(v) __int_c(v, __int16_c_suffix)
+# define UINT16_C(v) __uint_c(v, __int16_c_suffix)
+# else
+# define INT16_C(v) v
+# define UINT16_C(v) v ## U
+# endif /* __int16_c_suffix */
+#endif /* __int_least16_t */
+
+
+#ifdef __INT8_TYPE__
+# ifdef __INT8_C_SUFFIX__
+# define __int8_c_suffix __INT8_C_SUFFIX__
+#else
+# undef __int8_c_suffix
+# endif /* __INT8_C_SUFFIX__ */
+#endif /* __INT8_TYPE__ */
+
+#ifdef __int_least8_t
+# ifdef __int8_c_suffix
+# define INT8_C(v) __int_c(v, __int8_c_suffix)
+# define UINT8_C(v) __uint_c(v, __int8_c_suffix)
+# else
+# define INT8_C(v) v
+# define UINT8_C(v) v ## U
+# endif /* __int8_c_suffix */
+#endif /* __int_least8_t */
+
+
+/* C99 7.18.2.1 Limits of exact-width integer types.
+ * C99 7.18.2.2 Limits of minimum-width integer types.
+ * C99 7.18.2.3 Limits of fastest minimum-width integer types.
+ *
+ * The presence of limit macros are completely optional in C99. This
+ * implementation defines limits for all of the types (exact- and
+ * minimum-width) that it defines above, using the limits of the minimum-width
+ * type for any types that do not have exact-width representations.
+ *
+ * As in the type definitions, this section takes an approach of
+ * successive-shrinking to determine which limits to use for the standard (8,
+ * 16, 32, 64) bit widths when they don't have exact representations. It is
+ * therefore important that the defintions be kept in order of decending
+ * widths.
+ *
+ * Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the
+ * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]).
+ */
+
+#ifdef __INT64_TYPE__
+# define INT64_MAX INT64_C( 9223372036854775807)
+# define INT64_MIN (-INT64_C( 9223372036854775807)-1)
+# define UINT64_MAX UINT64_C(18446744073709551615)
+# define __INT_LEAST64_MIN INT64_MIN
+# define __INT_LEAST64_MAX INT64_MAX
+# define __UINT_LEAST64_MAX UINT64_MAX
+# define __INT_LEAST32_MIN INT64_MIN
+# define __INT_LEAST32_MAX INT64_MAX
+# define __UINT_LEAST32_MAX UINT64_MAX
+# define __INT_LEAST16_MIN INT64_MIN
+# define __INT_LEAST16_MAX INT64_MAX
+# define __UINT_LEAST16_MAX UINT64_MAX
+# define __INT_LEAST8_MIN INT64_MIN
+# define __INT_LEAST8_MAX INT64_MAX
+# define __UINT_LEAST8_MAX UINT64_MAX
+#endif /* __INT64_TYPE__ */
+
+#ifdef __INT_LEAST64_MIN
+# define INT_LEAST64_MIN __INT_LEAST64_MIN
+# define INT_LEAST64_MAX __INT_LEAST64_MAX
+# define UINT_LEAST64_MAX __UINT_LEAST64_MAX
+# define INT_FAST64_MIN __INT_LEAST64_MIN
+# define INT_FAST64_MAX __INT_LEAST64_MAX
+# define UINT_FAST64_MAX __UINT_LEAST64_MAX
+#endif /* __INT_LEAST64_MIN */
+
+
+#ifdef __INT56_TYPE__
+# define INT56_MAX INT56_C(36028797018963967)
+# define INT56_MIN (-INT56_C(36028797018963967)-1)
+# define UINT56_MAX UINT56_C(72057594037927935)
+# define INT_LEAST56_MIN INT56_MIN
+# define INT_LEAST56_MAX INT56_MAX
+# define UINT_LEAST56_MAX UINT56_MAX
+# define INT_FAST56_MIN INT56_MIN
+# define INT_FAST56_MAX INT56_MAX
+# define UINT_FAST56_MAX UINT56_MAX
+# define __INT_LEAST32_MIN INT56_MIN
+# define __INT_LEAST32_MAX INT56_MAX
+# define __UINT_LEAST32_MAX UINT56_MAX
+# define __INT_LEAST16_MIN INT56_MIN
+# define __INT_LEAST16_MAX INT56_MAX
+# define __UINT_LEAST16_MAX UINT56_MAX
+# define __INT_LEAST8_MIN INT56_MIN
+# define __INT_LEAST8_MAX INT56_MAX
+# define __UINT_LEAST8_MAX UINT56_MAX
+#endif /* __INT56_TYPE__ */
+
+
+#ifdef __INT48_TYPE__
+# define INT48_MAX INT48_C(140737488355327)
+# define INT48_MIN (-INT48_C(140737488355327)-1)
+# define UINT48_MAX UINT48_C(281474976710655)
+# define INT_LEAST48_MIN INT48_MIN
+# define INT_LEAST48_MAX INT48_MAX
+# define UINT_LEAST48_MAX UINT48_MAX
+# define INT_FAST48_MIN INT48_MIN
+# define INT_FAST48_MAX INT48_MAX
+# define UINT_FAST48_MAX UINT48_MAX
+# define __INT_LEAST32_MIN INT48_MIN
+# define __INT_LEAST32_MAX INT48_MAX
+# define __UINT_LEAST32_MAX UINT48_MAX
+# define __INT_LEAST16_MIN INT48_MIN
+# define __INT_LEAST16_MAX INT48_MAX
+# define __UINT_LEAST16_MAX UINT48_MAX
+# define __INT_LEAST8_MIN INT48_MIN
+# define __INT_LEAST8_MAX INT48_MAX
+# define __UINT_LEAST8_MAX UINT48_MAX
+#endif /* __INT48_TYPE__ */
+
+
+#ifdef __INT40_TYPE__
+# define INT40_MAX INT40_C(549755813887)
+# define INT40_MIN (-INT40_C(549755813887)-1)
+# define UINT40_MAX UINT40_C(1099511627775)
+# define INT_LEAST40_MIN INT40_MIN
+# define INT_LEAST40_MAX INT40_MAX
+# define UINT_LEAST40_MAX UINT40_MAX
+# define INT_FAST40_MIN INT40_MIN
+# define INT_FAST40_MAX INT40_MAX
+# define UINT_FAST40_MAX UINT40_MAX
+# define __INT_LEAST32_MIN INT40_MIN
+# define __INT_LEAST32_MAX INT40_MAX
+# define __UINT_LEAST32_MAX UINT40_MAX
+# define __INT_LEAST16_MIN INT40_MIN
+# define __INT_LEAST16_MAX INT40_MAX
+# define __UINT_LEAST16_MAX UINT40_MAX
+# define __INT_LEAST8_MIN INT40_MIN
+# define __INT_LEAST8_MAX INT40_MAX
+# define __UINT_LEAST8_MAX UINT40_MAX
+#endif /* __INT40_TYPE__ */
+
+
+#ifdef __INT32_TYPE__
+# define INT32_MAX INT32_C(2147483647)
+# define INT32_MIN (-INT32_C(2147483647)-1)
+# define UINT32_MAX UINT32_C(4294967295)
+# define __INT_LEAST32_MIN INT32_MIN
+# define __INT_LEAST32_MAX INT32_MAX
+# define __UINT_LEAST32_MAX UINT32_MAX
+# define __INT_LEAST16_MIN INT32_MIN
+# define __INT_LEAST16_MAX INT32_MAX
+# define __UINT_LEAST16_MAX UINT32_MAX
+# define __INT_LEAST8_MIN INT32_MIN
+# define __INT_LEAST8_MAX INT32_MAX
+# define __UINT_LEAST8_MAX UINT32_MAX
+#endif /* __INT32_TYPE__ */
+
+#ifdef __INT_LEAST32_MIN
+# define INT_LEAST32_MIN __INT_LEAST32_MIN
+# define INT_LEAST32_MAX __INT_LEAST32_MAX
+# define UINT_LEAST32_MAX __UINT_LEAST32_MAX
+# define INT_FAST32_MIN __INT_LEAST32_MIN
+# define INT_FAST32_MAX __INT_LEAST32_MAX
+# define UINT_FAST32_MAX __UINT_LEAST32_MAX
+#endif /* __INT_LEAST32_MIN */
+
+
+#ifdef __INT24_TYPE__
+# define INT24_MAX INT24_C(8388607)
+# define INT24_MIN (-INT24_C(8388607)-1)
+# define UINT24_MAX UINT24_C(16777215)
+# define INT_LEAST24_MIN INT24_MIN
+# define INT_LEAST24_MAX INT24_MAX
+# define UINT_LEAST24_MAX UINT24_MAX
+# define INT_FAST24_MIN INT24_MIN
+# define INT_FAST24_MAX INT24_MAX
+# define UINT_FAST24_MAX UINT24_MAX
+# define __INT_LEAST16_MIN INT24_MIN
+# define __INT_LEAST16_MAX INT24_MAX
+# define __UINT_LEAST16_MAX UINT24_MAX
+# define __INT_LEAST8_MIN INT24_MIN
+# define __INT_LEAST8_MAX INT24_MAX
+# define __UINT_LEAST8_MAX UINT24_MAX
+#endif /* __INT24_TYPE__ */
+
+
+#ifdef __INT16_TYPE__
+#define INT16_MAX INT16_C(32767)
+#define INT16_MIN (-INT16_C(32767)-1)
+#define UINT16_MAX UINT16_C(65535)
+# define __INT_LEAST16_MIN INT16_MIN
+# define __INT_LEAST16_MAX INT16_MAX
+# define __UINT_LEAST16_MAX UINT16_MAX
+# define __INT_LEAST8_MIN INT16_MIN
+# define __INT_LEAST8_MAX INT16_MAX
+# define __UINT_LEAST8_MAX UINT16_MAX
+#endif /* __INT16_TYPE__ */
+
+#ifdef __INT_LEAST16_MIN
+# define INT_LEAST16_MIN __INT_LEAST16_MIN
+# define INT_LEAST16_MAX __INT_LEAST16_MAX
+# define UINT_LEAST16_MAX __UINT_LEAST16_MAX
+# define INT_FAST16_MIN __INT_LEAST16_MIN
+# define INT_FAST16_MAX __INT_LEAST16_MAX
+# define UINT_FAST16_MAX __UINT_LEAST16_MAX
+#endif /* __INT_LEAST16_MIN */
+
+
+#ifdef __INT8_TYPE__
+# define INT8_MAX INT8_C(127)
+# define INT8_MIN (-INT8_C(127)-1)
+# define UINT8_MAX UINT8_C(255)
+# define __INT_LEAST8_MIN INT8_MIN
+# define __INT_LEAST8_MAX INT8_MAX
+# define __UINT_LEAST8_MAX UINT8_MAX
+#endif /* __INT8_TYPE__ */
+
+#ifdef __INT_LEAST8_MIN
+# define INT_LEAST8_MIN __INT_LEAST8_MIN
+# define INT_LEAST8_MAX __INT_LEAST8_MAX
+# define UINT_LEAST8_MAX __UINT_LEAST8_MAX
+# define INT_FAST8_MIN __INT_LEAST8_MIN
+# define INT_FAST8_MAX __INT_LEAST8_MAX
+# define UINT_FAST8_MAX __UINT_LEAST8_MAX
+#endif /* __INT_LEAST8_MIN */
+
+/* Some utility macros */
+#define __INTN_MIN(n) __stdint_join3( INT, n, _MIN)
+#define __INTN_MAX(n) __stdint_join3( INT, n, _MAX)
+#define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX)
+#define __INTN_C(n, v) __stdint_join3( INT, n, _C(v))
+#define __UINTN_C(n, v) __stdint_join3(UINT, n, _C(v))
+
+/* C99 7.18.2.4 Limits of integer types capable of holding object pointers. */
+/* C99 7.18.3 Limits of other integer types. */
+
+#define INTPTR_MIN __INTN_MIN(__INTPTR_WIDTH__)
+#define INTPTR_MAX __INTN_MAX(__INTPTR_WIDTH__)
+#define UINTPTR_MAX __UINTN_MAX(__INTPTR_WIDTH__)
+#define PTRDIFF_MIN __INTN_MIN(__PTRDIFF_WIDTH__)
+#define PTRDIFF_MAX __INTN_MAX(__PTRDIFF_WIDTH__)
+#define SIZE_MAX __UINTN_MAX(__SIZE_WIDTH__)
+
+/* ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__
+ * is enabled. */
+#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
+#define RSIZE_MAX (SIZE_MAX >> 1)
+#endif
+
+/* C99 7.18.2.5 Limits of greatest-width integer types. */
+#define INTMAX_MIN __INTN_MIN(__INTMAX_WIDTH__)
+#define INTMAX_MAX __INTN_MAX(__INTMAX_WIDTH__)
+#define UINTMAX_MAX __UINTN_MAX(__INTMAX_WIDTH__)
+
+/* C99 7.18.3 Limits of other integer types. */
+#define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__)
+#define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__)
+#ifdef __WINT_UNSIGNED__
+# define WINT_MIN __UINTN_C(__WINT_WIDTH__, 0)
+# define WINT_MAX __UINTN_MAX(__WINT_WIDTH__)
+#else
+# define WINT_MIN __INTN_MIN(__WINT_WIDTH__)
+# define WINT_MAX __INTN_MAX(__WINT_WIDTH__)
+#endif
+
+#ifndef WCHAR_MAX
+# define WCHAR_MAX __WCHAR_MAX__
+#endif
+#ifndef WCHAR_MIN
+# if __WCHAR_MAX__ == __INTN_MAX(__WCHAR_WIDTH__)
+# define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__)
+# else
+# define WCHAR_MIN __UINTN_C(__WCHAR_WIDTH__, 0)
+# endif
+#endif
+
+/* 7.18.4.2 Macros for greatest-width integer constants. */
+#define INTMAX_C(v) __INTN_C(__INTMAX_WIDTH__, v)
+#define UINTMAX_C(v) __UINTN_C(__INTMAX_WIDTH__, v)
+
+#endif /* __STDC_HOSTED__ */
+#endif /* __CLANG_STDINT_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdnoreturn.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdnoreturn.h
new file mode 100755
index 0000000..a7a301d
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/stdnoreturn.h
@@ -0,0 +1,30 @@
+/*===---- stdnoreturn.h - Standard header for noreturn macro ---------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __STDNORETURN_H
+#define __STDNORETURN_H
+
+#define noreturn _Noreturn
+#define __noreturn_is_defined 1
+
+#endif /* __STDNORETURN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tbmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tbmintrin.h
new file mode 100755
index 0000000..f95e34f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tbmintrin.h
@@ -0,0 +1,158 @@
+/*===---- tbmintrin.h - TBM intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __TBM__
+#error "TBM instruction set is not enabled"
+#endif
+
+#ifndef __X86INTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __TBMINTRIN_H
+#define __TBMINTRIN_H
+
+#define __bextri_u32(a, b) (__builtin_ia32_bextri_u32((a), (b)))
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blcfill_u32(unsigned int a)
+{
+ return a & (a + 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blci_u32(unsigned int a)
+{
+ return a | ~(a + 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blcic_u32(unsigned int a)
+{
+ return ~a & (a + 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blcmsk_u32(unsigned int a)
+{
+ return a ^ (a + 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blcs_u32(unsigned int a)
+{
+ return a | (a + 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blsfill_u32(unsigned int a)
+{
+ return a | (a - 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__blsic_u32(unsigned int a)
+{
+ return ~a | (a - 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__t1mskc_u32(unsigned int a)
+{
+ return ~a | (a + 1);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+__tzmsk_u32(unsigned int a)
+{
+ return ~a & (a - 1);
+}
+
+#ifdef __x86_64__
+#define __bextri_u64(a, b) (__builtin_ia32_bextri_u64((a), (int)(b)))
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blcfill_u64(unsigned long long a)
+{
+ return a & (a + 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blci_u64(unsigned long long a)
+{
+ return a | ~(a + 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blcic_u64(unsigned long long a)
+{
+ return ~a & (a + 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blcmsk_u64(unsigned long long a)
+{
+ return a ^ (a + 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blcs_u64(unsigned long long a)
+{
+ return a | (a + 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blsfill_u64(unsigned long long a)
+{
+ return a | (a - 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__blsic_u64(unsigned long long a)
+{
+ return ~a | (a - 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__t1mskc_u64(unsigned long long a)
+{
+ return ~a | (a + 1);
+}
+
+static __inline__ unsigned long long __attribute__((__always_inline__,
+ __nodebug__))
+__tzmsk_u64(unsigned long long a)
+{
+ return ~a & (a - 1);
+}
+#endif
+
+#endif /* __TBMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tgmath.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tgmath.h
new file mode 100755
index 0000000..a48e267
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tgmath.h
@@ -0,0 +1,1374 @@
+/*===---- tgmath.h - Standard header for type generic math ----------------===*\
+ *
+ * Copyright (c) 2009 Howard Hinnant
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+\*===----------------------------------------------------------------------===*/
+
+#ifndef __TGMATH_H
+#define __TGMATH_H
+
+/* C99 7.22 Type-generic math . */
+#include
+
+/* C++ handles type genericity with overloading in math.h. */
+#ifndef __cplusplus
+#include
+
+#define _TG_ATTRSp __attribute__((__overloadable__))
+#define _TG_ATTRS __attribute__((__overloadable__, __always_inline__))
+
+// promotion
+
+typedef void _Argument_type_is_not_arithmetic;
+static _Argument_type_is_not_arithmetic __tg_promote(...)
+ __attribute__((__unavailable__,__overloadable__));
+static double _TG_ATTRSp __tg_promote(int);
+static double _TG_ATTRSp __tg_promote(unsigned int);
+static double _TG_ATTRSp __tg_promote(long);
+static double _TG_ATTRSp __tg_promote(unsigned long);
+static double _TG_ATTRSp __tg_promote(long long);
+static double _TG_ATTRSp __tg_promote(unsigned long long);
+static float _TG_ATTRSp __tg_promote(float);
+static double _TG_ATTRSp __tg_promote(double);
+static long double _TG_ATTRSp __tg_promote(long double);
+static float _Complex _TG_ATTRSp __tg_promote(float _Complex);
+static double _Complex _TG_ATTRSp __tg_promote(double _Complex);
+static long double _Complex _TG_ATTRSp __tg_promote(long double _Complex);
+
+#define __tg_promote1(__x) (__typeof__(__tg_promote(__x)))
+#define __tg_promote2(__x, __y) (__typeof__(__tg_promote(__x) + \
+ __tg_promote(__y)))
+#define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \
+ __tg_promote(__y) + \
+ __tg_promote(__z)))
+
+// acos
+
+static float
+ _TG_ATTRS
+ __tg_acos(float __x) {return acosf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_acos(double __x) {return acos(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_acos(long double __x) {return acosl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_acos(float _Complex __x) {return cacosf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_acos(double _Complex __x) {return cacos(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_acos(long double _Complex __x) {return cacosl(__x);}
+
+#undef acos
+#define acos(__x) __tg_acos(__tg_promote1((__x))(__x))
+
+// asin
+
+static float
+ _TG_ATTRS
+ __tg_asin(float __x) {return asinf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_asin(double __x) {return asin(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_asin(long double __x) {return asinl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_asin(float _Complex __x) {return casinf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_asin(double _Complex __x) {return casin(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_asin(long double _Complex __x) {return casinl(__x);}
+
+#undef asin
+#define asin(__x) __tg_asin(__tg_promote1((__x))(__x))
+
+// atan
+
+static float
+ _TG_ATTRS
+ __tg_atan(float __x) {return atanf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_atan(double __x) {return atan(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_atan(long double __x) {return atanl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_atan(float _Complex __x) {return catanf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_atan(double _Complex __x) {return catan(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_atan(long double _Complex __x) {return catanl(__x);}
+
+#undef atan
+#define atan(__x) __tg_atan(__tg_promote1((__x))(__x))
+
+// acosh
+
+static float
+ _TG_ATTRS
+ __tg_acosh(float __x) {return acoshf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_acosh(double __x) {return acosh(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_acosh(long double __x) {return acoshl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_acosh(float _Complex __x) {return cacoshf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_acosh(double _Complex __x) {return cacosh(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_acosh(long double _Complex __x) {return cacoshl(__x);}
+
+#undef acosh
+#define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x))
+
+// asinh
+
+static float
+ _TG_ATTRS
+ __tg_asinh(float __x) {return asinhf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_asinh(double __x) {return asinh(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_asinh(long double __x) {return asinhl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_asinh(float _Complex __x) {return casinhf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_asinh(double _Complex __x) {return casinh(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_asinh(long double _Complex __x) {return casinhl(__x);}
+
+#undef asinh
+#define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x))
+
+// atanh
+
+static float
+ _TG_ATTRS
+ __tg_atanh(float __x) {return atanhf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_atanh(double __x) {return atanh(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_atanh(long double __x) {return atanhl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_atanh(float _Complex __x) {return catanhf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_atanh(double _Complex __x) {return catanh(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_atanh(long double _Complex __x) {return catanhl(__x);}
+
+#undef atanh
+#define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x))
+
+// cos
+
+static float
+ _TG_ATTRS
+ __tg_cos(float __x) {return cosf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_cos(double __x) {return cos(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_cos(long double __x) {return cosl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_cos(float _Complex __x) {return ccosf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_cos(double _Complex __x) {return ccos(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_cos(long double _Complex __x) {return ccosl(__x);}
+
+#undef cos
+#define cos(__x) __tg_cos(__tg_promote1((__x))(__x))
+
+// sin
+
+static float
+ _TG_ATTRS
+ __tg_sin(float __x) {return sinf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_sin(double __x) {return sin(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_sin(long double __x) {return sinl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_sin(float _Complex __x) {return csinf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_sin(double _Complex __x) {return csin(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_sin(long double _Complex __x) {return csinl(__x);}
+
+#undef sin
+#define sin(__x) __tg_sin(__tg_promote1((__x))(__x))
+
+// tan
+
+static float
+ _TG_ATTRS
+ __tg_tan(float __x) {return tanf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_tan(double __x) {return tan(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_tan(long double __x) {return tanl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_tan(float _Complex __x) {return ctanf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_tan(double _Complex __x) {return ctan(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_tan(long double _Complex __x) {return ctanl(__x);}
+
+#undef tan
+#define tan(__x) __tg_tan(__tg_promote1((__x))(__x))
+
+// cosh
+
+static float
+ _TG_ATTRS
+ __tg_cosh(float __x) {return coshf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_cosh(double __x) {return cosh(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_cosh(long double __x) {return coshl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_cosh(float _Complex __x) {return ccoshf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_cosh(double _Complex __x) {return ccosh(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_cosh(long double _Complex __x) {return ccoshl(__x);}
+
+#undef cosh
+#define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x))
+
+// sinh
+
+static float
+ _TG_ATTRS
+ __tg_sinh(float __x) {return sinhf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_sinh(double __x) {return sinh(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_sinh(long double __x) {return sinhl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_sinh(float _Complex __x) {return csinhf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_sinh(double _Complex __x) {return csinh(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_sinh(long double _Complex __x) {return csinhl(__x);}
+
+#undef sinh
+#define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x))
+
+// tanh
+
+static float
+ _TG_ATTRS
+ __tg_tanh(float __x) {return tanhf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_tanh(double __x) {return tanh(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_tanh(long double __x) {return tanhl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_tanh(float _Complex __x) {return ctanhf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_tanh(double _Complex __x) {return ctanh(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_tanh(long double _Complex __x) {return ctanhl(__x);}
+
+#undef tanh
+#define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x))
+
+// exp
+
+static float
+ _TG_ATTRS
+ __tg_exp(float __x) {return expf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_exp(double __x) {return exp(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_exp(long double __x) {return expl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_exp(float _Complex __x) {return cexpf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_exp(double _Complex __x) {return cexp(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_exp(long double _Complex __x) {return cexpl(__x);}
+
+#undef exp
+#define exp(__x) __tg_exp(__tg_promote1((__x))(__x))
+
+// log
+
+static float
+ _TG_ATTRS
+ __tg_log(float __x) {return logf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_log(double __x) {return log(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_log(long double __x) {return logl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_log(float _Complex __x) {return clogf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_log(double _Complex __x) {return clog(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_log(long double _Complex __x) {return clogl(__x);}
+
+#undef log
+#define log(__x) __tg_log(__tg_promote1((__x))(__x))
+
+// pow
+
+static float
+ _TG_ATTRS
+ __tg_pow(float __x, float __y) {return powf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_pow(double __x, double __y) {return pow(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_pow(long double __x, long double __y) {return powl(__x, __y);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_pow(float _Complex __x, float _Complex __y) {return cpowf(__x, __y);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_pow(double _Complex __x, double _Complex __y) {return cpow(__x, __y);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_pow(long double _Complex __x, long double _Complex __y)
+ {return cpowl(__x, __y);}
+
+#undef pow
+#define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// sqrt
+
+static float
+ _TG_ATTRS
+ __tg_sqrt(float __x) {return sqrtf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_sqrt(double __x) {return sqrt(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_sqrt(long double __x) {return sqrtl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_sqrt(float _Complex __x) {return csqrtf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_sqrt(double _Complex __x) {return csqrt(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_sqrt(long double _Complex __x) {return csqrtl(__x);}
+
+#undef sqrt
+#define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x))
+
+// fabs
+
+static float
+ _TG_ATTRS
+ __tg_fabs(float __x) {return fabsf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_fabs(double __x) {return fabs(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_fabs(long double __x) {return fabsl(__x);}
+
+static float
+ _TG_ATTRS
+ __tg_fabs(float _Complex __x) {return cabsf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_fabs(double _Complex __x) {return cabs(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_fabs(long double _Complex __x) {return cabsl(__x);}
+
+#undef fabs
+#define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x))
+
+// atan2
+
+static float
+ _TG_ATTRS
+ __tg_atan2(float __x, float __y) {return atan2f(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_atan2(double __x, double __y) {return atan2(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_atan2(long double __x, long double __y) {return atan2l(__x, __y);}
+
+#undef atan2
+#define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// cbrt
+
+static float
+ _TG_ATTRS
+ __tg_cbrt(float __x) {return cbrtf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_cbrt(double __x) {return cbrt(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_cbrt(long double __x) {return cbrtl(__x);}
+
+#undef cbrt
+#define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x))
+
+// ceil
+
+static float
+ _TG_ATTRS
+ __tg_ceil(float __x) {return ceilf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_ceil(double __x) {return ceil(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_ceil(long double __x) {return ceill(__x);}
+
+#undef ceil
+#define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x))
+
+// copysign
+
+static float
+ _TG_ATTRS
+ __tg_copysign(float __x, float __y) {return copysignf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_copysign(double __x, double __y) {return copysign(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_copysign(long double __x, long double __y) {return copysignl(__x, __y);}
+
+#undef copysign
+#define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// erf
+
+static float
+ _TG_ATTRS
+ __tg_erf(float __x) {return erff(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_erf(double __x) {return erf(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_erf(long double __x) {return erfl(__x);}
+
+#undef erf
+#define erf(__x) __tg_erf(__tg_promote1((__x))(__x))
+
+// erfc
+
+static float
+ _TG_ATTRS
+ __tg_erfc(float __x) {return erfcf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_erfc(double __x) {return erfc(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_erfc(long double __x) {return erfcl(__x);}
+
+#undef erfc
+#define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x))
+
+// exp2
+
+static float
+ _TG_ATTRS
+ __tg_exp2(float __x) {return exp2f(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_exp2(double __x) {return exp2(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_exp2(long double __x) {return exp2l(__x);}
+
+#undef exp2
+#define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x))
+
+// expm1
+
+static float
+ _TG_ATTRS
+ __tg_expm1(float __x) {return expm1f(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_expm1(double __x) {return expm1(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_expm1(long double __x) {return expm1l(__x);}
+
+#undef expm1
+#define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x))
+
+// fdim
+
+static float
+ _TG_ATTRS
+ __tg_fdim(float __x, float __y) {return fdimf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_fdim(double __x, double __y) {return fdim(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_fdim(long double __x, long double __y) {return fdiml(__x, __y);}
+
+#undef fdim
+#define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// floor
+
+static float
+ _TG_ATTRS
+ __tg_floor(float __x) {return floorf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_floor(double __x) {return floor(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_floor(long double __x) {return floorl(__x);}
+
+#undef floor
+#define floor(__x) __tg_floor(__tg_promote1((__x))(__x))
+
+// fma
+
+static float
+ _TG_ATTRS
+ __tg_fma(float __x, float __y, float __z)
+ {return fmaf(__x, __y, __z);}
+
+static double
+ _TG_ATTRS
+ __tg_fma(double __x, double __y, double __z)
+ {return fma(__x, __y, __z);}
+
+static long double
+ _TG_ATTRS
+ __tg_fma(long double __x,long double __y, long double __z)
+ {return fmal(__x, __y, __z);}
+
+#undef fma
+#define fma(__x, __y, __z) \
+ __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \
+ __tg_promote3((__x), (__y), (__z))(__y), \
+ __tg_promote3((__x), (__y), (__z))(__z))
+
+// fmax
+
+static float
+ _TG_ATTRS
+ __tg_fmax(float __x, float __y) {return fmaxf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_fmax(double __x, double __y) {return fmax(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_fmax(long double __x, long double __y) {return fmaxl(__x, __y);}
+
+#undef fmax
+#define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// fmin
+
+static float
+ _TG_ATTRS
+ __tg_fmin(float __x, float __y) {return fminf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_fmin(double __x, double __y) {return fmin(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_fmin(long double __x, long double __y) {return fminl(__x, __y);}
+
+#undef fmin
+#define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// fmod
+
+static float
+ _TG_ATTRS
+ __tg_fmod(float __x, float __y) {return fmodf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_fmod(double __x, double __y) {return fmod(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_fmod(long double __x, long double __y) {return fmodl(__x, __y);}
+
+#undef fmod
+#define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// frexp
+
+static float
+ _TG_ATTRS
+ __tg_frexp(float __x, int* __y) {return frexpf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_frexp(double __x, int* __y) {return frexp(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_frexp(long double __x, int* __y) {return frexpl(__x, __y);}
+
+#undef frexp
+#define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y)
+
+// hypot
+
+static float
+ _TG_ATTRS
+ __tg_hypot(float __x, float __y) {return hypotf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_hypot(double __x, double __y) {return hypot(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_hypot(long double __x, long double __y) {return hypotl(__x, __y);}
+
+#undef hypot
+#define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// ilogb
+
+static int
+ _TG_ATTRS
+ __tg_ilogb(float __x) {return ilogbf(__x);}
+
+static int
+ _TG_ATTRS
+ __tg_ilogb(double __x) {return ilogb(__x);}
+
+static int
+ _TG_ATTRS
+ __tg_ilogb(long double __x) {return ilogbl(__x);}
+
+#undef ilogb
+#define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x))
+
+// ldexp
+
+static float
+ _TG_ATTRS
+ __tg_ldexp(float __x, int __y) {return ldexpf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_ldexp(double __x, int __y) {return ldexp(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_ldexp(long double __x, int __y) {return ldexpl(__x, __y);}
+
+#undef ldexp
+#define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y)
+
+// lgamma
+
+static float
+ _TG_ATTRS
+ __tg_lgamma(float __x) {return lgammaf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_lgamma(double __x) {return lgamma(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_lgamma(long double __x) {return lgammal(__x);}
+
+#undef lgamma
+#define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x))
+
+// llrint
+
+static long long
+ _TG_ATTRS
+ __tg_llrint(float __x) {return llrintf(__x);}
+
+static long long
+ _TG_ATTRS
+ __tg_llrint(double __x) {return llrint(__x);}
+
+static long long
+ _TG_ATTRS
+ __tg_llrint(long double __x) {return llrintl(__x);}
+
+#undef llrint
+#define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x))
+
+// llround
+
+static long long
+ _TG_ATTRS
+ __tg_llround(float __x) {return llroundf(__x);}
+
+static long long
+ _TG_ATTRS
+ __tg_llround(double __x) {return llround(__x);}
+
+static long long
+ _TG_ATTRS
+ __tg_llround(long double __x) {return llroundl(__x);}
+
+#undef llround
+#define llround(__x) __tg_llround(__tg_promote1((__x))(__x))
+
+// log10
+
+static float
+ _TG_ATTRS
+ __tg_log10(float __x) {return log10f(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_log10(double __x) {return log10(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_log10(long double __x) {return log10l(__x);}
+
+#undef log10
+#define log10(__x) __tg_log10(__tg_promote1((__x))(__x))
+
+// log1p
+
+static float
+ _TG_ATTRS
+ __tg_log1p(float __x) {return log1pf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_log1p(double __x) {return log1p(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_log1p(long double __x) {return log1pl(__x);}
+
+#undef log1p
+#define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x))
+
+// log2
+
+static float
+ _TG_ATTRS
+ __tg_log2(float __x) {return log2f(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_log2(double __x) {return log2(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_log2(long double __x) {return log2l(__x);}
+
+#undef log2
+#define log2(__x) __tg_log2(__tg_promote1((__x))(__x))
+
+// logb
+
+static float
+ _TG_ATTRS
+ __tg_logb(float __x) {return logbf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_logb(double __x) {return logb(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_logb(long double __x) {return logbl(__x);}
+
+#undef logb
+#define logb(__x) __tg_logb(__tg_promote1((__x))(__x))
+
+// lrint
+
+static long
+ _TG_ATTRS
+ __tg_lrint(float __x) {return lrintf(__x);}
+
+static long
+ _TG_ATTRS
+ __tg_lrint(double __x) {return lrint(__x);}
+
+static long
+ _TG_ATTRS
+ __tg_lrint(long double __x) {return lrintl(__x);}
+
+#undef lrint
+#define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x))
+
+// lround
+
+static long
+ _TG_ATTRS
+ __tg_lround(float __x) {return lroundf(__x);}
+
+static long
+ _TG_ATTRS
+ __tg_lround(double __x) {return lround(__x);}
+
+static long
+ _TG_ATTRS
+ __tg_lround(long double __x) {return lroundl(__x);}
+
+#undef lround
+#define lround(__x) __tg_lround(__tg_promote1((__x))(__x))
+
+// nearbyint
+
+static float
+ _TG_ATTRS
+ __tg_nearbyint(float __x) {return nearbyintf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_nearbyint(double __x) {return nearbyint(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_nearbyint(long double __x) {return nearbyintl(__x);}
+
+#undef nearbyint
+#define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x))
+
+// nextafter
+
+static float
+ _TG_ATTRS
+ __tg_nextafter(float __x, float __y) {return nextafterf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_nextafter(double __x, double __y) {return nextafter(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_nextafter(long double __x, long double __y) {return nextafterl(__x, __y);}
+
+#undef nextafter
+#define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// nexttoward
+
+static float
+ _TG_ATTRS
+ __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);}
+
+#undef nexttoward
+#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
+
+// remainder
+
+static float
+ _TG_ATTRS
+ __tg_remainder(float __x, float __y) {return remainderf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_remainder(double __x, double __y) {return remainder(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_remainder(long double __x, long double __y) {return remainderl(__x, __y);}
+
+#undef remainder
+#define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y))
+
+// remquo
+
+static float
+ _TG_ATTRS
+ __tg_remquo(float __x, float __y, int* __z)
+ {return remquof(__x, __y, __z);}
+
+static double
+ _TG_ATTRS
+ __tg_remquo(double __x, double __y, int* __z)
+ {return remquo(__x, __y, __z);}
+
+static long double
+ _TG_ATTRS
+ __tg_remquo(long double __x,long double __y, int* __z)
+ {return remquol(__x, __y, __z);}
+
+#undef remquo
+#define remquo(__x, __y, __z) \
+ __tg_remquo(__tg_promote2((__x), (__y))(__x), \
+ __tg_promote2((__x), (__y))(__y), \
+ (__z))
+
+// rint
+
+static float
+ _TG_ATTRS
+ __tg_rint(float __x) {return rintf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_rint(double __x) {return rint(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_rint(long double __x) {return rintl(__x);}
+
+#undef rint
+#define rint(__x) __tg_rint(__tg_promote1((__x))(__x))
+
+// round
+
+static float
+ _TG_ATTRS
+ __tg_round(float __x) {return roundf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_round(double __x) {return round(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_round(long double __x) {return roundl(__x);}
+
+#undef round
+#define round(__x) __tg_round(__tg_promote1((__x))(__x))
+
+// scalbn
+
+static float
+ _TG_ATTRS
+ __tg_scalbn(float __x, int __y) {return scalbnf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_scalbn(double __x, int __y) {return scalbn(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_scalbn(long double __x, int __y) {return scalbnl(__x, __y);}
+
+#undef scalbn
+#define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y)
+
+// scalbln
+
+static float
+ _TG_ATTRS
+ __tg_scalbln(float __x, long __y) {return scalblnf(__x, __y);}
+
+static double
+ _TG_ATTRS
+ __tg_scalbln(double __x, long __y) {return scalbln(__x, __y);}
+
+static long double
+ _TG_ATTRS
+ __tg_scalbln(long double __x, long __y) {return scalblnl(__x, __y);}
+
+#undef scalbln
+#define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y)
+
+// tgamma
+
+static float
+ _TG_ATTRS
+ __tg_tgamma(float __x) {return tgammaf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_tgamma(double __x) {return tgamma(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_tgamma(long double __x) {return tgammal(__x);}
+
+#undef tgamma
+#define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x))
+
+// trunc
+
+static float
+ _TG_ATTRS
+ __tg_trunc(float __x) {return truncf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_trunc(double __x) {return trunc(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_trunc(long double __x) {return truncl(__x);}
+
+#undef trunc
+#define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x))
+
+// carg
+
+static float
+ _TG_ATTRS
+ __tg_carg(float __x) {return atan2f(0.F, __x);}
+
+static double
+ _TG_ATTRS
+ __tg_carg(double __x) {return atan2(0., __x);}
+
+static long double
+ _TG_ATTRS
+ __tg_carg(long double __x) {return atan2l(0.L, __x);}
+
+static float
+ _TG_ATTRS
+ __tg_carg(float _Complex __x) {return cargf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_carg(double _Complex __x) {return carg(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_carg(long double _Complex __x) {return cargl(__x);}
+
+#undef carg
+#define carg(__x) __tg_carg(__tg_promote1((__x))(__x))
+
+// cimag
+
+static float
+ _TG_ATTRS
+ __tg_cimag(float __x) {return 0;}
+
+static double
+ _TG_ATTRS
+ __tg_cimag(double __x) {return 0;}
+
+static long double
+ _TG_ATTRS
+ __tg_cimag(long double __x) {return 0;}
+
+static float
+ _TG_ATTRS
+ __tg_cimag(float _Complex __x) {return cimagf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_cimag(double _Complex __x) {return cimag(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_cimag(long double _Complex __x) {return cimagl(__x);}
+
+#undef cimag
+#define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x))
+
+// conj
+
+static float _Complex
+ _TG_ATTRS
+ __tg_conj(float __x) {return __x;}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_conj(double __x) {return __x;}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_conj(long double __x) {return __x;}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_conj(float _Complex __x) {return conjf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_conj(double _Complex __x) {return conj(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_conj(long double _Complex __x) {return conjl(__x);}
+
+#undef conj
+#define conj(__x) __tg_conj(__tg_promote1((__x))(__x))
+
+// cproj
+
+static float _Complex
+ _TG_ATTRS
+ __tg_cproj(float __x) {return cprojf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_cproj(double __x) {return cproj(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_cproj(long double __x) {return cprojl(__x);}
+
+static float _Complex
+ _TG_ATTRS
+ __tg_cproj(float _Complex __x) {return cprojf(__x);}
+
+static double _Complex
+ _TG_ATTRS
+ __tg_cproj(double _Complex __x) {return cproj(__x);}
+
+static long double _Complex
+ _TG_ATTRS
+ __tg_cproj(long double _Complex __x) {return cprojl(__x);}
+
+#undef cproj
+#define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x))
+
+// creal
+
+static float
+ _TG_ATTRS
+ __tg_creal(float __x) {return __x;}
+
+static double
+ _TG_ATTRS
+ __tg_creal(double __x) {return __x;}
+
+static long double
+ _TG_ATTRS
+ __tg_creal(long double __x) {return __x;}
+
+static float
+ _TG_ATTRS
+ __tg_creal(float _Complex __x) {return crealf(__x);}
+
+static double
+ _TG_ATTRS
+ __tg_creal(double _Complex __x) {return creal(__x);}
+
+static long double
+ _TG_ATTRS
+ __tg_creal(long double _Complex __x) {return creall(__x);}
+
+#undef creal
+#define creal(__x) __tg_creal(__tg_promote1((__x))(__x))
+
+#undef _TG_ATTRSp
+#undef _TG_ATTRS
+
+#endif /* __cplusplus */
+#endif /* __TGMATH_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tmmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tmmintrin.h
new file mode 100755
index 0000000..4238f5b
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/tmmintrin.h
@@ -0,0 +1,225 @@
+/*===---- tmmintrin.h - SSSE3 intrinsics -----------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __TMMINTRIN_H
+#define __TMMINTRIN_H
+
+#ifndef __SSSE3__
+#error "SSSE3 instruction set not enabled"
+#else
+
+#include
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_abs_pi8(__m64 __a)
+{
+ return (__m64)__builtin_ia32_pabsb((__v8qi)__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_abs_epi8(__m128i __a)
+{
+ return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_abs_pi16(__m64 __a)
+{
+ return (__m64)__builtin_ia32_pabsw((__v4hi)__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_abs_epi16(__m128i __a)
+{
+ return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_abs_pi32(__m64 __a)
+{
+ return (__m64)__builtin_ia32_pabsd((__v2si)__a);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_abs_epi32(__m128i __a)
+{
+ return (__m128i)__builtin_ia32_pabsd128((__v4si)__a);
+}
+
+#define _mm_alignr_epi8(a, b, n) __extension__ ({ \
+ __m128i __a = (a); \
+ __m128i __b = (b); \
+ (__m128i)__builtin_ia32_palignr128((__v16qi)__a, (__v16qi)__b, (n)); })
+
+#define _mm_alignr_pi8(a, b, n) __extension__ ({ \
+ __m64 __a = (a); \
+ __m64 __b = (b); \
+ (__m64)__builtin_ia32_palignr((__v8qi)__a, (__v8qi)__b, (n)); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hadd_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hadd_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_hadd_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_hadd_pi32(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hadds_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_hadds_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hsub_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hsub_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_hsub_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_hsub_pi32(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hsubs_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_hsubs_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maddubs_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_maddubs_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_mulhrs_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_mulhrs_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_shuffle_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_shuffle_pi8(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sign_epi8(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sign_epi16(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sign_epi32(__m128i __a, __m128i __b)
+{
+ return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sign_pi8(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sign_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sign_pi32(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_psignd((__v2si)__a, (__v2si)__b);
+}
+
+#endif /* __SSSE3__ */
+
+#endif /* __TMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/unwind.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/unwind.h
new file mode 100755
index 0000000..685c1df
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/unwind.h
@@ -0,0 +1,280 @@
+/*===---- unwind.h - Stack unwinding ----------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+/* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
+
+#ifndef __CLANG_UNWIND_H
+#define __CLANG_UNWIND_H
+
+#if __has_include_next()
+/* Darwin (from 11.x on) and libunwind provide an unwind.h. If that's available,
+ * use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE,
+ * so define that around the include.*/
+# ifndef _GNU_SOURCE
+# define _SHOULD_UNDEFINE_GNU_SOURCE
+# define _GNU_SOURCE
+# endif
+// libunwind's unwind.h reflects the current visibility. However, Mozilla
+// builds with -fvisibility=hidden and relies on gcc's unwind.h to reset the
+// visibility to default and export its contents. gcc also allows users to
+// override its override by #defining HIDE_EXPORTS (but note, this only obeys
+// the user's -fvisibility setting; it doesn't hide any exports on its own). We
+// imitate gcc's header here:
+# ifdef HIDE_EXPORTS
+# include_next
+# else
+# pragma GCC visibility push(default)
+# include_next
+# pragma GCC visibility pop
+# endif
+# ifdef _SHOULD_UNDEFINE_GNU_SOURCE
+# undef _GNU_SOURCE
+# undef _SHOULD_UNDEFINE_GNU_SOURCE
+# endif
+#else
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* It is a bit strange for a header to play with the visibility of the
+ symbols it declares, but this matches gcc's behavior and some programs
+ depend on it */
+#ifndef HIDE_EXPORTS
+#pragma GCC visibility push(default)
+#endif
+
+typedef uintptr_t _Unwind_Word;
+typedef intptr_t _Unwind_Sword;
+typedef uintptr_t _Unwind_Ptr;
+typedef uintptr_t _Unwind_Internal_Ptr;
+typedef uint64_t _Unwind_Exception_Class;
+
+typedef intptr_t _sleb128_t;
+typedef uintptr_t _uleb128_t;
+
+struct _Unwind_Context;
+struct _Unwind_Exception;
+typedef enum {
+ _URC_NO_REASON = 0,
+ _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
+
+ _URC_FATAL_PHASE2_ERROR = 2,
+ _URC_FATAL_PHASE1_ERROR = 3,
+ _URC_NORMAL_STOP = 4,
+
+ _URC_END_OF_STACK = 5,
+ _URC_HANDLER_FOUND = 6,
+ _URC_INSTALL_CONTEXT = 7,
+ _URC_CONTINUE_UNWIND = 8
+} _Unwind_Reason_Code;
+
+typedef enum {
+ _UA_SEARCH_PHASE = 1,
+ _UA_CLEANUP_PHASE = 2,
+
+ _UA_HANDLER_FRAME = 4,
+ _UA_FORCE_UNWIND = 8,
+ _UA_END_OF_STACK = 16 /* gcc extension to C++ ABI */
+} _Unwind_Action;
+
+typedef void (*_Unwind_Exception_Cleanup_Fn)(_Unwind_Reason_Code,
+ struct _Unwind_Exception *);
+
+struct _Unwind_Exception {
+ _Unwind_Exception_Class exception_class;
+ _Unwind_Exception_Cleanup_Fn exception_cleanup;
+ _Unwind_Word private_1;
+ _Unwind_Word private_2;
+ /* The Itanium ABI requires that _Unwind_Exception objects are "double-word
+ * aligned". GCC has interpreted this to mean "use the maximum useful
+ * alignment for the target"; so do we. */
+} __attribute__((__aligned__));
+
+typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)(int, _Unwind_Action,
+ _Unwind_Exception_Class,
+ struct _Unwind_Exception *,
+ struct _Unwind_Context *,
+ void *);
+
+typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)(
+ int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
+ struct _Unwind_Context *);
+typedef _Unwind_Personality_Fn __personality_routine;
+
+typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *,
+ void *);
+
+#if defined(__arm__) && !defined(__APPLE__)
+
+typedef enum {
+ _UVRSC_CORE = 0, /* integer register */
+ _UVRSC_VFP = 1, /* vfp */
+ _UVRSC_WMMXD = 3, /* Intel WMMX data register */
+ _UVRSC_WMMXC = 4 /* Intel WMMX control register */
+} _Unwind_VRS_RegClass;
+
+typedef enum {
+ _UVRSD_UINT32 = 0,
+ _UVRSD_VFPX = 1,
+ _UVRSD_UINT64 = 3,
+ _UVRSD_FLOAT = 4,
+ _UVRSD_DOUBLE = 5
+} _Unwind_VRS_DataRepresentation;
+
+typedef enum {
+ _UVRSR_OK = 0,
+ _UVRSR_NOT_IMPLEMENTED = 1,
+ _UVRSR_FAILED = 2
+} _Unwind_VRS_Result;
+
+_Unwind_VRS_Result _Unwind_VRS_Get(struct _Unwind_Context *__context,
+ _Unwind_VRS_RegClass __regclass,
+ uint32_t __regno,
+ _Unwind_VRS_DataRepresentation __representation,
+ void *__valuep);
+
+_Unwind_VRS_Result _Unwind_VRS_Set(struct _Unwind_Context *__context,
+ _Unwind_VRS_RegClass __regclass,
+ uint32_t __regno,
+ _Unwind_VRS_DataRepresentation __representation,
+ void *__valuep);
+
+static __inline__
+_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *__context, int __index) {
+ _Unwind_Word __value;
+ _Unwind_VRS_Get(__context, _UVRSC_CORE, __index, _UVRSD_UINT32, &__value);
+ return __value;
+}
+
+static __inline__
+void _Unwind_SetGR(struct _Unwind_Context *__context, int __index,
+ _Unwind_Word __value) {
+ _Unwind_VRS_Set(__context, _UVRSC_CORE, __index, _UVRSD_UINT32, &__value);
+}
+
+static __inline__
+_Unwind_Word _Unwind_GetIP(struct _Unwind_Context *__context) {
+ _Unwind_Word __ip = _Unwind_GetGR(__context, 15);
+ return __ip & ~(_Unwind_Word)(0x1); /* Remove thumb mode bit. */
+}
+
+static __inline__
+void _Unwind_SetIP(struct _Unwind_Context *__context, _Unwind_Word __value) {
+ _Unwind_Word __thumb_mode_bit = _Unwind_GetGR(__context, 15) & 0x1;
+ _Unwind_SetGR(__context, 15, __value | __thumb_mode_bit);
+}
+#else
+_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int);
+void _Unwind_SetGR(struct _Unwind_Context *, int, _Unwind_Word);
+
+_Unwind_Word _Unwind_GetIP(struct _Unwind_Context *);
+void _Unwind_SetIP(struct _Unwind_Context *, _Unwind_Word);
+#endif
+
+
+_Unwind_Word _Unwind_GetIPInfo(struct _Unwind_Context *, int *);
+
+_Unwind_Word _Unwind_GetCFA(struct _Unwind_Context *);
+
+void *_Unwind_GetLanguageSpecificData(struct _Unwind_Context *);
+
+_Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *);
+
+/* DWARF EH functions; currently not available on Darwin/ARM */
+#if !defined(__APPLE__) || !defined(__arm__)
+
+_Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception *);
+_Unwind_Reason_Code _Unwind_ForcedUnwind(struct _Unwind_Exception *,
+ _Unwind_Stop_Fn, void *);
+void _Unwind_DeleteException(struct _Unwind_Exception *);
+void _Unwind_Resume(struct _Unwind_Exception *);
+_Unwind_Reason_Code _Unwind_Resume_or_Rethrow(struct _Unwind_Exception *);
+
+#endif
+
+_Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void *);
+
+/* setjmp(3)/longjmp(3) stuff */
+typedef struct SjLj_Function_Context *_Unwind_FunctionContext_t;
+
+void _Unwind_SjLj_Register(_Unwind_FunctionContext_t);
+void _Unwind_SjLj_Unregister(_Unwind_FunctionContext_t);
+_Unwind_Reason_Code _Unwind_SjLj_RaiseException(struct _Unwind_Exception *);
+_Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind(struct _Unwind_Exception *,
+ _Unwind_Stop_Fn, void *);
+void _Unwind_SjLj_Resume(struct _Unwind_Exception *);
+_Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow(struct _Unwind_Exception *);
+
+void *_Unwind_FindEnclosingFunction(void *);
+
+#ifdef __APPLE__
+
+_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *)
+ __attribute__((unavailable));
+_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *)
+ __attribute__((unavailable));
+
+/* Darwin-specific functions */
+void __register_frame(const void *);
+void __deregister_frame(const void *);
+
+struct dwarf_eh_bases {
+ uintptr_t tbase;
+ uintptr_t dbase;
+ uintptr_t func;
+};
+void *_Unwind_Find_FDE(const void *, struct dwarf_eh_bases *);
+
+void __register_frame_info_bases(const void *, void *, void *, void *)
+ __attribute__((unavailable));
+void __register_frame_info(const void *, void *) __attribute__((unavailable));
+void __register_frame_info_table_bases(const void *, void*, void *, void *)
+ __attribute__((unavailable));
+void __register_frame_info_table(const void *, void *)
+ __attribute__((unavailable));
+void __register_frame_table(const void *) __attribute__((unavailable));
+void __deregister_frame_info(const void *) __attribute__((unavailable));
+void __deregister_frame_info_bases(const void *)__attribute__((unavailable));
+
+#else
+
+_Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *);
+_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
+
+#endif
+
+
+#ifndef HIDE_EXPORTS
+#pragma GCC visibility pop
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif /* __CLANG_UNWIND_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/varargs.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/varargs.h
new file mode 100755
index 0000000..b5477d0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/varargs.h
@@ -0,0 +1,26 @@
+/*===---- varargs.h - Variable argument handling -------------------------------------===
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*
+*===-----------------------------------------------------------------------===
+*/
+#ifndef __VARARGS_H
+#define __VARARGS_H
+ #error "Please use instead of "
+#endif
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/wmmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/wmmintrin.h
new file mode 100755
index 0000000..369e3c2
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/wmmintrin.h
@@ -0,0 +1,42 @@
+/*===---- wmmintrin.h - AES intrinsics ------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef _WMMINTRIN_H
+#define _WMMINTRIN_H
+
+#include
+
+#if !defined (__AES__) && !defined (__PCLMUL__)
+# error "AES/PCLMUL instructions not enabled"
+#else
+
+#ifdef __AES__
+#include <__wmmintrin_aes.h>
+#endif /* __AES__ */
+
+#ifdef __PCLMUL__
+#include <__wmmintrin_pclmul.h>
+#endif /* __PCLMUL__ */
+
+#endif /* __AES__ || __PCLMUL__ */
+#endif /* _WMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/x86intrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/x86intrin.h
new file mode 100755
index 0000000..399016f
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/x86intrin.h
@@ -0,0 +1,79 @@
+/*===---- x86intrin.h - X86 intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __X86INTRIN_H
+#define __X86INTRIN_H
+
+#include
+
+#ifdef __3dNOW__
+#include
+#endif
+
+#ifdef __BMI__
+#include
+#endif
+
+#ifdef __BMI2__
+#include
+#endif
+
+#ifdef __LZCNT__
+#include
+#endif
+
+#ifdef __POPCNT__
+#include
+#endif
+
+#ifdef __RDSEED__
+#include
+#endif
+
+#ifdef __PRFCHW__
+#include
+#endif
+
+#ifdef __SSE4A__
+#include
+#endif
+
+#ifdef __FMA4__
+#include
+#endif
+
+#ifdef __XOP__
+#include
+#endif
+
+#ifdef __TBM__
+#include
+#endif
+
+#ifdef __F16C__
+#include
+#endif
+
+// FIXME: LWP
+
+#endif /* __X86INTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/xmmintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/xmmintrin.h
new file mode 100755
index 0000000..c68d3ed
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/xmmintrin.h
@@ -0,0 +1,1001 @@
+/*===---- xmmintrin.h - SSE intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __XMMINTRIN_H
+#define __XMMINTRIN_H
+
+#ifndef __SSE__
+#error "SSE instruction set not enabled"
+#else
+
+#include
+
+typedef int __v4si __attribute__((__vector_size__(16)));
+typedef float __v4sf __attribute__((__vector_size__(16)));
+typedef float __m128 __attribute__((__vector_size__(16)));
+
+// This header should only be included in a hosted environment as it depends on
+// a standard library to provide allocation routines.
+#if __STDC_HOSTED__
+#include
+#endif
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_add_ss(__m128 __a, __m128 __b)
+{
+ __a[0] += __b[0];
+ return __a;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_add_ps(__m128 __a, __m128 __b)
+{
+ return __a + __b;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_sub_ss(__m128 __a, __m128 __b)
+{
+ __a[0] -= __b[0];
+ return __a;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_sub_ps(__m128 __a, __m128 __b)
+{
+ return __a - __b;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_mul_ss(__m128 __a, __m128 __b)
+{
+ __a[0] *= __b[0];
+ return __a;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_mul_ps(__m128 __a, __m128 __b)
+{
+ return __a * __b;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_div_ss(__m128 __a, __m128 __b)
+{
+ __a[0] /= __b[0];
+ return __a;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_div_ps(__m128 __a, __m128 __b)
+{
+ return __a / __b;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_sqrt_ss(__m128 __a)
+{
+ __m128 __c = __builtin_ia32_sqrtss(__a);
+ return (__m128) { __c[0], __a[1], __a[2], __a[3] };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_sqrt_ps(__m128 __a)
+{
+ return __builtin_ia32_sqrtps(__a);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_rcp_ss(__m128 __a)
+{
+ __m128 __c = __builtin_ia32_rcpss(__a);
+ return (__m128) { __c[0], __a[1], __a[2], __a[3] };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_rcp_ps(__m128 __a)
+{
+ return __builtin_ia32_rcpps(__a);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_rsqrt_ss(__m128 __a)
+{
+ __m128 __c = __builtin_ia32_rsqrtss(__a);
+ return (__m128) { __c[0], __a[1], __a[2], __a[3] };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_rsqrt_ps(__m128 __a)
+{
+ return __builtin_ia32_rsqrtps(__a);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_min_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_minss(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_min_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_minps(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_max_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_maxss(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_max_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_maxps(__a, __b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_and_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)((__v4si)__a & (__v4si)__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_andnot_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)(~(__v4si)__a & (__v4si)__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_or_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)((__v4si)__a | (__v4si)__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_xor_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)((__v4si)__a ^ (__v4si)__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 0);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpeq_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 0);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 1);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmplt_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 1);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmple_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 2);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmple_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 2);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_shufflevector(__a,
+ __builtin_ia32_cmpss(__b, __a, 1),
+ 4, 1, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpgt_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__b, __a, 1);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpge_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_shufflevector(__a,
+ __builtin_ia32_cmpss(__b, __a, 2),
+ 4, 1, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpge_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__b, __a, 2);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpneq_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 4);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpneq_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 4);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnlt_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 5);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnlt_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 5);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnle_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 6);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnle_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 6);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpngt_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_shufflevector(__a,
+ __builtin_ia32_cmpss(__b, __a, 5),
+ 4, 1, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpngt_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__b, __a, 5);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnge_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_shufflevector(__a,
+ __builtin_ia32_cmpss(__b, __a, 6),
+ 4, 1, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpnge_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__b, __a, 6);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpord_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 7);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpord_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 7);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpunord_ss(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpss(__a, __b, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cmpunord_ps(__m128 __a, __m128 __b)
+{
+ return (__m128)__builtin_ia32_cmpps(__a, __b, 3);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comieq_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_comieq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comilt_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_comilt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comile_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_comile(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comigt_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_comigt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comige_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_comige(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_comineq_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_comineq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomieq_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_ucomieq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomilt_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_ucomilt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomile_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_ucomile(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomigt_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_ucomigt(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomige_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_ucomige(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_ucomineq_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_ia32_ucomineq(__a, __b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvtss_si32(__m128 __a)
+{
+ return __builtin_ia32_cvtss2si(__a);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvt_ss2si(__m128 __a)
+{
+ return _mm_cvtss_si32(__a);
+}
+
+#ifdef __x86_64__
+
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_cvtss_si64(__m128 __a)
+{
+ return __builtin_ia32_cvtss2si64(__a);
+}
+
+#endif
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtps_pi32(__m128 __a)
+{
+ return (__m64)__builtin_ia32_cvtps2pi(__a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvt_ps2pi(__m128 __a)
+{
+ return _mm_cvtps_pi32(__a);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvttss_si32(__m128 __a)
+{
+ return __a[0];
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_cvtt_ss2si(__m128 __a)
+{
+ return _mm_cvttss_si32(__a);
+}
+
+static __inline__ long long __attribute__((__always_inline__, __nodebug__))
+_mm_cvttss_si64(__m128 __a)
+{
+ return __a[0];
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvttps_pi32(__m128 __a)
+{
+ return (__m64)__builtin_ia32_cvttps2pi(__a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtt_ps2pi(__m128 __a)
+{
+ return _mm_cvttps_pi32(__a);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi32_ss(__m128 __a, int __b)
+{
+ __a[0] = __b;
+ return __a;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvt_si2ss(__m128 __a, int __b)
+{
+ return _mm_cvtsi32_ss(__a, __b);
+}
+
+#ifdef __x86_64__
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtsi64_ss(__m128 __a, long long __b)
+{
+ __a[0] = __b;
+ return __a;
+}
+
+#endif
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpi32_ps(__m128 __a, __m64 __b)
+{
+ return __builtin_ia32_cvtpi2ps(__a, (__v2si)__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvt_pi2ps(__m128 __a, __m64 __b)
+{
+ return _mm_cvtpi32_ps(__a, __b);
+}
+
+static __inline__ float __attribute__((__always_inline__, __nodebug__))
+_mm_cvtss_f32(__m128 __a)
+{
+ return __a[0];
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_loadh_pi(__m128 __a, const __m64 *__p)
+{
+ typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8)));
+ struct __mm_loadh_pi_struct {
+ __mm_loadh_pi_v2f32 __u;
+ } __attribute__((__packed__, __may_alias__));
+ __mm_loadh_pi_v2f32 __b = ((struct __mm_loadh_pi_struct*)__p)->__u;
+ __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1);
+ return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_loadl_pi(__m128 __a, const __m64 *__p)
+{
+ typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8)));
+ struct __mm_loadl_pi_struct {
+ __mm_loadl_pi_v2f32 __u;
+ } __attribute__((__packed__, __may_alias__));
+ __mm_loadl_pi_v2f32 __b = ((struct __mm_loadl_pi_struct*)__p)->__u;
+ __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1);
+ return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_load_ss(const float *__p)
+{
+ struct __mm_load_ss_struct {
+ float __u;
+ } __attribute__((__packed__, __may_alias__));
+ float __u = ((struct __mm_load_ss_struct*)__p)->__u;
+ return (__m128){ __u, 0, 0, 0 };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_load1_ps(const float *__p)
+{
+ struct __mm_load1_ps_struct {
+ float __u;
+ } __attribute__((__packed__, __may_alias__));
+ float __u = ((struct __mm_load1_ps_struct*)__p)->__u;
+ return (__m128){ __u, __u, __u, __u };
+}
+
+#define _mm_load_ps1(p) _mm_load1_ps(p)
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_load_ps(const float *__p)
+{
+ return *(__m128*)__p;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_loadu_ps(const float *__p)
+{
+ struct __loadu_ps {
+ __m128 __v;
+ } __attribute__((__packed__, __may_alias__));
+ return ((struct __loadu_ps*)__p)->__v;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_loadr_ps(const float *__p)
+{
+ __m128 __a = _mm_load_ps(__p);
+ return __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_set_ss(float __w)
+{
+ return (__m128){ __w, 0, 0, 0 };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_set1_ps(float __w)
+{
+ return (__m128){ __w, __w, __w, __w };
+}
+
+// Microsoft specific.
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_set_ps1(float __w)
+{
+ return _mm_set1_ps(__w);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_set_ps(float __z, float __y, float __x, float __w)
+{
+ return (__m128){ __w, __x, __y, __z };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_setr_ps(float __z, float __y, float __x, float __w)
+{
+ return (__m128){ __z, __y, __x, __w };
+}
+
+static __inline__ __m128 __attribute__((__always_inline__))
+_mm_setzero_ps(void)
+{
+ return (__m128){ 0, 0, 0, 0 };
+}
+
+static __inline__ void __attribute__((__always_inline__))
+_mm_storeh_pi(__m64 *__p, __m128 __a)
+{
+ __builtin_ia32_storehps((__v2si *)__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__))
+_mm_storel_pi(__m64 *__p, __m128 __a)
+{
+ __builtin_ia32_storelps((__v2si *)__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__))
+_mm_store_ss(float *__p, __m128 __a)
+{
+ struct __mm_store_ss_struct {
+ float __u;
+ } __attribute__((__packed__, __may_alias__));
+ ((struct __mm_store_ss_struct*)__p)->__u = __a[0];
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storeu_ps(float *__p, __m128 __a)
+{
+ __builtin_ia32_storeups(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store1_ps(float *__p, __m128 __a)
+{
+ __a = __builtin_shufflevector(__a, __a, 0, 0, 0, 0);
+ _mm_storeu_ps(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store_ps1(float *__p, __m128 __a)
+{
+ return _mm_store1_ps(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_store_ps(float *__p, __m128 __a)
+{
+ *(__m128 *)__p = __a;
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_storer_ps(float *__p, __m128 __a)
+{
+ __a = __builtin_shufflevector(__a, __a, 3, 2, 1, 0);
+ _mm_store_ps(__p, __a);
+}
+
+#define _MM_HINT_T0 3
+#define _MM_HINT_T1 2
+#define _MM_HINT_T2 1
+#define _MM_HINT_NTA 0
+
+/* FIXME: We have to #define this because "sel" must be a constant integer, and
+ Sema doesn't do any form of constant propagation yet. */
+
+#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), 0, (sel)))
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_pi(__m64 *__p, __m64 __a)
+{
+ __builtin_ia32_movntq(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_stream_ps(float *__p, __m128 __a)
+{
+ __builtin_ia32_movntps(__p, __a);
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_sfence(void)
+{
+ __builtin_ia32_sfence();
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_extract_pi16(__m64 __a, int __n)
+{
+ __v4hi __b = (__v4hi)__a;
+ return (unsigned short)__b[__n & 3];
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_insert_pi16(__m64 __a, int __d, int __n)
+{
+ __v4hi __b = (__v4hi)__a;
+ __b[__n & 3] = __d;
+ return (__m64)__b;
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_max_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pmaxsw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_max_pu8(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pmaxub((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_min_pi16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pminsw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_min_pu8(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pminub((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_movemask_pi8(__m64 __a)
+{
+ return __builtin_ia32_pmovmskb((__v8qi)__a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_mulhi_pu16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pmulhuw((__v4hi)__a, (__v4hi)__b);
+}
+
+#define _mm_shuffle_pi16(a, n) __extension__ ({ \
+ __m64 __a = (a); \
+ (__m64)__builtin_ia32_pshufw((__v4hi)__a, (n)); })
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_maskmove_si64(__m64 __d, __m64 __n, char *__p)
+{
+ __builtin_ia32_maskmovq((__v8qi)__d, (__v8qi)__n, __p);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_avg_pu8(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pavgb((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_avg_pu16(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_pavgw((__v4hi)__a, (__v4hi)__b);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_sad_pu8(__m64 __a, __m64 __b)
+{
+ return (__m64)__builtin_ia32_psadbw((__v8qi)__a, (__v8qi)__b);
+}
+
+static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
+_mm_getcsr(void)
+{
+ return __builtin_ia32_stmxcsr();
+}
+
+static __inline__ void __attribute__((__always_inline__, __nodebug__))
+_mm_setcsr(unsigned int __i)
+{
+ __builtin_ia32_ldmxcsr(__i);
+}
+
+#define _mm_shuffle_ps(a, b, mask) __extension__ ({ \
+ __m128 __a = (a); \
+ __m128 __b = (b); \
+ (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__b, \
+ (mask) & 0x3, ((mask) & 0xc) >> 2, \
+ (((mask) & 0x30) >> 4) + 4, \
+ (((mask) & 0xc0) >> 6) + 4); })
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_unpackhi_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_shufflevector(__a, __b, 2, 6, 3, 7);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_unpacklo_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_shufflevector(__a, __b, 0, 4, 1, 5);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_move_ss(__m128 __a, __m128 __b)
+{
+ return __builtin_shufflevector(__a, __b, 4, 1, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_movehl_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_shufflevector(__a, __b, 6, 7, 2, 3);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_movelh_ps(__m128 __a, __m128 __b)
+{
+ return __builtin_shufflevector(__a, __b, 0, 1, 4, 5);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpi16_ps(__m64 __a)
+{
+ __m64 __b, __c;
+ __m128 __r;
+
+ __b = _mm_setzero_si64();
+ __b = _mm_cmpgt_pi16(__b, __a);
+ __c = _mm_unpackhi_pi16(__a, __b);
+ __r = _mm_setzero_ps();
+ __r = _mm_cvtpi32_ps(__r, __c);
+ __r = _mm_movelh_ps(__r, __r);
+ __c = _mm_unpacklo_pi16(__a, __b);
+ __r = _mm_cvtpi32_ps(__r, __c);
+
+ return __r;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpu16_ps(__m64 __a)
+{
+ __m64 __b, __c;
+ __m128 __r;
+
+ __b = _mm_setzero_si64();
+ __c = _mm_unpackhi_pi16(__a, __b);
+ __r = _mm_setzero_ps();
+ __r = _mm_cvtpi32_ps(__r, __c);
+ __r = _mm_movelh_ps(__r, __r);
+ __c = _mm_unpacklo_pi16(__a, __b);
+ __r = _mm_cvtpi32_ps(__r, __c);
+
+ return __r;
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpi8_ps(__m64 __a)
+{
+ __m64 __b;
+
+ __b = _mm_setzero_si64();
+ __b = _mm_cmpgt_pi8(__b, __a);
+ __b = _mm_unpacklo_pi8(__a, __b);
+
+ return _mm_cvtpi16_ps(__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpu8_ps(__m64 __a)
+{
+ __m64 __b;
+
+ __b = _mm_setzero_si64();
+ __b = _mm_unpacklo_pi8(__a, __b);
+
+ return _mm_cvtpi16_ps(__b);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtpi32x2_ps(__m64 __a, __m64 __b)
+{
+ __m128 __c;
+
+ __c = _mm_setzero_ps();
+ __c = _mm_cvtpi32_ps(__c, __b);
+ __c = _mm_movelh_ps(__c, __c);
+
+ return _mm_cvtpi32_ps(__c, __a);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtps_pi16(__m128 __a)
+{
+ __m64 __b, __c;
+
+ __b = _mm_cvtps_pi32(__a);
+ __a = _mm_movehl_ps(__a, __a);
+ __c = _mm_cvtps_pi32(__a);
+
+ return _mm_packs_pi16(__b, __c);
+}
+
+static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+_mm_cvtps_pi8(__m128 __a)
+{
+ __m64 __b, __c;
+
+ __b = _mm_cvtps_pi16(__a);
+ __c = _mm_setzero_si64();
+
+ return _mm_packs_pi16(__b, __c);
+}
+
+static __inline__ int __attribute__((__always_inline__, __nodebug__))
+_mm_movemask_ps(__m128 __a)
+{
+ return __builtin_ia32_movmskps(__a);
+}
+
+#define _MM_SHUFFLE(z, y, x, w) (((z) << 6) | ((y) << 4) | ((x) << 2) | (w))
+
+#define _MM_EXCEPT_INVALID (0x0001)
+#define _MM_EXCEPT_DENORM (0x0002)
+#define _MM_EXCEPT_DIV_ZERO (0x0004)
+#define _MM_EXCEPT_OVERFLOW (0x0008)
+#define _MM_EXCEPT_UNDERFLOW (0x0010)
+#define _MM_EXCEPT_INEXACT (0x0020)
+#define _MM_EXCEPT_MASK (0x003f)
+
+#define _MM_MASK_INVALID (0x0080)
+#define _MM_MASK_DENORM (0x0100)
+#define _MM_MASK_DIV_ZERO (0x0200)
+#define _MM_MASK_OVERFLOW (0x0400)
+#define _MM_MASK_UNDERFLOW (0x0800)
+#define _MM_MASK_INEXACT (0x1000)
+#define _MM_MASK_MASK (0x1f80)
+
+#define _MM_ROUND_NEAREST (0x0000)
+#define _MM_ROUND_DOWN (0x2000)
+#define _MM_ROUND_UP (0x4000)
+#define _MM_ROUND_TOWARD_ZERO (0x6000)
+#define _MM_ROUND_MASK (0x6000)
+
+#define _MM_FLUSH_ZERO_MASK (0x8000)
+#define _MM_FLUSH_ZERO_ON (0x8000)
+#define _MM_FLUSH_ZERO_OFF (0x0000)
+
+#define _MM_GET_EXCEPTION_MASK() (_mm_getcsr() & _MM_MASK_MASK)
+#define _MM_GET_EXCEPTION_STATE() (_mm_getcsr() & _MM_EXCEPT_MASK)
+#define _MM_GET_FLUSH_ZERO_MODE() (_mm_getcsr() & _MM_FLUSH_ZERO_MASK)
+#define _MM_GET_ROUNDING_MODE() (_mm_getcsr() & _MM_ROUND_MASK)
+
+#define _MM_SET_EXCEPTION_MASK(x) (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x)))
+#define _MM_SET_EXCEPTION_STATE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x)))
+#define _MM_SET_FLUSH_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x)))
+#define _MM_SET_ROUNDING_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x)))
+
+#define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \
+do { \
+ __m128 tmp3, tmp2, tmp1, tmp0; \
+ tmp0 = _mm_unpacklo_ps((row0), (row1)); \
+ tmp2 = _mm_unpacklo_ps((row2), (row3)); \
+ tmp1 = _mm_unpackhi_ps((row0), (row1)); \
+ tmp3 = _mm_unpackhi_ps((row2), (row3)); \
+ (row0) = _mm_movelh_ps(tmp0, tmp2); \
+ (row1) = _mm_movehl_ps(tmp2, tmp0); \
+ (row2) = _mm_movelh_ps(tmp1, tmp3); \
+ (row3) = _mm_movehl_ps(tmp3, tmp1); \
+} while (0)
+
+/* Aliases for compatibility. */
+#define _m_pextrw _mm_extract_pi16
+#define _m_pinsrw _mm_insert_pi16
+#define _m_pmaxsw _mm_max_pi16
+#define _m_pmaxub _mm_max_pu8
+#define _m_pminsw _mm_min_pi16
+#define _m_pminub _mm_min_pu8
+#define _m_pmovmskb _mm_movemask_pi8
+#define _m_pmulhuw _mm_mulhi_pu16
+#define _m_pshufw _mm_shuffle_pi16
+#define _m_maskmovq _mm_maskmove_si64
+#define _m_pavgb _mm_avg_pu8
+#define _m_pavgw _mm_avg_pu16
+#define _m_psadbw _mm_sad_pu8
+#define _m_ _mm_
+#define _m_ _mm_
+
+/* Ugly hack for backwards-compatibility (compatible with gcc) */
+#ifdef __SSE2__
+#include
+#endif
+
+#endif /* __SSE__ */
+
+#endif /* __XMMINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/xopintrin.h b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/xopintrin.h
new file mode 100755
index 0000000..cc94ca0
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/clang/3.4.2/include/xopintrin.h
@@ -0,0 +1,804 @@
+/*===---- xopintrin.h - XOP intrinsics -------------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __X86INTRIN_H
+#error "Never use directly; include instead."
+#endif
+
+#ifndef __XOPINTRIN_H
+#define __XOPINTRIN_H
+
+#ifndef __XOP__
+# error "XOP instruction set is not enabled"
+#else
+
+#include
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maccs_epi16(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacssww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_macc_epi16(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacsww((__v8hi)__A, (__v8hi)__B, (__v8hi)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maccsd_epi16(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maccd_epi16(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maccs_epi32(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacssdd((__v4si)__A, (__v4si)__B, (__v4si)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_macc_epi32(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacsdd((__v4si)__A, (__v4si)__B, (__v4si)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maccslo_epi32(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacssdql((__v4si)__A, (__v4si)__B, (__v2di)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_macclo_epi32(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacsdql((__v4si)__A, (__v4si)__B, (__v2di)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maccshi_epi32(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacssdqh((__v4si)__A, (__v4si)__B, (__v2di)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_macchi_epi32(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmacsdqh((__v4si)__A, (__v4si)__B, (__v2di)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maddsd_epi16(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmadcsswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_maddd_epi16(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpmadcswd((__v8hi)__A, (__v8hi)__B, (__v4si)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddw_epi8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddbw((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddd_epi8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddbd((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddq_epi8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddbq((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddd_epi16(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddwd((__v8hi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddq_epi16(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddwq((__v8hi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddq_epi32(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphadddq((__v4si)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddw_epu8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddubw((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddd_epu8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddubd((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddq_epu8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddubq((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddd_epu16(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphadduwd((__v8hi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddq_epu16(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphadduwq((__v8hi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_haddq_epu32(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphaddudq((__v4si)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hsubw_epi8(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphsubbw((__v16qi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hsubd_epi16(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphsubwd((__v8hi)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_hsubq_epi32(__m128i __A)
+{
+ return (__m128i)__builtin_ia32_vphsubdq((__v4si)__A);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpcmov(__A, __B, __C);
+}
+
+static __inline__ __m256i __attribute__((__always_inline__, __nodebug__))
+_mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C)
+{
+ return (__m256i)__builtin_ia32_vpcmov_256(__A, __B, __C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
+{
+ return (__m128i)__builtin_ia32_vpperm((__v16qi)__A, (__v16qi)__B, (__v16qi)__C);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_rot_epi8(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vprotb((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_rot_epi16(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vprotw((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_rot_epi32(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vprotd((__v4si)__A, (__v4si)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_rot_epi64(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vprotq((__v2di)__A, (__v2di)__B);
+}
+
+#define _mm_roti_epi8(A, N) __extension__ ({ \
+ __m128i __A = (A); \
+ (__m128i)__builtin_ia32_vprotbi((__v16qi)__A, (N)); })
+
+#define _mm_roti_epi16(A, N) __extension__ ({ \
+ __m128i __A = (A); \
+ (__m128i)__builtin_ia32_vprotwi((__v8hi)__A, (N)); })
+
+#define _mm_roti_epi32(A, N) __extension__ ({ \
+ __m128i __A = (A); \
+ (__m128i)__builtin_ia32_vprotdi((__v4si)__A, (N)); })
+
+#define _mm_roti_epi64(A, N) __extension__ ({ \
+ __m128i __A = (A); \
+ (__m128i)__builtin_ia32_vprotqi((__v2di)__A, (N)); })
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_shl_epi8(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshlb((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_shl_epi16(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshlw((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_shl_epi32(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshld((__v4si)__A, (__v4si)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_shl_epi64(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshlq((__v2di)__A, (__v2di)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha_epi8(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshab((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha_epi16(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshaw((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha_epi32(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshad((__v4si)__A, (__v4si)__B);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_sha_epi64(__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_vpshaq((__v2di)__A, (__v2di)__B);
+}
+
+#define _mm_com_epu8(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomub((__v16qi)__A, (__v16qi)__B, (N)); })
+
+#define _mm_com_epu16(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomuw((__v8hi)__A, (__v8hi)__B, (N)); })
+
+#define _mm_com_epu32(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomud((__v4si)__A, (__v4si)__B, (N)); })
+
+#define _mm_com_epu64(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomuq((__v2di)__A, (__v2di)__B, (N)); })
+
+#define _mm_com_epi8(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomb((__v16qi)__A, (__v16qi)__B, (N)); })
+
+#define _mm_com_epi16(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomw((__v8hi)__A, (__v8hi)__B, (N)); })
+
+#define _mm_com_epi32(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomd((__v4si)__A, (__v4si)__B, (N)); })
+
+#define _mm_com_epi64(A, B, N) __extension__ ({ \
+ __m128i __A = (A); \
+ __m128i __B = (B); \
+ (__m128i)__builtin_ia32_vpcomq((__v2di)__A, (__v2di)__B, (N)); })
+
+#define _MM_PCOMCTRL_LT 0
+#define _MM_PCOMCTRL_LE 1
+#define _MM_PCOMCTRL_GT 2
+#define _MM_PCOMCTRL_GE 3
+#define _MM_PCOMCTRL_EQ 4
+#define _MM_PCOMCTRL_NEQ 5
+#define _MM_PCOMCTRL_FALSE 6
+#define _MM_PCOMCTRL_TRUE 7
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epu8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu8(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epu16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu16(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epu32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu32(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epu64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epu64(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epi8(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi8(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epi16(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi16(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epi32(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi32(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comlt_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comle_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_LE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comgt_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GT);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comge_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_GE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comeq_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_EQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comneq_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_NEQ);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comfalse_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_FALSE);
+}
+
+static __inline__ __m128i __attribute__((__always_inline__, __nodebug__))
+_mm_comtrue_epi64(__m128i __A, __m128i __B)
+{
+ return _mm_com_epi64(__A, __B, _MM_PCOMCTRL_TRUE);
+}
+
+#define _mm_permute2_pd(X, Y, C, I) __extension__ ({ \
+ __m128d __X = (X); \
+ __m128d __Y = (Y); \
+ __m128i __C = (C); \
+ (__m128d)__builtin_ia32_vpermil2pd((__v2df)__X, (__v2df)__Y, \
+ (__v2di)__C, (I)); })
+
+#define _mm256_permute2_pd(X, Y, C, I) __extension__ ({ \
+ __m256d __X = (X); \
+ __m256d __Y = (Y); \
+ __m256i __C = (C); \
+ (__m256d)__builtin_ia32_vpermil2pd256((__v4df)__X, (__v4df)__Y, \
+ (__v4di)__C, (I)); })
+
+#define _mm_permute2_ps(X, Y, C, I) __extension__ ({ \
+ __m128 __X = (X); \
+ __m128 __Y = (Y); \
+ __m128i __C = (C); \
+ (__m128)__builtin_ia32_vpermil2ps((__v4sf)__X, (__v4sf)__Y, \
+ (__v4si)__C, (I)); })
+
+#define _mm256_permute2_ps(X, Y, C, I) __extension__ ({ \
+ __m256 __X = (X); \
+ __m256 __Y = (Y); \
+ __m256i __C = (C); \
+ (__m256)__builtin_ia32_vpermil2ps256((__v8sf)__X, (__v8sf)__Y, \
+ (__v8si)__C, (I)); })
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_frcz_ss(__m128 __A)
+{
+ return (__m128)__builtin_ia32_vfrczss((__v4sf)__A);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_frcz_sd(__m128d __A)
+{
+ return (__m128d)__builtin_ia32_vfrczsd((__v2df)__A);
+}
+
+static __inline__ __m128 __attribute__((__always_inline__, __nodebug__))
+_mm_frcz_ps(__m128 __A)
+{
+ return (__m128)__builtin_ia32_vfrczps((__v4sf)__A);
+}
+
+static __inline__ __m128d __attribute__((__always_inline__, __nodebug__))
+_mm_frcz_pd(__m128d __A)
+{
+ return (__m128d)__builtin_ia32_vfrczpd((__v2df)__A);
+}
+
+static __inline__ __m256 __attribute__((__always_inline__, __nodebug__))
+_mm256_frcz_ps(__m256 __A)
+{
+ return (__m256)__builtin_ia32_vfrczps256((__v8sf)__A);
+}
+
+static __inline__ __m256d __attribute__((__always_inline__, __nodebug__))
+_mm256_frcz_pd(__m256d __A)
+{
+ return (__m256d)__builtin_ia32_vfrczpd256((__v4df)__A);
+}
+
+#endif /* __XOP__ */
+
+#endif /* __XOPINTRIN_H */
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/csystem_includes.txt b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/csystem_includes.txt
new file mode 100755
index 0000000..52d3081
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/csystem_includes.txt
@@ -0,0 +1,5 @@
+/usr/lib/gcc/x86_64-linux-gnu/4.6/include
+/usr/local/include
+/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
+/usr/include/x86_64-linux-gnu
+/usr/include
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/cxxsystem_includes.txt b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/cxxsystem_includes.txt
new file mode 100755
index 0000000..968ffe3
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/cxxsystem_includes.txt
@@ -0,0 +1,8 @@
+/usr/include/c++/4.6
+/usr/include/c++/4.6/x86_64-linux-gnu/.
+/usr/include/c++/4.6/backward
+/usr/lib/gcc/x86_64-linux-gnu/4.6/include
+/usr/local/include
+/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
+/usr/include/x86_64-linux-gnu
+/usr/include
diff --git a/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/get_system_includes.sh b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/get_system_includes.sh
new file mode 100755
index 0000000..2cde4e4
--- /dev/null
+++ b/Yuwen project/FORCES_client/casadi-matlabR2014a-v2.4.2/casadi/jit/get_system_includes.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# This script gets the C or C++ system include paths
+# Works with Clang and GCC
+# Usage (C): ./get_system_includes.sh clang c > csystem_paths.txt
+# Usage (C++): ./get_system_includes.sh gcc-5 c++ > cxxsystem_paths.txt
+# Joel Andersson
+
+$1 -E -x $2 - -v < /dev/null >/dev/null 2> /tmp/compiler_settings.txt
+list_begin='#include <...> search starts here:'
+list_end='End of search list.'
+IN_SECTION=0
+while read p; do
+ if (($IN_SECTION)); then
+ if [ "$p" == "$list_end" ]; then
+ let IN_SECTION=0
+ else
+ echo $p
+ fi
+ else
+ if [ "$p" == "$list_begin" ]; then
+ let IN_SECTION=1
+ fi
+ fi
+done
+#include
+#include
+
+#include
+#include
+#include "casadi_exception.hpp"
+
+// Define pi if the compiler fails to do so
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif // M_PI
+
+/// \cond INTERNAL
+
+namespace casadi {
+
+ /// Enum for quick access to any node
+ enum Operation {
+ // Simple assignment
+ OP_ASSIGN,
+
+ // Standard unary and binary functions
+ OP_ADD, OP_SUB, OP_MUL, OP_DIV,
+ OP_NEG, OP_EXP, OP_LOG, OP_POW, OP_CONSTPOW,
+ OP_SQRT, OP_SQ, OP_TWICE,
+ OP_SIN, OP_COS, OP_TAN,
+ OP_ASIN, OP_ACOS, OP_ATAN,
+ OP_LT, OP_LE, OP_EQ, OP_NE, OP_NOT, OP_AND, OP_OR,
+ OP_FLOOR, OP_CEIL, OP_FMOD, OP_FABS, OP_SIGN, OP_COPYSIGN, OP_IF_ELSE_ZERO,
+ OP_ERF, OP_FMIN, OP_FMAX,
+ OP_INV,
+ OP_SINH, OP_COSH, OP_TANH,
+ OP_ASINH, OP_ACOSH, OP_ATANH,
+ OP_ATAN2,
+
+ // Double constant
+ OP_CONST,
+
+ // Function input and output
+ OP_INPUT, OP_OUTPUT,
+
+ // Free parameter
+ OP_PARAMETER,
+
+ // Embedded function call
+ OP_CALL,
+
+ // Find first nonzero in a vector
+ OP_FIND,
+
+ // Embedded function call in parallel
+ OP_MAP,
+
+ // Matrix multiplication
+ OP_MATMUL,
+
+ // Solve linear system of equations
+ OP_SOLVE,
+
+ // Matrix transpose
+ OP_TRANSPOSE,
+
+ // Matrix determinant
+ OP_DETERMINANT,
+
+ // Matrix inverse
+ OP_INVERSE,
+
+ // Inner product
+ OP_INNER_PROD,
+
+ // Horizontal concatenation
+ OP_HORZCAT,
+
+ // Vertical concatenation of vectors
+ OP_VERTCAT,
+
+ // Diagonal concatenation
+ OP_DIAGCAT,
+
+ // Horizontal split
+ OP_HORZSPLIT,
+
+ // Vertical split of vectors
+ OP_VERTSPLIT,
+
+ // Diagonal split
+ OP_DIAGSPLIT,
+
+ // Reshape an expression
+ OP_RESHAPE,
+
+ // Submatrix reference
+ OP_SUBREF,
+
+ // Submatrix assignment
+ OP_SUBASSIGN,
+
+ // Nonzero reference
+ OP_GETNONZEROS,
+
+ // Nonzero addition
+ OP_ADDNONZEROS,
+
+ // Nonzero assignment
+ OP_SETNONZEROS,
+
+ // Set sparse
+ OP_PROJECT,
+
+ // Assertion
+ OP_ASSERTION,
+
+ // Monitor
+ OP_MONITOR,
+
+ // Norms
+ OP_NORM2, OP_NORM1, OP_NORMINF, OP_NORMF,
+
+ // Horizontal repeat
+ OP_HORZREPMAT,
+
+ // Horizontal repeat sum
+ OP_HORZREPSUM,
+
+ OP_ERFINV,
+ OP_PRINTME,
+ OP_LIFT,
+ NUM_BUILT_IN_OPS
+ };
+
+#ifndef SWIG
+
+ // Get GCC version if GCC is used
+#ifdef __GNUC__
+#ifdef __GNUC_MINOR__
+#ifdef __GNUC_PATCHLEVEL__
+#define GCC_VERSION (__GNUC__ * 10000 +__GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+#endif // __GNUC_PATCHLEVEL__
+#endif // __GNUC_MINOR__
+#endif // __GNUC__
+
+ // Disable some Visual studio warnings
+#ifdef _MSC_VER
+
+#pragma warning(disable:4996)
+
+ // warning C4018: '<' : signed/unsigned mismatch
+#pragma warning(disable:4018)
+
+ // warning C4800: 'int' : forcing value to bool 'true'or 'false'(performance warning)
+#pragma warning(disable:4800)
+#endif
+
+ ///@{
+ /** \brief Enable using elementary numerical operations without std:: prefix */
+ using std::sqrt;
+ using std::sin;
+ using std::cos;
+ using std::tan;
+ using std::atan;
+ using std::asin;
+ using std::acos;
+ using std::sinh;
+ using std::cosh;
+ using std::tanh;
+ using std::exp;
+ using std::log;
+ using std::log10;
+ using std::abs;
+ using std::fabs;
+ using std::floor;
+ using std::ceil;
+ using std::pow;
+ using std::fmod;
+ using std::atan2;
+ ///@}
+
+ ///@{
+ // Implement "missing" operations
+ inline double atanh(double x) throw() {
+ if (x==-1) return -std::numeric_limits::infinity();
+ if (x==1) return std::numeric_limits::infinity();
+ return 0.5*log((1+x)/(1-x));
+ }
+
+ inline double asinh(double x) throw() {
+ return log(x + sqrt(1+x*x));
+ }
+
+ inline double acosh(double x) throw() {
+ return log(x + sqrt(1+x)*sqrt(x-1));
+ }
+
+ inline int isnan(double x) throw() { return x!=x;}
+ inline int isinf(double x) throw() { return isnan(x-x);}
+
+ /// Sign function, note that sign(nan) == nan
+ inline double sign(double x) { return x<0 ? -1 : x>0 ? 1 : x;}
+
+ /// Compare if two values are equal, up to a depth
+ inline bool isEqual(double x, double y, int depth=0) { return x==y;}
+
+ /// fmin, fmax and erf should be available if C99 and/or C++11 required
+ inline double fmin(double x, double y) throw() { return std::min(x, y);}
+ inline int fmin(int x, int y) throw() { return std::min(x, y);}
+ inline double fmax(double x, double y) throw() { return std::max(x, y);}
+ inline int fmax(int x, int y) throw() { return std::max(x, y);}
+
+ /// fabs(int) was added in C++11
+ inline int fabs(int x) throw() { return std::abs(x);}
+ ///@}
+
+#ifdef HAS_ERF
+ using ::erf;
+#else // HAS ERF
+ inline double erf(double x) throw() {
+ // Approximation found in Sourceforge and modified,
+ // originally from numerical recipes in Fortran
+ double sx = x<0 ? -1 : x>0 ? 1 : x;
+ double z = sx*x;
+ double t = 1.0/(1.0+0.5*z);
+ return 1.-sx*(t*exp(-z*z-1.26551223+t*(1.00002368+t*(0.37409196+t*(0.09678418+
+ t*(-0.18628806+t*(0.27886807+t*(-1.13520398+t*(1.48851587+
+ t*(-0.82215223+t*0.17087277))))))))));
+ }
+#endif // HAS ERF
+ ///@}
+
+ ///@{
+ /** \brief CasADi additions */
+ template T constpow(const T &x, const T &n) { return x.constpow(n);}
+ template T printme(const T &x, const T &y) { return x.printme(y);}
+ inline double printme(double x, double y) {
+ std::cout << "|> " << y << " : " << x << std::endl;
+ return x;
+ }
+
+ #ifdef HAS_COPYSIGN
+ using std::copysign;
+ #else
+ /// copysign function
+ inline double copysign(double x, double y) { return y>=0 ? fabs(x) : -fabs(x);}
+ #endif //HAS_COPYSIGN
+
+ /// Conditional assignment
+ template T if_else_zero(const T &x, const T &y) {return x.zz_if_else_zero(y);}
+
+ /// Conditional assignment
+ inline double if_else_zero(double x, double y) { return x ? y : 0;}
+
+ /// Inverse of the error function
+ template T erfinv(const T &x) {return x.zz_erfinv();}
+#ifdef HAS_ERFINV
+ using ::erfinv;
+#else // HAS ERFINV
+ inline double erfinv(double x) throw() {
+ // Approximation found in Sourceforge and modified: Not very efficient
+ if (x>=1) {
+ return x==1 ? std::numeric_limits::infinity() :
+ std::numeric_limits::quiet_NaN();
+ } else if (x<=-1) {
+ return x==-1 ? -std::numeric_limits::infinity() :
+ std::numeric_limits::quiet_NaN();
+ } else if (x<-0.7) {
+ double z = sqrt(-log((1.0+x)/2.0));
+ return -(((1.641345311*z+3.429567803)*z-1.624906493)*z-1.970840454)/
+ ((1.637067800*z+3.543889200)*z+1.0);
+ } else {
+ double y;
+ if (x<0.7) {
+ double z = x*x;
+ y = x*(((-0.140543331*z+0.914624893)*z-1.645349621)*z+0.886226899)/
+ ((((-0.329097515*z+0.012229801)*z+1.442710462)*z-2.118377725)*z+1.0);
+ } else {
+ double z = sqrt(-log((1.0-x)/2.0));
+ y = (((1.641345311*z+3.429567803)*z-1.624906493)*z-1.970840454)/
+ ((1.637067800*z+3.543889200)*z+1.0);
+ }
+
+ //polish x to full accuracy
+ y = y - (erf(y) - x) / (2.0/sqrt(M_PI) * exp(-y*y));
+ y = y - (erf(y) - x) / (2.0/sqrt(M_PI) * exp(-y*y));
+ return y;
+ }
+ }
+#endif // HAS_ERFINV
+ ///@}
+
+ template
+ T twice(const T& x) {
+ return x+x;
+ }
+
+ template
+ T sq(const T& x) {
+ return x*x;
+ }
+
+ template
+ struct UnaryOperation {
+ /// Function evaluation
+ template static inline void fcn(const T& x, T& f);
+
+ /// Partial derivatives
+ template static inline void der(const T& x, const T& f, T* d);
+ };
+
+ template
+ struct BinaryOperation {
+ /// Function evaluation
+ template static inline void fcn(const T& x, const T& y, T& f) {
+ UnaryOperation::fcn(x, f);}
+
+ /// Partial derivatives - binary function
+ template static inline void der(const T& x, const T& y, const T& f, T* d) {
+ UnaryOperation::der(x, f, d); d[1]=0; }
+ };
+
+ template
+ struct BinaryOperationE {
+ /// Function evaluation
+ template static inline T fcn(const T& x, const T& y) {
+ T ret;
+ BinaryOperation::fcn(x, y, ret);
+ return ret;
+ }
+ };
+
+ /// Calculate function and derivative
+ template
+ struct DerBinaryOpertion {
+ /// Perform the operation
+ template static inline void derf(const T& x, const T& y, T& f, T* d) {
+
+ /** First save to temp since f might have the same address as x or y,
+ * in which case it will be incorrect in the second call
+ */
+ T tmp;
+
+ /// Evaluate the function
+ BinaryOperation::fcn(x, y, tmp);
+
+ /// Evaluate the partial derivatives
+ BinaryOperation::der(x, y, tmp, d);
+
+ /// Now save f
+ f = tmp;
+ }
+ };
+
+ /// Perform a binary operation on two scalars
+ template
+ struct BinaryOperationSS {
+ /// Function evaluation
+ template static inline void fcn(const T& x, const T& y, T& f, int n) {
+ BinaryOperation::fcn(x, y, f);
+ }
+
+ /// Partial derivatives - binary function
+ template static inline void der(const T& x, const T& y, const T& f, T* d, int n) {
+ BinaryOperation::der(x, y, f, d);
+ }
+ };
+
+
+ /// Perform a binary operation on two vectors
+ template
+ struct BinaryOperationVV {
+ /// Function evaluation
+ template static inline void fcn(const T* x, const T* y, T* f, int n) {
+ for (int i=0; i::fcn(*x++, *y++, *f++);
+ }
+ }
+
+ /// Partial derivatives - binary function
+ template static inline void der(const T* x, const T* y, const T* f, T* d, int n) {
+ for (int i=0; i::der(*x++, *y++, *f++, d);
+ }
+ }
+ };
+
+ /// Perform a binary operation on a vector and a scalar
+ template
+ struct BinaryOperationVS {
+ /// Function evaluation
+ template static inline void fcn(const T* x, const T& y, T* f, int n) {
+ for (int i=0; i::fcn(*x++, y, *f++);
+ }
+ }
+
+ /// Partial derivatives - binary function
+ template static inline void der(const T* x, const T& y, const T* f, T* d, int n) {
+ for (int i=0; i::der(*x++, y, *f++, d);
+ }
+ }
+ };
+
+ /// Perform a binary operation on a scalar and a vector
+ template
+ struct BinaryOperationSV {
+ /// Function evaluation
+ template static inline void fcn(const T& x, const T* y, T* f, int n) {
+ for (int i=0; i::fcn(x, *y++, *f++);
+ }
+ }
+
+ /// Partial derivatives - binary function
+ template static inline void der(const T& x, const T* y, const T* f, T* d, int n) {
+ for (int i=0; i::der(x, *y++, *f++, d);
+ }
+ }
+ };
+
+ ///@{
+ /// Smoothness (by default true)
+ template struct SmoothChecker { static const bool check=true;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ template<> struct SmoothChecker{ static const bool check=false;};
+ ///@}
+
+ ///@{
+ /// If evaluated with the first argument zero, is the result zero?
+ template struct F0XChecker { static const bool check=false;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ template<> struct F0XChecker{ static const bool check=true;};
+ ///@}
+
+ ///@{
+ /// If evaluated with the second argument zero, is the result zero?
+ template struct Function0Checker { static const bool check=false;};
+ template<> struct Function0Checker{ static const bool check=true;};
+ template<> struct Function0Checker{ static const bool check=true;};
+ template<> struct Function0Checker{ static const bool check=true;};
+ ///@}
+
+ ///@{
+ /// If evaluated with both arguments zero, is the result zero?
+ template struct F00Checker { static const bool check=F0XChecker::check;};
+ template<> struct F00Checker{ static const bool check=true;};
+ template<> struct F00Checker{ static const bool check=true;};
+ template<> struct F00Checker{ static const bool check=true;};
+ template<> struct F00Checker{ static const bool check=true;};
+ template<> struct F00Checker{ static const bool check=true;};
+ template<> struct F00Checker{ static const bool check=true;};
+ template<> struct F00Checker{ static const bool check=true;};
+ ///@}
+
+ ///@{
+ /// Is commutative
+ template struct CommChecker { static const bool check=false;};
+ template<> struct CommChecker{ static const bool check=true;};
+ template<> struct CommChecker{ static const bool check=true;};
+ template<> struct CommChecker{ static const bool check=true;};
+ template<> struct CommChecker{ static const bool check=true;};
+ template<> struct CommChecker{ static const bool check=true;};
+ template<> struct CommChecker{ static const bool check=true;};
+ ///@}
+
+ ///@{
+ /// Always non-negative (false by default)
+ template struct NonnegativeChecker { static const bool check=false;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ template<> struct NonnegativeChecker{ static const bool check=true;};
+ ///@}
+
+ ///@{
+ /// Is the operation binary as opposed to unary
+ template struct BinaryChecker { static const bool check=false;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker{ static const bool check=true;};
+ template<> struct BinaryChecker