1 /************************************************************************* 2 ALGLIB 3.18.0 (source code generated 2021-10-25) 3 Copyright (c) Sergey Bochkanov (ALGLIB project). 4 5 >>> SOURCE LICENSE >>> 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation (www.fsf.org); either version 2 of the 9 License, or (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 A copy of the GNU General Public License is available at 17 http://www.fsf.org/licensing/licenses 18 >>> END OF LICENSE >>> 19 *************************************************************************/ 20 #ifndef _ap_h 21 #define _ap_h 22 23 #include <stdio.h> 24 #include <stdlib.h> 25 #include <stddef.h> 26 #include <string> 27 #include <cstring> 28 #include <iostream> 29 #include <math.h> 30 31 #if defined(__CODEGEARC__) 32 #include <list> 33 #include <vector> 34 #elif defined(__BORLANDC__) 35 #include <list.h> 36 #include <vector.h> 37 #else 38 #include <list> 39 #include <vector> 40 #endif 41 42 #define AE_USE_CPP 43 /* Definitions */ 44 #define AE_UNKNOWN 0 45 #define AE_INTEL 1 46 #define AE_SPARC 2 47 48 /* OS definitions */ 49 #define AE_WINDOWS 1 50 #define AE_POSIX 2 51 #define AE_LINUX 304 52 #if !defined(AE_OS) 53 #define AE_OS AE_UNKNOWN 54 #endif 55 #if AE_OS==AE_LINUX 56 #undef AE_OS 57 #define AE_OS AE_POSIX 58 #define _ALGLIB_USE_LINUX_EXTENSIONS 59 #endif 60 61 /* threading models for AE_THREADING */ 62 #define AE_PARALLEL 100 63 #define AE_SERIAL 101 64 #define AE_SERIAL_UNSAFE 102 65 #if !defined(AE_THREADING) 66 #define AE_THREADING AE_PARALLEL 67 #endif 68 69 /* malloc types for AE_MALLOC */ 70 #define AE_STDLIB_MALLOC 200 71 #define AE_BASIC_STATIC_MALLOC 201 72 #if !defined(AE_MALLOC) 73 #define AE_MALLOC AE_STDLIB_MALLOC 74 #endif 75 76 #define AE_LOCK_ALIGNMENT 16 77 78 /* automatically determine compiler */ 79 #define AE_MSVC 1 80 #define AE_GNUC 2 81 #define AE_SUNC 3 82 #define AE_COMPILER AE_UNKNOWN 83 #ifdef __GNUC__ 84 #undef AE_COMPILER 85 #define AE_COMPILER AE_GNUC 86 #endif 87 #if defined(__SUNPRO_C)||defined(__SUNPRO_CC) 88 #undef AE_COMPILER 89 #define AE_COMPILER AE_SUNC 90 #endif 91 #ifdef _MSC_VER 92 #undef AE_COMPILER 93 #define AE_COMPILER AE_MSVC 94 #endif 95 96 /* compiler-specific definitions */ 97 #if AE_COMPILER==AE_MSVC 98 #define ALIGNED __declspec(align(8)) 99 #elif AE_COMPILER==AE_GNUC 100 #define ALIGNED __attribute__((aligned(8))) 101 #else 102 #define ALIGNED 103 #endif 104 105 /* state flags */ 106 #define _ALGLIB_FLG_THREADING_MASK 0x7 107 #define _ALGLIB_FLG_THREADING_SHIFT 0 108 #define _ALGLIB_FLG_THREADING_USE_GLOBAL 0x0 109 #define _ALGLIB_FLG_THREADING_SERIAL 0x1 110 #define _ALGLIB_FLG_THREADING_PARALLEL 0x2 111 112 113 /* now we are ready to include headers */ 114 #include <ctype.h> 115 #include <stdlib.h> 116 #include <stdio.h> 117 #include <stdarg.h> 118 #include <string.h> 119 #include <setjmp.h> 120 #include <math.h> 121 #include <stddef.h> 122 123 #if defined(AE_HAVE_STDINT) 124 #include <stdint.h> 125 #endif 126 127 /* 128 * Intel SIMD intrinsics 129 * 130 * Preprocessor directives below: 131 * - include headers for SSE2/AVX2/AVX2+FMA3 intrinsics 132 * - defines _ALGLIB_HAS_SSE2_INTRINSICS, _ALGLIB_HAS_AVX2_INTRINSICS and _ALGLIB_HAS_FMA_INTRINSICS definitions 133 * 134 * These actions are performed when we have: 135 * - x86 architecture definition (AE_CPU==AE_INTEL) 136 * - compiler which supports intrinsics 137 * 138 * Presence of _ALGLIB_HAS_???_INTRINSICS does NOT mean that our CPU 139 * actually supports these intrinsics - such things should be determined 140 * at runtime with ae_cpuid() call. It means that we are working under 141 * Intel and out compiler can issue SIMD-capable code. 142 * 143 */ 144 #if defined(AE_CPU) 145 #if AE_CPU==AE_INTEL 146 /* 147 * Intel definitions 148 */ 149 #if AE_COMPILER==AE_MSVC 150 /* 151 * MSVC is detected. 152 * We assume that compiler supports all instruction sets 153 * unless something is explicitly turned off. 154 */ 155 #if !defined(AE_NO_SSE2) 156 #include <emmintrin.h> 157 #define AE_HAS_SSE2_INTRINSICS 158 #define _ALGLIB_HAS_SSE2_INTRINSICS 159 #if !defined(AE_NO_AVX2) 160 #include <intrin.h> 161 #define _ALGLIB_HAS_AVX2_INTRINSICS 162 #if !defined(AE_NO_FMA) 163 #define _ALGLIB_HAS_FMA_INTRINSICS 164 #endif 165 #endif 166 #endif 167 #elif AE_COMPILER==AE_GNUC 168 /* 169 * GCC/CLANG/ICC is detected. 170 * We assume that compiler supports all instruction sets 171 * unless something is explicitly turned off. 172 */ 173 #if !defined(AE_NO_SSE2) 174 #include <xmmintrin.h> 175 #define AE_HAS_SSE2_INTRINSICS 176 #define _ALGLIB_HAS_SSE2_INTRINSICS 177 #if !defined(AE_NO_AVX2) 178 #include <immintrin.h> 179 #define _ALGLIB_HAS_AVX2_INTRINSICS 180 #if !defined(AE_NO_FMA) 181 #define _ALGLIB_HAS_FMA_INTRINSICS 182 #endif 183 #endif 184 #endif 185 #elif AE_COMPILER==AE_SUNC 186 /* 187 * Sun studio 188 */ 189 #include <xmmintrin.h> 190 #include <emmintrin.h> 191 #define AE_HAS_SSE2_INTRINSICS 192 #define _ALGLIB_HAS_SSE2_INTRINSICS 193 #include <immintrin.h> 194 #define _ALGLIB_HAS_AVX2_INTRINSICS 195 #define _ALGLIB_HAS_FMA_INTRINSICS 196 #else 197 /* 198 * Unknown compiler 199 */ 200 #if !defined(AE_NO_SSE2) 201 #include <immintrin.h> 202 #define AE_HAS_SSE2_INTRINSICS 203 #define _ALGLIB_HAS_SSE2_INTRINSICS 204 #if !defined(AE_NO_AVX2) 205 #define _ALGLIB_HAS_AVX2_INTRINSICS 206 #if !defined(AE_NO_FMA) 207 #define _ALGLIB_HAS_FMA_INTRINSICS 208 #endif 209 #endif 210 #endif 211 #endif 212 213 /* 214 * Intel integrity checks 215 */ 216 #if defined(_ALGLIB_INTEGRITY_CHECKS_ONCE) 217 #if defined(_ALGLIB_FAIL_WITHOUT_FMA_INTRINSICS) && !defined(_ALGLIB_HAS_FMA_INTRINSICS) 218 #error ALGLIB was requested to fail without FMA intrinsics 219 #endif 220 #endif 221 #endif 222 #endif 223 224 225 226 ///////////////////////////////////////////////////////////////////////// 227 // 228 // THIS SECTION CONTAINS DECLARATIONS FOR BASIC FUNCTIONALITY 229 // LIKE MEMORY MANAGEMENT FOR VECTORS/MATRICES WHICH IS SHARED 230 // BETWEEN C++ AND PURE C LIBRARIES 231 // 232 ///////////////////////////////////////////////////////////////////////// 233 namespace alglib_impl 234 { 235 236 /* if we work under C++ environment, define several conditions */ 237 #ifdef AE_USE_CPP 238 #define AE_USE_CPP_BOOL 239 #define AE_USE_CPP_SERIALIZATION 240 #include <iostream> 241 #endif 242 243 /* 244 * define ae_int32_t, ae_int64_t, ae_int_t, ae_bool, ae_complex, ae_error_type and ae_datatype 245 */ 246 247 #if defined(AE_INT32_T) 248 typedef AE_INT32_T ae_int32_t; 249 #endif 250 #if defined(AE_HAVE_STDINT) && !defined(AE_INT32_T) 251 typedef int32_t ae_int32_t; 252 #endif 253 #if !defined(AE_HAVE_STDINT) && !defined(AE_INT32_T) 254 #if AE_COMPILER==AE_MSVC 255 typedef __int32 ae_int32_t; 256 #endif 257 #if (AE_COMPILER==AE_GNUC) || (AE_COMPILER==AE_SUNC) || (AE_COMPILER==AE_UNKNOWN) 258 typedef int ae_int32_t; 259 #endif 260 #endif 261 262 #if defined(AE_INT64_T) 263 typedef AE_INT64_T ae_int64_t; 264 #endif 265 #if defined(AE_HAVE_STDINT) && !defined(AE_INT64_T) 266 typedef int64_t ae_int64_t; 267 #endif 268 #if !defined(AE_HAVE_STDINT) && !defined(AE_INT64_T) 269 #if AE_COMPILER==AE_MSVC 270 typedef __int64 ae_int64_t; 271 #endif 272 #if (AE_COMPILER==AE_GNUC) || (AE_COMPILER==AE_SUNC) || (AE_COMPILER==AE_UNKNOWN) 273 typedef signed long long ae_int64_t; 274 #endif 275 #endif 276 277 #if defined(AE_UINT64_T) 278 typedef AE_UINT64_T ae_uint64_t; 279 #endif 280 #if defined(AE_HAVE_STDINT) && !defined(AE_UINT64_T) 281 typedef uint64_t ae_uint64_t; 282 #endif 283 #if !defined(AE_HAVE_STDINT) && !defined(AE_UINT64_T) 284 #if AE_COMPILER==AE_MSVC 285 typedef unsigned __int64 ae_uint64_t; 286 #endif 287 #if (AE_COMPILER==AE_GNUC) || (AE_COMPILER==AE_SUNC) || (AE_COMPILER==AE_UNKNOWN) 288 typedef unsigned long long ae_uint64_t; 289 #endif 290 #endif 291 292 #if !defined(AE_INT_T) 293 typedef ptrdiff_t ae_int_t; 294 #endif 295 296 #if !defined(AE_USE_CPP_BOOL) 297 #define ae_bool char 298 #define ae_true 1 299 #define ae_false 0 300 #else 301 #define ae_bool bool 302 #define ae_true true 303 #define ae_false false 304 #endif 305 306 typedef struct { double x, y; } ae_complex; 307 308 typedef enum 309 { 310 ERR_OK = 0, 311 ERR_OUT_OF_MEMORY = 1, 312 ERR_XARRAY_TOO_LARGE = 2, 313 ERR_ASSERTION_FAILED = 3 314 } ae_error_type; 315 316 typedef ae_int_t ae_datatype; 317 318 /* 319 * other definitions 320 */ 321 enum { OWN_CALLER=1, OWN_AE=2 }; 322 enum { ACT_UNCHANGED=1, ACT_SAME_LOCATION=2, ACT_NEW_LOCATION=3 }; 323 enum { DT_BOOL=1, DT_BYTE=1, DT_INT=2, DT_REAL=3, DT_COMPLEX=4 }; 324 enum { CPU_SSE2=0x1, CPU_AVX2=0x2, CPU_FMA=0x4 }; 325 326 /************************************************************************ 327 x-string (zero-terminated): 328 owner OWN_CALLER or OWN_AE. Determines what to do on realloc(). 329 If vector is owned by caller, X-interface will just set 330 ptr to NULL before realloc(). If it is owned by X, it 331 will call ae_free/x_free/aligned_free family functions. 332 333 last_action ACT_UNCHANGED, ACT_SAME_LOCATION, ACT_NEW_LOCATION 334 contents is either: unchanged, stored at the same location, 335 stored at the new location. 336 this field is set on return from X. 337 338 ptr pointer to the actual data 339 340 Members of this structure are ae_int64_t to avoid alignment problems. 341 ************************************************************************/ 342 typedef struct 343 { 344 ALIGNED ae_int64_t owner; 345 ALIGNED ae_int64_t last_action; 346 ALIGNED char *ptr; 347 } x_string; 348 349 /************************************************************************ 350 x-vector: 351 cnt number of elements 352 353 datatype one of the DT_XXXX values 354 355 owner OWN_CALLER or OWN_AE. Determines what to do on realloc(). 356 If vector is owned by caller, X-interface will just set 357 ptr to NULL before realloc(). If it is owned by X, it 358 will call ae_free/x_free/aligned_free family functions. 359 360 last_action ACT_UNCHANGED, ACT_SAME_LOCATION, ACT_NEW_LOCATION 361 contents is either: unchanged, stored at the same location, 362 stored at the new location. 363 this field is set on return from X interface and may be 364 used by caller as hint when deciding what to do with data 365 (if it was ACT_UNCHANGED or ACT_SAME_LOCATION, no array 366 reallocation or copying is required). 367 368 ptr pointer to the actual data 369 370 Members of this structure are ae_int64_t to avoid alignment problems. 371 ************************************************************************/ 372 typedef struct 373 { 374 ae_int64_t cnt; 375 ae_int64_t datatype; 376 ae_int64_t owner; 377 ae_int64_t last_action; 378 union 379 { 380 void *p_ptr; 381 ae_int64_t portable_alignment_enforcer; 382 } x_ptr; 383 } x_vector; 384 385 386 /************************************************************************ 387 x-matrix: 388 rows number of rows. may be zero only when cols is zero too. 389 390 cols number of columns. may be zero only when rows is zero too. 391 392 stride stride, i.e. distance between first elements of rows (in bytes) 393 394 datatype one of the DT_XXXX values 395 396 owner OWN_CALLER or OWN_AE. Determines what to do on realloc(). 397 If vector is owned by caller, X-interface will just set 398 ptr to NULL before realloc(). If it is owned by X, it 399 will call ae_free/x_free/aligned_free family functions. 400 401 last_action ACT_UNCHANGED, ACT_SAME_LOCATION, ACT_NEW_LOCATION 402 contents is either: unchanged, stored at the same location, 403 stored at the new location. 404 this field is set on return from X interface and may be 405 used by caller as hint when deciding what to do with data 406 (if it was ACT_UNCHANGED or ACT_SAME_LOCATION, no array 407 reallocation or copying is required). 408 409 ptr pointer to the actual data, stored rowwise 410 411 Members of this structure are ae_int64_t to avoid alignment problems. 412 ************************************************************************/ 413 typedef struct 414 { 415 ae_int64_t rows; 416 ae_int64_t cols; 417 ae_int64_t stride; 418 ae_int64_t datatype; 419 ae_int64_t owner; 420 ae_int64_t last_action; 421 union 422 { 423 void *p_ptr; 424 ae_int64_t portable_alignment_enforcer; 425 } x_ptr; 426 } x_matrix; 427 428 429 /************************************************************************ 430 dynamic block which may be automatically deallocated during stack unwinding 431 432 p_next next block in the stack unwinding list. 433 NULL means that this block is not in the list 434 deallocator deallocator function which should be used to deallocate block. 435 NULL for "special" blocks (frame/stack boundaries) 436 ptr pointer which should be passed to the deallocator. 437 may be null (for zero-size block), DYN_BOTTOM or DYN_FRAME 438 for "special" blocks (frame/stack boundaries). 439 440 valgrind_hint is a special field which stores a special hint pointer for 441 Valgrind and other similar memory checking tools. ALGLIB 442 manually aligns pointers obtained via malloc, so ptr usually 443 points to location past the beginning of the actuallly 444 allocated memory. In such cases memory testing tools may 445 report "(possibly) lost" memory. 446 447 This "hint" field stores pointer actually returned by 448 malloc (or NULL, if for some reason we do not support 449 this feature). This field is used merely as a hint for 450 Valgrind - it should NOT be used for anything else. 451 452 ************************************************************************/ 453 typedef struct ae_dyn_block 454 { 455 struct ae_dyn_block * volatile p_next; 456 /* void *deallocator; */ 457 void (*deallocator)(void*); 458 void * volatile ptr; 459 void* valgrind_hint; 460 } ae_dyn_block; 461 462 typedef void(*ae_deallocator)(void*); 463 464 /************************************************************************ 465 frame marker 466 ************************************************************************/ 467 typedef struct ae_frame 468 { 469 ae_dyn_block db_marker; 470 } ae_frame; 471 472 /************************************************************************ 473 ALGLIB environment state 474 ************************************************************************/ 475 typedef struct ae_state 476 { 477 /* 478 * endianness type: AE_LITTLE_ENDIAN or AE_BIG_ENDIAN 479 */ 480 ae_int_t endianness; 481 482 /* 483 * double value for NAN 484 */ 485 double v_nan; 486 487 /* 488 * double value for +INF 489 */ 490 double v_posinf; 491 492 /* 493 * double value for -INF 494 */ 495 double v_neginf; 496 497 /* 498 * pointer to the top block in a stack of frames 499 * which hold dynamically allocated objects 500 */ 501 ae_dyn_block * volatile p_top_block; 502 ae_dyn_block last_block; 503 504 /* 505 * jmp_buf pointer for internal C-style exception handling 506 */ 507 jmp_buf * volatile break_jump; 508 509 /* 510 * ae_error_type of the last error (filled when exception is thrown) 511 */ 512 ae_error_type volatile last_error; 513 514 /* 515 * human-readable message (filled when exception is thrown) 516 */ 517 const char* volatile error_msg; 518 519 /* 520 * Flags: call-local settings for ALGLIB 521 */ 522 ae_uint64_t flags; 523 524 /* 525 * threading information: 526 * a) current thread pool 527 * b) current worker thread 528 * c) parent task (one we are solving right now) 529 * d) thread exception handler (function which must be called 530 * by ae_assert before raising exception). 531 * 532 * NOTE: we use void* to store pointers in order to avoid explicit dependency on smp.h 533 */ 534 void *worker_thread; 535 void *parent_task; 536 void (*thread_exception_handler)(void*); 537 538 } ae_state; 539 540 /************************************************************************ 541 Serializer: 542 543 * ae_stream_writer type is a function pointer for stream writer method; 544 this pointer is used by X-core for out-of-core serialization (say, to 545 serialize ALGLIB structure directly to managed C# stream). 546 547 This function accepts two parameters: pointer to ANSI (7-bit) string 548 and pointer-sized integer passed to serializer during initialization. 549 String being passed is a part of the data stream; aux paramerer may be 550 arbitrary value intended to be used by actual implementation of stream 551 writer. String parameter may include spaces and linefeed symbols, it 552 should be written to stream as is. 553 554 Return value must be zero for success or non-zero for failure. 555 556 * ae_stream_reader type is a function pointer for stream reader method; 557 this pointer is used by X-core for out-of-core unserialization (say, to 558 unserialize ALGLIB structure directly from managed C# stream). 559 560 This function accepts three parameters: pointer-sized integer passed to 561 serializer during initialization; number of symbols to read from 562 stream; pointer to buffer used to store next token read from stream 563 (ANSI encoding is used, buffer is large enough to store all symbols and 564 trailing zero symbol). 565 566 Number of symbols to read is always positive. 567 568 After being called by X-core, this function must: 569 * skip all space and linefeed characters from the current position at 570 the stream and until first non-space non-linefeed character is found 571 * read exactly cnt symbols from stream to buffer; check that all 572 symbols being read are non-space non-linefeed ones 573 * append trailing zero symbol to buffer 574 * return value must be zero on success, non-zero if even one of the 575 conditions above fails. When reader returns non-zero value, contents 576 of buf is not used. 577 ************************************************************************/ 578 typedef char(*ae_stream_writer)(const char *p_string, ae_int_t aux); 579 typedef char(*ae_stream_reader)(ae_int_t aux, ae_int_t cnt, char *p_buf); 580 581 typedef struct 582 { 583 ae_int_t mode; 584 ae_int_t entries_needed; 585 ae_int_t entries_saved; 586 ae_int_t bytes_asked; 587 ae_int_t bytes_written; 588 589 #ifdef AE_USE_CPP_SERIALIZATION 590 std::string *out_cppstr; 591 #endif 592 char *out_str; /* pointer to the current position at the output buffer; advanced with each write operation */ 593 const char *in_str; /* pointer to the current position at the input buffer; advanced with each read operation */ 594 ae_int_t stream_aux; 595 ae_stream_writer stream_writer; 596 ae_stream_reader stream_reader; 597 } ae_serializer; 598 599 600 typedef struct ae_vector 601 { 602 /* 603 * Number of elements in array, cnt>=0 604 */ 605 ae_int_t cnt; 606 607 /* 608 * Either DT_BOOL/DT_BYTE, DT_INT, DT_REAL or DT_COMPLEX 609 */ 610 ae_datatype datatype; 611 612 /* 613 * If ptr points to memory owned and managed by ae_vector itself, 614 * this field is ae_false. If vector was attached to x_vector structure 615 * with ae_vector_init_attach_to_x(), this field is ae_true. 616 */ 617 ae_bool is_attached; 618 619 /* 620 * ae_dyn_block structure which manages data in ptr. This structure 621 * is responsible for automatic deletion of object when its frame 622 * is destroyed. 623 */ 624 ae_dyn_block data; 625 626 /* 627 * Pointer to data. 628 * User usually works with this field. 629 */ 630 union 631 { 632 void *p_ptr; 633 ae_bool *p_bool; 634 unsigned char *p_ubyte; 635 ae_int_t *p_int; 636 double *p_double; 637 ae_complex *p_complex; 638 } ptr; 639 } ae_vector; 640 641 typedef struct ae_matrix 642 { 643 ae_int_t rows; 644 ae_int_t cols; 645 ae_int_t stride; 646 ae_datatype datatype; 647 648 /* 649 * If ptr points to memory owned and managed by ae_vector itself, 650 * this field is ae_false. If vector was attached to x_vector structure 651 * with ae_vector_init_attach_to_x(), this field is ae_true. 652 */ 653 ae_bool is_attached; 654 655 ae_dyn_block data; 656 union 657 { 658 void *p_ptr; 659 void **pp_void; 660 ae_bool **pp_bool; 661 ae_int_t **pp_int; 662 double **pp_double; 663 ae_complex **pp_complex; 664 } ptr; 665 } ae_matrix; 666 667 typedef struct ae_smart_ptr 668 { 669 /* pointer to subscriber; all changes in ptr are translated to subscriber */ 670 void **subscriber; 671 672 /* pointer to object */ 673 void *ptr; 674 675 /* whether smart pointer owns ptr */ 676 ae_bool is_owner; 677 678 /* whether object pointed by ptr is dynamic - clearing such object requires BOTH 679 calling destructor function AND calling ae_free for memory occupied by object. */ 680 ae_bool is_dynamic; 681 682 /* destructor function for pointer; clears all dynamically allocated memory */ 683 void (*destroy)(void*); 684 685 /* frame entry; used to ensure automatic deallocation of smart pointer in case of exception/exit */ 686 ae_dyn_block frame_entry; 687 } ae_smart_ptr; 688 689 690 /************************************************************************* 691 Lock. 692 693 This structure provides OS-independent non-reentrant lock: 694 * under Windows/Posix systems it uses system-provided locks 695 * under Boost it uses OS-independent lock provided by Boost package 696 * when no OS is defined, it uses "fake lock" (just stub which is not thread-safe): 697 a) "fake lock" can be in locked or free mode 698 b) "fake lock" can be used only from one thread - one which created lock 699 c) when thread acquires free lock, it immediately returns 700 d) when thread acquires busy lock, program is terminated 701 (because lock is already acquired and no one else can free it) 702 *************************************************************************/ 703 typedef struct 704 { 705 /* 706 * Pointer to _lock structure. This pointer has type void* in order to 707 * make header file OS-independent (lock declaration depends on OS). 708 */ 709 void *lock_ptr; 710 711 /* 712 * For eternal=false this field manages pointer to _lock structure. 713 * 714 * ae_dyn_block structure is responsible for automatic deletion of 715 * the memory allocated for the pointer when its frame is destroyed. 716 */ 717 ae_dyn_block db; 718 719 /* 720 * Whether we have eternal lock object (used by thread pool) or 721 * transient lock. Eternal locks are allocated without using ae_dyn_block 722 * structure and do not allow deallocation. 723 */ 724 ae_bool eternal; 725 } ae_lock; 726 727 728 /************************************************************************* 729 Shared pool: data structure used to provide thread-safe access to pool of 730 temporary variables. 731 *************************************************************************/ 732 typedef struct ae_shared_pool_entry 733 { 734 void * volatile obj; 735 void * volatile next_entry; 736 } ae_shared_pool_entry; 737 738 typedef struct ae_shared_pool 739 { 740 /* lock object which protects pool */ 741 ae_lock pool_lock; 742 743 /* seed object (used to create new instances of temporaries) */ 744 void * volatile seed_object; 745 746 /* 747 * list of recycled OBJECTS: 748 * 1. entries in this list store pointers to recycled objects 749 * 2. every time we retrieve object, we retrieve first entry from this list, 750 * move it to recycled_entries and return its obj field to caller/ 751 */ 752 ae_shared_pool_entry * volatile recycled_objects; 753 754 /* 755 * list of recycled ENTRIES: 756 * 1. this list holds entries which are not used to store recycled objects; 757 * every time recycled object is retrieved, its entry is moved to this list. 758 * 2. every time object is recycled, we try to fetch entry for him from this list 759 * before allocating it with malloc() 760 */ 761 ae_shared_pool_entry * volatile recycled_entries; 762 763 /* enumeration pointer, points to current recycled object*/ 764 ae_shared_pool_entry * volatile enumeration_counter; 765 766 /* size of object; this field is used when we call malloc() for new objects */ 767 ae_int_t size_of_object; 768 769 /* initializer function; accepts pointer to malloc'ed object, initializes its fields */ 770 void (*init)(void* dst, ae_state* state, ae_bool make_automatic); 771 772 /* copy constructor; accepts pointer to malloc'ed, but not initialized object */ 773 void (*init_copy)(void* dst, void* src, ae_state* state, ae_bool make_automatic); 774 775 /* destructor function; */ 776 void (*destroy)(void* ptr); 777 778 /* frame entry; contains pointer to the pool object itself */ 779 ae_dyn_block frame_entry; 780 } ae_shared_pool; 781 782 void ae_never_call_it(); 783 void ae_set_dbg_flag(ae_int64_t flag_id, ae_int64_t flag_val); 784 ae_int64_t ae_get_dbg_value(ae_int64_t id); 785 void ae_set_global_threading(ae_uint64_t flg_value); 786 ae_uint64_t ae_get_global_threading(); 787 788 /************************************************************************ 789 Debugging and tracing functions 790 ************************************************************************/ 791 void ae_set_error_flag(ae_bool *p_flag, ae_bool cond, const char *filename, int lineno, const char *xdesc); 792 const char * ae_get_last_error_file(); 793 int ae_get_last_error_line(); 794 const char * ae_get_last_error_xdesc(); 795 796 void ae_trace_file(const char *tags, const char *filename); 797 void ae_trace_disable(); 798 ae_bool ae_is_trace_enabled(const char *tag); 799 void ae_trace(const char * printf_fmt, ...); 800 801 int ae_tickcount(); 802 803 804 /************************************************************************ 805 ... 806 ************************************************************************/ 807 ae_int_t ae_misalignment(const void *ptr, size_t alignment); 808 void* ae_align(void *ptr, size_t alignment); 809 ae_int_t ae_get_effective_workers(ae_int_t nworkers); 810 void ae_optional_atomic_add_i(ae_int_t *p, ae_int_t v); 811 void ae_optional_atomic_sub_i(ae_int_t *p, ae_int_t v); 812 813 void* aligned_malloc(size_t size, size_t alignment); 814 void* aligned_extract_ptr(void *block); 815 void aligned_free(void *block); 816 void* eternal_malloc(size_t size); 817 #if AE_MALLOC==AE_BASIC_STATIC_MALLOC 818 void set_memory_pool(void *ptr, size_t size); 819 void memory_pool_stats(ae_int_t *bytes_used, ae_int_t *bytes_free); 820 #endif 821 822 void* ae_malloc(size_t size, ae_state *state); 823 void ae_free(void *p); 824 ae_int_t ae_sizeof(ae_datatype datatype); 825 ae_bool ae_check_zeros(const void *ptr, ae_int_t n); 826 void ae_touch_ptr(void *p); 827 828 void ae_state_init(ae_state *state); 829 void ae_state_clear(ae_state *state); 830 void ae_state_set_break_jump(ae_state *state, jmp_buf *buf); 831 void ae_state_set_flags(ae_state *state, ae_uint64_t flags); 832 void ae_clean_up_before_breaking(ae_state *state); 833 void ae_break(ae_state *state, ae_error_type error_type, const char *msg); 834 835 void ae_frame_make(ae_state *state, ae_frame *tmp); 836 void ae_frame_leave(ae_state *state); 837 838 void ae_db_attach(ae_dyn_block *block, ae_state *state); 839 void ae_db_init(ae_dyn_block *block, ae_int_t size, ae_state *state, ae_bool make_automatic); 840 void ae_db_realloc(ae_dyn_block *block, ae_int_t size, ae_state *state); 841 void ae_db_free(ae_dyn_block *block); 842 void ae_db_swap(ae_dyn_block *block1, ae_dyn_block *block2); 843 844 void ae_vector_init(ae_vector *dst, ae_int_t size, ae_datatype datatype, ae_state *state, ae_bool make_automatic); 845 void ae_vector_init_copy(ae_vector *dst, ae_vector *src, ae_state *state, ae_bool make_automatic); 846 void ae_vector_init_from_x(ae_vector *dst, x_vector *src, ae_state *state, ae_bool make_automatic); 847 void ae_vector_init_attach_to_x(ae_vector *dst, x_vector *src, ae_state *state, ae_bool make_automatic); 848 void ae_vector_set_length(ae_vector *dst, ae_int_t newsize, ae_state *state); 849 void ae_vector_resize(ae_vector *dst, ae_int_t newsize, ae_state *state); 850 void ae_vector_clear(ae_vector *dst); 851 void ae_vector_destroy(ae_vector *dst); 852 void ae_swap_vectors(ae_vector *vec1, ae_vector *vec2); 853 854 void ae_matrix_init(ae_matrix *dst, ae_int_t rows, ae_int_t cols, ae_datatype datatype, ae_state *state, ae_bool make_automatic); 855 void ae_matrix_init_copy(ae_matrix *dst, ae_matrix *src, ae_state *state, ae_bool make_automatic); 856 void ae_matrix_init_from_x(ae_matrix *dst, x_matrix *src, ae_state *state, ae_bool make_automatic); 857 void ae_matrix_init_attach_to_x(ae_matrix *dst, x_matrix *src, ae_state *state, ae_bool make_automatic); 858 void ae_matrix_set_length(ae_matrix *dst, ae_int_t rows, ae_int_t cols, ae_state *state); 859 void ae_matrix_clear(ae_matrix *dst); 860 void ae_matrix_destroy(ae_matrix *dst); 861 void ae_swap_matrices(ae_matrix *mat1, ae_matrix *mat2); 862 863 void ae_smart_ptr_init(ae_smart_ptr *dst, void **subscriber, ae_state *state, ae_bool make_automatic); 864 void ae_smart_ptr_clear(void *_dst); /* accepts ae_smart_ptr* */ 865 void ae_smart_ptr_destroy(void *_dst); 866 void ae_smart_ptr_assign(ae_smart_ptr *dst, void *new_ptr, ae_bool is_owner, ae_bool is_dynamic, void (*destroy)(void*)); 867 void ae_smart_ptr_release(ae_smart_ptr *dst); 868 869 void ae_yield(); 870 void ae_init_lock(ae_lock *lock, ae_state *state, ae_bool make_automatic); 871 void ae_init_lock_eternal(ae_lock *lock); 872 void ae_acquire_lock(ae_lock *lock); 873 void ae_release_lock(ae_lock *lock); 874 void ae_free_lock(ae_lock *lock); 875 876 void ae_shared_pool_init(void *_dst, ae_state *state, ae_bool make_automatic); 877 void ae_shared_pool_init_copy(void *_dst, void *_src, ae_state *state, ae_bool make_automatic); 878 void ae_shared_pool_clear(void *dst); 879 void ae_shared_pool_destroy(void *dst); 880 ae_bool ae_shared_pool_is_initialized(void *_dst); 881 void ae_shared_pool_set_seed( 882 ae_shared_pool *dst, 883 void *seed_object, 884 ae_int_t size_of_object, 885 void (*init)(void* dst, ae_state* state, ae_bool make_automatic), 886 void (*init_copy)(void* dst, void* src, ae_state* state, ae_bool make_automatic), 887 void (*destroy)(void* ptr), 888 ae_state *state); 889 void ae_shared_pool_retrieve( 890 ae_shared_pool *pool, 891 ae_smart_ptr *pptr, 892 ae_state *state); 893 void ae_shared_pool_recycle( 894 ae_shared_pool *pool, 895 ae_smart_ptr *pptr, 896 ae_state *state); 897 void ae_shared_pool_clear_recycled( 898 ae_shared_pool *pool, 899 ae_state *state); 900 void ae_shared_pool_first_recycled( 901 ae_shared_pool *pool, 902 ae_smart_ptr *pptr, 903 ae_state *state); 904 void ae_shared_pool_next_recycled( 905 ae_shared_pool *pool, 906 ae_smart_ptr *pptr, 907 ae_state *state); 908 void ae_shared_pool_reset( 909 ae_shared_pool *pool, 910 ae_state *state); 911 912 void ae_x_set_vector(x_vector *dst, ae_vector *src, ae_state *state); 913 void ae_x_set_matrix(x_matrix *dst, ae_matrix *src, ae_state *state); 914 void ae_x_attach_to_vector(x_vector *dst, ae_vector *src); 915 void ae_x_attach_to_matrix(x_matrix *dst, ae_matrix *src); 916 917 void x_vector_clear(x_vector *dst); 918 919 ae_bool x_is_symmetric(x_matrix *a); 920 ae_bool x_is_hermitian(x_matrix *a); 921 ae_bool x_force_symmetric(x_matrix *a); 922 ae_bool x_force_hermitian(x_matrix *a); 923 ae_bool ae_is_symmetric(ae_matrix *a); 924 ae_bool ae_is_hermitian(ae_matrix *a); 925 ae_bool ae_force_symmetric(ae_matrix *a); 926 ae_bool ae_force_hermitian(ae_matrix *a); 927 928 void ae_serializer_init(ae_serializer *serializer); 929 void ae_serializer_clear(ae_serializer *serializer); 930 931 void ae_serializer_alloc_start(ae_serializer *serializer); 932 void ae_serializer_alloc_entry(ae_serializer *serializer); 933 void ae_serializer_alloc_byte_array(ae_serializer *serializer, ae_vector *bytes); 934 ae_int_t ae_serializer_get_alloc_size(ae_serializer *serializer); 935 936 #ifdef AE_USE_CPP_SERIALIZATION 937 void ae_serializer_sstart_str(ae_serializer *serializer, std::string *buf); 938 void ae_serializer_ustart_str(ae_serializer *serializer, const std::string *buf); 939 void ae_serializer_sstart_stream(ae_serializer *serializer, std::ostream *stream); 940 void ae_serializer_ustart_stream(ae_serializer *serializer, const std::istream *stream); 941 #endif 942 void ae_serializer_sstart_str(ae_serializer *serializer, char *buf); 943 void ae_serializer_ustart_str(ae_serializer *serializer, const char *buf); 944 void ae_serializer_sstart_stream(ae_serializer *serializer, ae_stream_writer writer, ae_int_t aux); 945 void ae_serializer_ustart_stream(ae_serializer *serializer, ae_stream_reader reader, ae_int_t aux); 946 947 void ae_serializer_serialize_bool(ae_serializer *serializer, ae_bool v, ae_state *state); 948 void ae_serializer_serialize_int(ae_serializer *serializer, ae_int_t v, ae_state *state); 949 void ae_serializer_serialize_int64(ae_serializer *serializer, ae_int64_t v, ae_state *state); 950 void ae_serializer_serialize_double(ae_serializer *serializer, double v, ae_state *state); 951 void ae_serializer_serialize_byte_array(ae_serializer *serializer, ae_vector *bytes, ae_state *state); 952 void ae_serializer_unserialize_bool(ae_serializer *serializer, ae_bool *v, ae_state *state); 953 void ae_serializer_unserialize_int(ae_serializer *serializer, ae_int_t *v, ae_state *state); 954 void ae_serializer_unserialize_int64(ae_serializer *serializer, ae_int64_t *v, ae_state *state); 955 void ae_serializer_unserialize_double(ae_serializer *serializer, double *v, ae_state *state); 956 void ae_serializer_unserialize_byte_array(ae_serializer *serializer, ae_vector *bytes, ae_state *state); 957 958 void ae_serializer_stop(ae_serializer *serializer, ae_state *state); 959 960 /************************************************************************ 961 Service functions 962 ************************************************************************/ 963 void ae_assert(ae_bool cond, const char *msg, ae_state *state); 964 ae_int_t ae_cpuid(); 965 966 /************************************************************************ 967 Real math functions: 968 * IEEE-compliant floating point comparisons 969 * standard functions 970 ************************************************************************/ 971 ae_bool ae_fp_eq(double v1, double v2); 972 ae_bool ae_fp_neq(double v1, double v2); 973 ae_bool ae_fp_less(double v1, double v2); 974 ae_bool ae_fp_less_eq(double v1, double v2); 975 ae_bool ae_fp_greater(double v1, double v2); 976 ae_bool ae_fp_greater_eq(double v1, double v2); 977 978 ae_bool ae_isfinite_stateless(double x, ae_int_t endianness); 979 ae_bool ae_isnan_stateless(double x, ae_int_t endianness); 980 ae_bool ae_isinf_stateless(double x, ae_int_t endianness); 981 ae_bool ae_isposinf_stateless(double x, ae_int_t endianness); 982 ae_bool ae_isneginf_stateless(double x, ae_int_t endianness); 983 984 ae_int_t ae_get_endianness(); 985 986 ae_bool ae_isfinite(double x,ae_state *state); 987 ae_bool ae_isnan(double x, ae_state *state); 988 ae_bool ae_isinf(double x, ae_state *state); 989 ae_bool ae_isposinf(double x,ae_state *state); 990 ae_bool ae_isneginf(double x,ae_state *state); 991 992 double ae_fabs(double x, ae_state *state); 993 ae_int_t ae_iabs(ae_int_t x, ae_state *state); 994 double ae_sqr(double x, ae_state *state); 995 double ae_sqrt(double x, ae_state *state); 996 997 ae_int_t ae_sign(double x, ae_state *state); 998 ae_int_t ae_round(double x, ae_state *state); 999 ae_int_t ae_trunc(double x, ae_state *state); 1000 ae_int_t ae_ifloor(double x, ae_state *state); 1001 ae_int_t ae_iceil(double x, ae_state *state); 1002 1003 ae_int_t ae_maxint(ae_int_t m1, ae_int_t m2, ae_state *state); 1004 ae_int_t ae_minint(ae_int_t m1, ae_int_t m2, ae_state *state); 1005 double ae_maxreal(double m1, double m2, ae_state *state); 1006 double ae_minreal(double m1, double m2, ae_state *state); 1007 double ae_randomreal(ae_state *state); 1008 ae_int_t ae_randominteger(ae_int_t maxv, ae_state *state); 1009 1010 double ae_sin(double x, ae_state *state); 1011 double ae_cos(double x, ae_state *state); 1012 double ae_tan(double x, ae_state *state); 1013 double ae_sinh(double x, ae_state *state); 1014 double ae_cosh(double x, ae_state *state); 1015 double ae_tanh(double x, ae_state *state); 1016 double ae_asin(double x, ae_state *state); 1017 double ae_acos(double x, ae_state *state); 1018 double ae_atan(double x, ae_state *state); 1019 double ae_atan2(double y, double x, ae_state *state); 1020 1021 double ae_log(double x, ae_state *state); 1022 double ae_pow(double x, double y, ae_state *state); 1023 double ae_exp(double x, ae_state *state); 1024 1025 /************************************************************************ 1026 Complex math functions: 1027 * basic arithmetic operations 1028 * standard functions 1029 ************************************************************************/ 1030 ae_complex ae_complex_from_i(ae_int_t v); 1031 ae_complex ae_complex_from_d(double v); 1032 1033 ae_complex ae_c_neg(ae_complex lhs); 1034 ae_bool ae_c_eq(ae_complex lhs, ae_complex rhs); 1035 ae_bool ae_c_neq(ae_complex lhs, ae_complex rhs); 1036 ae_complex ae_c_add(ae_complex lhs, ae_complex rhs); 1037 ae_complex ae_c_mul(ae_complex lhs, ae_complex rhs); 1038 ae_complex ae_c_sub(ae_complex lhs, ae_complex rhs); 1039 ae_complex ae_c_div(ae_complex lhs, ae_complex rhs); 1040 ae_bool ae_c_eq_d(ae_complex lhs, double rhs); 1041 ae_bool ae_c_neq_d(ae_complex lhs, double rhs); 1042 ae_complex ae_c_add_d(ae_complex lhs, double rhs); 1043 ae_complex ae_c_mul_d(ae_complex lhs, double rhs); 1044 ae_complex ae_c_sub_d(ae_complex lhs, double rhs); 1045 ae_complex ae_c_d_sub(double lhs, ae_complex rhs); 1046 ae_complex ae_c_div_d(ae_complex lhs, double rhs); 1047 ae_complex ae_c_d_div(double lhs, ae_complex rhs); 1048 1049 ae_complex ae_c_conj(ae_complex lhs, ae_state *state); 1050 ae_complex ae_c_sqr(ae_complex lhs, ae_state *state); 1051 double ae_c_abs(ae_complex z, ae_state *state); 1052 1053 /************************************************************************ 1054 Complex BLAS operations 1055 ************************************************************************/ 1056 ae_complex ae_v_cdotproduct(const ae_complex *v0, ae_int_t stride0, const char *conj0, const ae_complex *v1, ae_int_t stride1, const char *conj1, ae_int_t n); 1057 void ae_v_cmove(ae_complex *vdst, ae_int_t stride_dst, const ae_complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1058 void ae_v_cmoveneg(ae_complex *vdst, ae_int_t stride_dst, const ae_complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1059 void ae_v_cmoved(ae_complex *vdst, ae_int_t stride_dst, const ae_complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha); 1060 void ae_v_cmovec(ae_complex *vdst, ae_int_t stride_dst, const ae_complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha); 1061 void ae_v_cadd(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1062 void ae_v_caddd(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha); 1063 void ae_v_caddc(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha); 1064 void ae_v_csub(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1065 void ae_v_csubd(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha); 1066 void ae_v_csubc(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha); 1067 void ae_v_cmuld(ae_complex *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 1068 void ae_v_cmulc(ae_complex *vdst, ae_int_t stride_dst, ae_int_t n, ae_complex alpha); 1069 1070 /************************************************************************ 1071 Real BLAS operations 1072 ************************************************************************/ 1073 double ae_v_dotproduct(const double *v0, ae_int_t stride0, const double *v1, ae_int_t stride1, ae_int_t n); 1074 void ae_v_move(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 1075 void ae_v_moveneg(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 1076 void ae_v_moved(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1077 void ae_v_add(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 1078 void ae_v_addd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1079 void ae_v_sub(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 1080 void ae_v_subd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1081 void ae_v_muld(double *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 1082 1083 /************************************************************************ 1084 Other functions 1085 ************************************************************************/ 1086 ae_int_t ae_v_len(ae_int_t a, ae_int_t b); 1087 1088 /* 1089 extern const double ae_machineepsilon; 1090 extern const double ae_maxrealnumber; 1091 extern const double ae_minrealnumber; 1092 extern const double ae_pi; 1093 */ 1094 #define ae_machineepsilon 5E-16 1095 #define ae_maxrealnumber 1E300 1096 #define ae_minrealnumber 1E-300 1097 #define ae_pi 3.1415926535897932384626433832795 1098 1099 1100 /************************************************************************ 1101 RComm functions 1102 ************************************************************************/ 1103 typedef struct rcommstate 1104 { 1105 int stage; 1106 ae_vector ia; 1107 ae_vector ba; 1108 ae_vector ra; 1109 ae_vector ca; 1110 } rcommstate; 1111 void _rcommstate_init(rcommstate* p, ae_state *_state, ae_bool make_automatic); 1112 void _rcommstate_init_copy(rcommstate* dst, rcommstate* src, ae_state *_state, ae_bool make_automatic); 1113 void _rcommstate_clear(rcommstate* p); 1114 void _rcommstate_destroy(rcommstate* p); 1115 1116 1117 /************************************************************************ 1118 Allocation counters, inactive by default. 1119 Turned on when needed for debugging purposes. 1120 1121 _alloc_counter is incremented by 1 on malloc(), decremented on free(). 1122 _alloc_counter_total is only incremented by 1. 1123 ************************************************************************/ 1124 extern ae_int_t _alloc_counter; 1125 extern ae_int_t _alloc_counter_total; 1126 extern ae_bool _use_alloc_counter; 1127 1128 1129 /************************************************************************ 1130 Malloc debugging: 1131 1132 * _force_malloc_failure - set this flag to ae_true in order to enforce 1133 failure of ALGLIB malloc(). Useful to debug handling of errors during 1134 memory allocation. As long as this flag is set, ALGLIB malloc will fail. 1135 * _malloc_failure_after - set it to non-zero value in order to enforce 1136 malloc failure as soon as _alloc_counter_total increases above value of 1137 this variable. This value has no effect if _use_alloc_counter is not 1138 set. 1139 ************************************************************************/ 1140 extern ae_bool _force_malloc_failure; 1141 extern ae_int_t _malloc_failure_after; 1142 1143 1144 /************************************************************************ 1145 Trace file descriptor (to be used by ALGLIB code which sends messages to 1146 trace log) 1147 ************************************************************************/ 1148 extern FILE *alglib_trace_file; 1149 1150 1151 /************************************************************************ 1152 debug functions (must be turned on by preprocessor definitions): 1153 * flushconsole(), fluches console 1154 * ae_debugrng(), returns random number generated with high-quality random numbers generator 1155 * ae_set_seed(), sets seed of the debug RNG (NON-THREAD-SAFE!!!) 1156 * ae_get_seed(), returns two seed values of the debug RNG (NON-THREAD-SAFE!!!) 1157 ************************************************************************/ 1158 #ifdef AE_DEBUG4WINDOWS 1159 #define flushconsole(s) fflush(stdout) 1160 #endif 1161 #ifdef AE_DEBUG4POSIX 1162 #define flushconsole(s) fflush(stdout) 1163 #endif 1164 1165 /************************************************************************ 1166 Internal macros, defined only when _ALGLIB_IMPL_DEFINES is defined before 1167 inclusion of this header file 1168 ************************************************************************/ 1169 #if defined(_ALGLIB_IMPL_DEFINES) 1170 #define _ALGLIB_SIMD_ALIGNMENT_DOUBLES 8 1171 #define _ALGLIB_SIMD_ALIGNMENT_BYTES (_ALGLIB_SIMD_ALIGNMENT_DOUBLES*8) 1172 /* 1173 * SIMD kernel dispatchers 1174 */ 1175 #if defined(_ALGLIB_HAS_SSE2_INTRINSICS) 1176 #define _ALGLIB_KKK_VOID_SSE2(fname,params) if( cached_cpuid&CPU_SSE2 ) { fname##_sse2 params; return; } 1177 #define _ALGLIB_KKK_RETURN_SSE2(fname,params) if( cached_cpuid&CPU_SSE2 ) { return fname##_sse2 params; } 1178 #else 1179 #define _ALGLIB_KKK_VOID_SSE2(fname,params) 1180 #define _ALGLIB_KKK_RETURN_SSE2(fname,params) 1181 #endif 1182 #if defined(_ALGLIB_HAS_AVX2_INTRINSICS) 1183 #define _ALGLIB_KKK_VOID_AVX2(fname,params) if( cached_cpuid&CPU_AVX2 ) { fname##_avx2 params; return; } 1184 #define _ALGLIB_KKK_RETURN_AVX2(fname,params) if( cached_cpuid&CPU_AVX2 ) { return fname##_avx2 params; } 1185 #else 1186 #define _ALGLIB_KKK_VOID_AVX2(fname,params) 1187 #define _ALGLIB_KKK_RETURN_AVX2(fname,params) 1188 #endif 1189 #if defined(_ALGLIB_HAS_FMA_INTRINSICS) 1190 #define _ALGLIB_KKK_VOID_FMA(fname,params) if( cached_cpuid&CPU_FMA ) { fname##_fma params; return; } 1191 #define _ALGLIB_KKK_RETURN_FMA(fname,params) if( cached_cpuid&CPU_FMA ) { return fname##_fma params; } 1192 #else 1193 #define _ALGLIB_KKK_VOID_FMA(fname,params) 1194 #define _ALGLIB_KKK_RETURN_FMA(fname,params) 1195 #endif 1196 1197 #if defined(_ALGLIB_HAS_SSE2_INTRINSICS) || defined(_ALGLIB_HAS_AVX2_INTRINSICS) 1198 #define _ALGLIB_KERNEL_VOID_SSE2_AVX2(fname,params) \ 1199 {\ 1200 ae_int_t cached_cpuid = ae_cpuid();\ 1201 _ALGLIB_KKK_VOID_AVX2(fname,params)\ 1202 _ALGLIB_KKK_VOID_SSE2(fname,params)\ 1203 } 1204 #define _ALGLIB_KERNEL_RETURN_SSE2_AVX2(fname,params) \ 1205 {\ 1206 ae_int_t cached_cpuid = ae_cpuid();\ 1207 _ALGLIB_KKK_RETURN_AVX2(fname,params)\ 1208 _ALGLIB_KKK_RETURN_SSE2(fname,params)\ 1209 } 1210 #else 1211 #define _ALGLIB_KERNEL_VOID_SSE2_AVX2(fname,params) {} 1212 #define _ALGLIB_KERNEL_RETURN_SSE2_AVX2(fname,params) {} 1213 #endif 1214 1215 #if defined(_ALGLIB_HAS_SSE2_INTRINSICS) || defined(_ALGLIB_HAS_AVX2_INTRINSICS) || defined(_ALGLIB_HAS_FMA_INTRINSICS) 1216 #define _ALGLIB_KERNEL_VOID_SSE2_AVX2_FMA(fname,params) \ 1217 {\ 1218 ae_int_t cached_cpuid = ae_cpuid();\ 1219 _ALGLIB_KKK_VOID_FMA(fname,params)\ 1220 _ALGLIB_KKK_VOID_AVX2(fname,params)\ 1221 _ALGLIB_KKK_VOID_SSE2(fname,params)\ 1222 } 1223 #define _ALGLIB_KERNEL_RETURN_SSE2_AVX2_FMA(fname,params) \ 1224 {\ 1225 ae_int_t cached_cpuid = ae_cpuid();\ 1226 _ALGLIB_KKK_RETURN_FMA(fname,params)\ 1227 _ALGLIB_KKK_RETURN_AVX2(fname,params)\ 1228 _ALGLIB_KKK_RETURN_SSE2(fname,params)\ 1229 } 1230 #else 1231 #define _ALGLIB_KERNEL_VOID_SSE2_AVX2_FMA(fname,params) {} 1232 #define _ALGLIB_KERNEL_RETURN_SSE2_AVX2_FMA(fname,params) {} 1233 #endif 1234 1235 #if defined(_ALGLIB_HAS_AVX2_INTRINSICS) || defined(_ALGLIB_HAS_FMA_INTRINSICS) 1236 #define _ALGLIB_KERNEL_VOID_AVX2_FMA(fname,params) \ 1237 {\ 1238 ae_int_t cached_cpuid = ae_cpuid();\ 1239 _ALGLIB_KKK_VOID_FMA(fname,params)\ 1240 _ALGLIB_KKK_VOID_AVX2(fname,params)\ 1241 } 1242 #define _ALGLIB_KERNEL_RETURN_AVX2_FMA(fname,params) \ 1243 {\ 1244 ae_int_t cached_cpuid = ae_cpuid();\ 1245 _ALGLIB_KKK_RETURN_FMA(fname,params)\ 1246 _ALGLIB_KKK_RETURN_AVX2(fname,params)\ 1247 } 1248 #else 1249 #define _ALGLIB_KERNEL_VOID_AVX2_FMA(fname,params) {} 1250 #define _ALGLIB_KERNEL_RETURN_AVX2_FMA(fname,params) {} 1251 #endif 1252 1253 #if defined(_ALGLIB_HAS_AVX2_INTRINSICS) 1254 #define _ALGLIB_KERNEL_VOID_AVX2(fname,params) \ 1255 {\ 1256 ae_int_t cached_cpuid = ae_cpuid();\ 1257 _ALGLIB_KKK_VOID_AVX2(fname,params)\ 1258 } 1259 #define _ALGLIB_KERNEL_RETURN_AVX2(fname,params) \ 1260 {\ 1261 ae_int_t cached_cpuid = ae_cpuid();\ 1262 _ALGLIB_KKK_RETURN_AVX2(fname,params)\ 1263 } 1264 #else 1265 #define _ALGLIB_KERNEL_VOID_AVX2(fname,params) {} 1266 #define _ALGLIB_KERNEL_RETURN_AVX2(fname,params) {} 1267 #endif 1268 1269 #ifdef FP_FAST_FMA 1270 #define APPROX_FMA(x, y, z) fma((x), (y), (z)) 1271 #else 1272 #define APPROX_FMA(x, y, z) ((x)*(y) + (z)) 1273 #endif 1274 1275 #endif 1276 1277 1278 } 1279 1280 1281 ///////////////////////////////////////////////////////////////////////// 1282 // 1283 // THIS SECTION CONTAINS DECLARATIONS FOR C++ RELATED FUNCTIONALITY 1284 // 1285 ///////////////////////////////////////////////////////////////////////// 1286 1287 namespace alglib 1288 { 1289 1290 typedef alglib_impl::ae_int_t ae_int_t; 1291 1292 /******************************************************************** 1293 Class forwards 1294 ********************************************************************/ 1295 class complex; 1296 1297 ae_int_t vlen(ae_int_t n1, ae_int_t n2); 1298 1299 /******************************************************************** 1300 Exception class. 1301 ********************************************************************/ 1302 #if !defined(AE_NO_EXCEPTIONS) 1303 class ap_error 1304 { 1305 public: 1306 std::string msg; 1307 1308 ap_error(); 1309 ap_error(const char *s); 1310 static void make_assertion(bool bClause); 1311 static void make_assertion(bool bClause, const char *p_msg); 1312 private: 1313 }; 1314 #endif 1315 1316 /******************************************************************** 1317 Complex number with double precision. 1318 ********************************************************************/ 1319 class complex 1320 { 1321 public: 1322 complex(); 1323 complex(const double &_x); 1324 complex(const double &_x, const double &_y); 1325 complex(const complex &z); 1326 1327 complex& operator= (const double& v); 1328 complex& operator+=(const double& v); 1329 complex& operator-=(const double& v); 1330 complex& operator*=(const double& v); 1331 complex& operator/=(const double& v); 1332 1333 complex& operator= (const complex& z); 1334 complex& operator+=(const complex& z); 1335 complex& operator-=(const complex& z); 1336 complex& operator*=(const complex& z); 1337 complex& operator/=(const complex& z); 1338 1339 alglib_impl::ae_complex* c_ptr(); 1340 const alglib_impl::ae_complex* c_ptr() const; 1341 1342 #if !defined(AE_NO_EXCEPTIONS) 1343 std::string tostring(int dps) const; 1344 #endif 1345 1346 double x, y; 1347 }; 1348 1349 const alglib::complex operator/(const alglib::complex& lhs, const alglib::complex& rhs); 1350 bool operator==(const alglib::complex& lhs, const alglib::complex& rhs); 1351 bool operator!=(const alglib::complex& lhs, const alglib::complex& rhs); 1352 const alglib::complex operator+(const alglib::complex& lhs); 1353 const alglib::complex operator-(const alglib::complex& lhs); 1354 const alglib::complex operator+(const alglib::complex& lhs, const alglib::complex& rhs); 1355 const alglib::complex operator+(const alglib::complex& lhs, const double& rhs); 1356 const alglib::complex operator+(const double& lhs, const alglib::complex& rhs); 1357 const alglib::complex operator-(const alglib::complex& lhs, const alglib::complex& rhs); 1358 const alglib::complex operator-(const alglib::complex& lhs, const double& rhs); 1359 const alglib::complex operator-(const double& lhs, const alglib::complex& rhs); 1360 const alglib::complex operator*(const alglib::complex& lhs, const alglib::complex& rhs); 1361 const alglib::complex operator*(const alglib::complex& lhs, const double& rhs); 1362 const alglib::complex operator*(const double& lhs, const alglib::complex& rhs); 1363 const alglib::complex operator/(const alglib::complex& lhs, const alglib::complex& rhs); 1364 const alglib::complex operator/(const double& lhs, const alglib::complex& rhs); 1365 const alglib::complex operator/(const alglib::complex& lhs, const double& rhs); 1366 double abscomplex(const alglib::complex &z); 1367 alglib::complex conj(const alglib::complex &z); 1368 alglib::complex csqr(const alglib::complex &z); 1369 1370 /******************************************************************** 1371 Level 1 BLAS functions 1372 1373 NOTES: 1374 * destination and source should NOT overlap 1375 * stride is assumed to be positive, but it is not 1376 assert'ed within function 1377 * conj_src parameter specifies whether complex source is conjugated 1378 before processing or not. Pass string which starts with 'N' or 'n' 1379 ("No conj", for example) to use unmodified parameter. All other 1380 values will result in conjugation of input, but it is recommended 1381 to use "Conj" in such cases. 1382 ********************************************************************/ 1383 double vdotproduct(const double *v0, ae_int_t stride0, const double *v1, ae_int_t stride1, ae_int_t n); 1384 double vdotproduct(const double *v1, const double *v2, ae_int_t N); 1385 1386 alglib::complex vdotproduct(const alglib::complex *v0, ae_int_t stride0, const char *conj0, const alglib::complex *v1, ae_int_t stride1, const char *conj1, ae_int_t n); 1387 alglib::complex vdotproduct(const alglib::complex *v1, const alglib::complex *v2, ae_int_t N); 1388 1389 void vmove(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 1390 void vmove(double *vdst, const double* vsrc, ae_int_t N); 1391 1392 void vmove(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1393 void vmove(alglib::complex *vdst, const alglib::complex* vsrc, ae_int_t N); 1394 1395 void vmoveneg(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 1396 void vmoveneg(double *vdst, const double *vsrc, ae_int_t N); 1397 1398 void vmoveneg(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1399 void vmoveneg(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N); 1400 1401 void vmove(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1402 void vmove(double *vdst, const double *vsrc, ae_int_t N, double alpha); 1403 1404 void vmove(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha); 1405 void vmove(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, double alpha); 1406 1407 void vmove(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex* vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, alglib::complex alpha); 1408 void vmove(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, alglib::complex alpha); 1409 1410 void vadd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 1411 void vadd(double *vdst, const double *vsrc, ae_int_t N); 1412 1413 void vadd(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1414 void vadd(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N); 1415 1416 void vadd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1417 void vadd(double *vdst, const double *vsrc, ae_int_t N, double alpha); 1418 1419 void vadd(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha); 1420 void vadd(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, double alpha); 1421 1422 void vadd(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, alglib::complex alpha); 1423 void vadd(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, alglib::complex alpha); 1424 1425 void vsub(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 1426 void vsub(double *vdst, const double *vsrc, ae_int_t N); 1427 1428 void vsub(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n); 1429 void vsub(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N); 1430 1431 void vsub(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1432 void vsub(double *vdst, const double *vsrc, ae_int_t N, double alpha); 1433 1434 void vsub(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha); 1435 void vsub(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, double alpha); 1436 1437 void vsub(alglib::complex *vdst, ae_int_t stride_dst, const alglib::complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, alglib::complex alpha); 1438 void vsub(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, alglib::complex alpha); 1439 1440 void vmul(double *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 1441 void vmul(double *vdst, ae_int_t N, double alpha); 1442 1443 void vmul(alglib::complex *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 1444 void vmul(alglib::complex *vdst, ae_int_t N, double alpha); 1445 1446 void vmul(alglib::complex *vdst, ae_int_t stride_dst, ae_int_t n, alglib::complex alpha); 1447 void vmul(alglib::complex *vdst, ae_int_t N, alglib::complex alpha); 1448 1449 1450 /******************************************************************** 1451 xparams type and several predefined constants 1452 ********************************************************************/ 1453 struct xparams 1454 { 1455 alglib_impl::ae_uint64_t flags; 1456 }; 1457 1458 extern const xparams &xdefault; 1459 extern const xparams &serial; 1460 extern const xparams ∥ 1461 1462 /******************************************************************** 1463 Threading functions 1464 ********************************************************************/ 1465 // nworkers can be 1, 2, ... ; or 0 for auto; or -1/-2/... for all except for one/two/... 1466 void setnworkers(alglib::ae_int_t nworkers); 1467 1468 // sets global threading settings to alglib::serial or alglib::parallel 1469 void setglobalthreading(const xparams settings); 1470 1471 // nworkers can be 1, 2, ... ; or 0 for auto; or -1/-2/... for all except for one/two/... 1472 alglib::ae_int_t getnworkers(); 1473 1474 /******************************************************************** 1475 internal functions used by test_x.cpp, interfaces for functions present 1476 in commercial ALGLIB but lacking in free edition. 1477 ********************************************************************/ 1478 ae_int_t _ae_cores_count(); 1479 void _ae_set_global_threading(alglib_impl::ae_uint64_t flg_value); 1480 alglib_impl::ae_uint64_t _ae_get_global_threading(); 1481 1482 /******************************************************************** 1483 1- and 2-dimensional arrays 1484 ********************************************************************/ 1485 class ae_vector_wrapper 1486 { 1487 public: 1488 // 1489 // Creates object attached to external ae_vector structure. 1490 // 1491 // NOTE: this function also checks that source ae_vector* has 1492 // required datatype. An exception is generated otherwise. 1493 // 1494 ae_vector_wrapper(alglib_impl::ae_vector *e_ptr, alglib_impl::ae_datatype datatype); 1495 1496 // 1497 // Creates zero-size vector of specific datatype 1498 // 1499 ae_vector_wrapper(alglib_impl::ae_datatype datatype); 1500 1501 // 1502 // Creates a copy of another vector (can be reference to one of the derived classes) 1503 // 1504 // NOTE: this function also checks that source ae_vector* has 1505 // required datatype. An exception is generated otherwise. 1506 // 1507 ae_vector_wrapper(const ae_vector_wrapper &rhs, alglib_impl::ae_datatype datatype); 1508 1509 // 1510 // Well, it is destructor... 1511 // 1512 virtual ~ae_vector_wrapper(); 1513 1514 // 1515 // For wrapper object allocated with allocate_own() this function 1516 // changes length, completely dropping previous contents. 1517 // 1518 // It does not work (throws exception) for frozen proxy objects. 1519 // 1520 void setlength(ae_int_t iLen); 1521 1522 // 1523 // Element count 1524 // 1525 ae_int_t length() const; 1526 1527 // 1528 // Access to internal C-structure used by C-core. 1529 // Not intended for external use. 1530 // 1531 const alglib_impl::ae_vector* c_ptr() const; 1532 alglib_impl::ae_vector* c_ptr(); 1533 private: 1534 ae_vector_wrapper(); 1535 ae_vector_wrapper(const ae_vector_wrapper &rhs); 1536 const ae_vector_wrapper& operator=(const ae_vector_wrapper &rhs); 1537 protected: 1538 #if !defined(AE_NO_EXCEPTIONS) 1539 // 1540 // Copies array given by string into current object. Additional 1541 // parameter DATATYPE contains information about type of the data 1542 // in S and type of the array to create. 1543 // 1544 // NOTE: this function is not supported in exception-free mode. 1545 // 1546 ae_vector_wrapper(const char *s, alglib_impl::ae_datatype datatype); 1547 #endif 1548 1549 // 1550 // This function attaches wrapper object to external x_vector structure; 1551 // "frozen proxy" mode is activated (you can read/write, but can not reallocate 1552 // and do not own memory of the vector). 1553 // 1554 // NOTE: initial state of wrapper object is assumed to be initialized; 1555 // all previously allocated memory is properly deallocated. 1556 // 1557 // NOTE: x_vector structure pointed by new_ptr is used only once; after 1558 // we fetch pointer to memory and its size, this structure is ignored 1559 // and not referenced anymore. So, you can pass pointers to temporary 1560 // x-structures which are deallocated immediately after you call attach_to() 1561 // 1562 // NOTE: state structure is used for error reporting purposes (longjmp on errors). 1563 // 1564 void attach_to(alglib_impl::x_vector *new_ptr, alglib_impl::ae_state *_state); 1565 1566 // 1567 // Assigns RHS to current object. Returns *this. 1568 // 1569 // It has several branches depending on target object status: 1570 // * in case it is proxy object, data are copied into memory pointed by 1571 // proxy. Function checks that source has exactly same size as target 1572 // (exception is thrown on failure). 1573 // * in case it is non-proxy object, data allocated by object are cleared 1574 // and a copy of RHS is created in target. 1575 // 1576 // NOTE: this function correctly handles assignments of the object to itself. 1577 // 1578 const ae_vector_wrapper& assign(const ae_vector_wrapper &rhs); 1579 1580 // 1581 // Pointer to ae_vector structure: 1582 // * ptr==&inner_vec means that wrapper object owns ae_vector structure and 1583 // is responsible for proper deallocation of its memory 1584 // * ptr!=&inner_vec means that wrapper object works with someone's other 1585 // ae_vector record and is not responsible for its memory; in this case 1586 // inner_vec is assumed to be uninitialized. 1587 // 1588 alglib_impl::ae_vector *ptr; 1589 1590 // 1591 // Inner ae_vector record. 1592 // Ignored for ptr!=&inner_rec. 1593 // 1594 alglib_impl::ae_vector inner_vec; 1595 1596 // 1597 // Whether this wrapper object is frozen proxy (you may read array, may 1598 // modify its value, but can not deallocate its memory or resize it) or not. 1599 // 1600 // If is_frozen_proxy==true and if: 1601 // * ptr==&inner_vec, it means that wrapper works with its own ae_vector 1602 // structure, but this structure points to externally allocated memory. 1603 // This memory is NOT owned by ae_vector object. 1604 // * ptr!=&inner_vec, it means that wrapper works with externally allocated 1605 // and managed ae_vector structure. Both memory pointed by ae_vector and 1606 // ae_vector structure itself are not owned by wrapper object. 1607 // 1608 bool is_frozen_proxy; 1609 }; 1610 1611 class boolean_1d_array : public ae_vector_wrapper 1612 { 1613 public: 1614 boolean_1d_array(); 1615 boolean_1d_array(const boolean_1d_array &rhs); 1616 boolean_1d_array(alglib_impl::ae_vector *p); 1617 const boolean_1d_array& operator=(const boolean_1d_array &rhs); 1618 virtual ~boolean_1d_array() ; 1619 1620 const ae_bool& operator()(ae_int_t i) const; 1621 ae_bool& operator()(ae_int_t i); 1622 1623 const ae_bool& operator[](ae_int_t i) const; 1624 ae_bool& operator[](ae_int_t i); 1625 1626 // 1627 // This function allocates array[iLen] and copies data 1628 // pointed by pContent to its memory. Completely independent 1629 // copy of data is created. 1630 // 1631 void setcontent(ae_int_t iLen, const bool *pContent ); 1632 1633 // 1634 // This function returns pointer to internal memory 1635 // 1636 ae_bool* getcontent(); 1637 const ae_bool* getcontent() const; 1638 1639 #if !defined(AE_NO_EXCEPTIONS) 1640 boolean_1d_array(const char *s); 1641 std::string tostring() const; 1642 #endif 1643 }; 1644 1645 class integer_1d_array : public ae_vector_wrapper 1646 { 1647 public: 1648 integer_1d_array(); 1649 integer_1d_array(const integer_1d_array &rhs); 1650 integer_1d_array(alglib_impl::ae_vector *p); 1651 const integer_1d_array& operator=(const integer_1d_array &rhs); 1652 virtual ~integer_1d_array(); 1653 1654 const ae_int_t& operator()(ae_int_t i) const; 1655 ae_int_t& operator()(ae_int_t i); 1656 1657 const ae_int_t& operator[](ae_int_t i) const; 1658 ae_int_t& operator[](ae_int_t i); 1659 1660 // 1661 // This function allocates array[iLen] and copies data 1662 // pointed by pContent to its memory. Completely independent 1663 // copy of data is created. 1664 // 1665 void setcontent(ae_int_t iLen, const ae_int_t *pContent ); 1666 1667 // 1668 // This function returns pointer to internal memory 1669 // 1670 ae_int_t* getcontent(); 1671 const ae_int_t* getcontent() const; 1672 1673 #if !defined(AE_NO_EXCEPTIONS) 1674 integer_1d_array(const char *s); 1675 std::string tostring() const; 1676 #endif 1677 }; 1678 1679 class real_1d_array : public ae_vector_wrapper 1680 { 1681 public: 1682 real_1d_array(); 1683 real_1d_array(const real_1d_array &rhs); 1684 real_1d_array(alglib_impl::ae_vector *p); 1685 const real_1d_array& operator=(const real_1d_array &rhs); 1686 virtual ~real_1d_array(); 1687 1688 const double& operator()(ae_int_t i) const; 1689 double& operator()(ae_int_t i); 1690 1691 const double& operator[](ae_int_t i) const; 1692 double& operator[](ae_int_t i); 1693 1694 // 1695 // This function allocates array[iLen] and copies data 1696 // pointed by pContent to its memory. Completely independent 1697 // copy of data is created. 1698 // 1699 void setcontent(ae_int_t iLen, const double *pContent); 1700 1701 // 1702 // This function attaches array to memory pointed by pContent. 1703 // No own memory is allocated, no copying of data is performed, 1704 // so pContent pointer should be valid as long as we work with 1705 // array. 1706 // 1707 // After you attach array object to external memory, it becomes 1708 // "frozen": it is possible to read/write array elements, but 1709 // it is not allowed to resize it (no setlength() calls). 1710 // 1711 void attach_to_ptr(ae_int_t iLen, double *pContent); 1712 1713 // 1714 // This function returns pointer to internal memory 1715 // 1716 double* getcontent(); 1717 const double* getcontent() const; 1718 1719 #if !defined(AE_NO_EXCEPTIONS) 1720 real_1d_array(const char *s); 1721 std::string tostring(int dps) const; 1722 #endif 1723 }; 1724 1725 class complex_1d_array : public ae_vector_wrapper 1726 { 1727 public: 1728 complex_1d_array(); 1729 complex_1d_array(const complex_1d_array &rhs); 1730 complex_1d_array(alglib_impl::ae_vector *p); 1731 const complex_1d_array& operator=(const complex_1d_array &rhs); 1732 virtual ~complex_1d_array(); 1733 1734 const alglib::complex& operator()(ae_int_t i) const; 1735 alglib::complex& operator()(ae_int_t i); 1736 1737 const alglib::complex& operator[](ae_int_t i) const; 1738 alglib::complex& operator[](ae_int_t i); 1739 1740 // 1741 // This function allocates array[iLen] and copies data 1742 // pointed by pContent to its memory. Completely independent 1743 // copy of data is created. 1744 // 1745 void setcontent(ae_int_t iLen, const alglib::complex *pContent ); 1746 alglib::complex* getcontent(); 1747 const alglib::complex* getcontent() const; 1748 1749 #if !defined(AE_NO_EXCEPTIONS) 1750 complex_1d_array(const char *s); 1751 std::string tostring(int dps) const; 1752 #endif 1753 }; 1754 1755 class ae_matrix_wrapper 1756 { 1757 public: 1758 // 1759 // Creates object attached to external ae_vector structure, with additional 1760 // check for matching datatypes (e_ptr->datatype==datatype is required). 1761 // 1762 ae_matrix_wrapper(alglib_impl::ae_matrix *e_ptr, alglib_impl::ae_datatype datatype); 1763 1764 // 1765 // Creates zero-sized matrix of specified datatype. 1766 // 1767 ae_matrix_wrapper(alglib_impl::ae_datatype datatype); 1768 1769 // 1770 // Creates copy of rhs, with additional check for matching datatypes 1771 // (rhs.datatype==datatype is required). 1772 // 1773 ae_matrix_wrapper(const ae_matrix_wrapper &rhs, alglib_impl::ae_datatype datatype); 1774 1775 // 1776 // Destructor 1777 // 1778 virtual ~ae_matrix_wrapper(); 1779 1780 1781 void setlength(ae_int_t rows, ae_int_t cols); 1782 ae_int_t rows() const; 1783 ae_int_t cols() const; 1784 bool isempty() const; 1785 ae_int_t getstride() const; 1786 1787 const alglib_impl::ae_matrix* c_ptr() const; 1788 alglib_impl::ae_matrix* c_ptr(); 1789 private: 1790 ae_matrix_wrapper(); 1791 ae_matrix_wrapper(const ae_matrix_wrapper &rhs); 1792 const ae_matrix_wrapper& operator=(const ae_matrix_wrapper &rhs); 1793 protected: 1794 #if !defined(AE_NO_EXCEPTIONS) 1795 // 1796 // Copies array given by string into current object. Additional 1797 // parameter DATATYPE contains information about type of the data 1798 // in S and type of the array to create. 1799 // 1800 // Current object is considered empty (this function should be 1801 // called from copy constructor). 1802 // 1803 ae_matrix_wrapper(const char *s, alglib_impl::ae_datatype datatype); 1804 #endif 1805 1806 // 1807 // This function attaches wrapper object to external x_vector structure; 1808 // "frozen proxy" mode is activated (you can read/write, but can not reallocate 1809 // and do not own memory of the vector). 1810 // 1811 // NOTE: initial state of wrapper object is assumed to be initialized; 1812 // all previously allocated memory is properly deallocated. 1813 // 1814 // NOTE: x_vector structure pointed by new_ptr is used only once; after 1815 // we fetch pointer to memory and its size, this structure is ignored 1816 // and not referenced anymore. So, you can pass pointers to temporary 1817 // x-structures which are deallocated immediately after you call attach_to() 1818 // 1819 // NOTE: state structure is used for error-handling (a longjmp is performed 1820 // on allocation error). All previously allocated memory is correctly 1821 // freed on error. 1822 // 1823 void attach_to(alglib_impl::x_matrix *new_ptr, alglib_impl::ae_state *_state); 1824 1825 // 1826 // This function initializes matrix and allocates own memory storage. 1827 // 1828 // NOTE: initial state of wrapper object is assumed to be uninitialized; 1829 // if ptr!=NULL on entry, it is considered critical error (abort is called). 1830 // 1831 void init(ae_int_t rows, ae_int_t cols, alglib_impl::ae_datatype datatype, alglib_impl::ae_state *_state); 1832 1833 // 1834 // Assigns RHS to current object. 1835 // 1836 // It has several branches depending on target object status: 1837 // * in case it is proxy object, data are copied into memory pointed by 1838 // proxy. Function checks that source has exactly same size as target 1839 // (exception is thrown on failure). 1840 // * in case it is non-proxy object, data allocated by object are cleared 1841 // and a copy of RHS is created in target. 1842 // 1843 // NOTE: this function correctly handles assignments of the object to itself. 1844 // 1845 const ae_matrix_wrapper & assign(const ae_matrix_wrapper &rhs); 1846 1847 1848 // 1849 // Pointer to ae_matrix structure: 1850 // * ptr==&inner_mat means that wrapper object owns ae_matrix structure and 1851 // is responsible for proper deallocation of its memory 1852 // * ptr!=&inner_mat means that wrapper object works with someone's other 1853 // ae_matrix record and is not responsible for its memory; in this case 1854 // inner_mat is assumed to be uninitialized. 1855 // 1856 alglib_impl::ae_matrix *ptr; 1857 1858 // 1859 // Inner ae_matrix record. 1860 // Ignored for ptr!=&inner_mat. 1861 // 1862 alglib_impl::ae_matrix inner_mat; 1863 1864 // 1865 // Whether this wrapper object is frozen proxy (you may read array, may 1866 // modify its value, but can not deallocate its memory or resize it) or not. 1867 // 1868 // If is_frozen_proxy==true and if: 1869 // * ptr==&inner_vec, it means that wrapper works with its own ae_vector 1870 // structure, but this structure points to externally allocated memory. 1871 // This memory is NOT owned by ae_vector object. 1872 // * ptr!=&inner_vec, it means that wrapper works with externally allocated 1873 // and managed ae_vector structure. Both memory pointed by ae_vector and 1874 // ae_vector structure itself are not owned by wrapper object. 1875 // 1876 bool is_frozen_proxy; 1877 }; 1878 1879 class boolean_2d_array : public ae_matrix_wrapper 1880 { 1881 public: 1882 boolean_2d_array(); 1883 boolean_2d_array(const boolean_2d_array &rhs); 1884 boolean_2d_array(alglib_impl::ae_matrix *p); 1885 virtual ~boolean_2d_array(); 1886 1887 const boolean_2d_array& operator=(const boolean_2d_array &rhs); 1888 1889 const ae_bool& operator()(ae_int_t i, ae_int_t j) const; 1890 ae_bool& operator()(ae_int_t i, ae_int_t j); 1891 1892 const ae_bool* operator[](ae_int_t i) const; 1893 ae_bool* operator[](ae_int_t i); 1894 1895 // 1896 // This function allocates array[irows,icols] and copies data 1897 // pointed by pContent to its memory. Completely independent 1898 // copy of data is created. 1899 // 1900 void setcontent(ae_int_t irows, ae_int_t icols, const bool *pContent ); 1901 1902 #if !defined(AE_NO_EXCEPTIONS) 1903 boolean_2d_array(const char *s); 1904 std::string tostring() const ; 1905 #endif 1906 }; 1907 1908 class integer_2d_array : public ae_matrix_wrapper 1909 { 1910 public: 1911 integer_2d_array(); 1912 integer_2d_array(const integer_2d_array &rhs); 1913 integer_2d_array(alglib_impl::ae_matrix *p); 1914 virtual ~integer_2d_array(); 1915 1916 const integer_2d_array& operator=(const integer_2d_array &rhs); 1917 1918 const ae_int_t& operator()(ae_int_t i, ae_int_t j) const; 1919 ae_int_t& operator()(ae_int_t i, ae_int_t j); 1920 1921 const ae_int_t* operator[](ae_int_t i) const; 1922 ae_int_t* operator[](ae_int_t i); 1923 1924 // 1925 // This function allocates array[irows,icols] and copies data 1926 // pointed by pContent to its memory. Completely independent 1927 // copy of data is created. 1928 // 1929 void setcontent(ae_int_t irows, ae_int_t icols, const ae_int_t *pContent ); 1930 1931 1932 #if !defined(AE_NO_EXCEPTIONS) 1933 integer_2d_array(const char *s); 1934 std::string tostring() const; 1935 #endif 1936 }; 1937 1938 class real_2d_array : public ae_matrix_wrapper 1939 { 1940 public: 1941 real_2d_array(); 1942 real_2d_array(const real_2d_array &rhs); 1943 real_2d_array(alglib_impl::ae_matrix *p); 1944 virtual ~real_2d_array(); 1945 1946 const real_2d_array& operator=(const real_2d_array &rhs); 1947 1948 const double& operator()(ae_int_t i, ae_int_t j) const; 1949 double& operator()(ae_int_t i, ae_int_t j); 1950 1951 const double* operator[](ae_int_t i) const; 1952 double* operator[](ae_int_t i); 1953 1954 // 1955 // This function allocates array[irows,icols] and copies data 1956 // pointed by pContent to its memory. Completely independent 1957 // copy of data is created. 1958 // 1959 void setcontent(ae_int_t irows, ae_int_t icols, const double *pContent); 1960 1961 // 1962 // This function attaches array to memory pointed by pContent: 1963 // * only minor amount of own memory is allocated - O(irows) bytes to 1964 // store precomputed pointers; but no costly copying of O(rows*cols) 1965 // data is performed. 1966 // * pContent pointer should be valid as long as we work with array 1967 // 1968 // After you attach array object to external memory, it becomes 1969 // "frozen": it is possible to read/write array elements, but 1970 // it is not allowed to resize it (no setlength() calls). 1971 // 1972 void attach_to_ptr(ae_int_t irows, ae_int_t icols, double *pContent); 1973 1974 #if !defined(AE_NO_EXCEPTIONS) 1975 real_2d_array(const char *s); 1976 std::string tostring(int dps) const; 1977 #endif 1978 }; 1979 1980 class complex_2d_array : public ae_matrix_wrapper 1981 { 1982 public: 1983 complex_2d_array(); 1984 complex_2d_array(const complex_2d_array &rhs); 1985 complex_2d_array(alglib_impl::ae_matrix *p); 1986 virtual ~complex_2d_array(); 1987 1988 const complex_2d_array& operator=(const complex_2d_array &rhs); 1989 1990 const alglib::complex& operator()(ae_int_t i, ae_int_t j) const; 1991 alglib::complex& operator()(ae_int_t i, ae_int_t j); 1992 1993 const alglib::complex* operator[](ae_int_t i) const; 1994 alglib::complex* operator[](ae_int_t i); 1995 1996 // 1997 // This function allocates array[irows,icols] and copies data 1998 // pointed by pContent to its memory. Completely independent 1999 // copy of data is created. 2000 // 2001 void setcontent(ae_int_t irows, ae_int_t icols, const alglib::complex *pContent ); 2002 2003 #if !defined(AE_NO_EXCEPTIONS) 2004 complex_2d_array(const char *s); 2005 std::string tostring(int dps) const; 2006 #endif 2007 }; 2008 2009 /******************************************************************** 2010 CSV operations: reading CSV file to real matrix. 2011 2012 This function reads CSV file and stores its contents to double 2013 precision 2D array. Format of the data file must conform to RFC 4180 2014 specification, with additional notes: 2015 * file size should be less than 2GB 2016 * ASCI encoding, UTF-8 without BOM (in header names) are supported 2017 * any character (comma/tab/space) may be used as field separator, as 2018 long as it is distinct from one used for decimal point 2019 * multiple subsequent field separators (say, two spaces) are treated 2020 as MULTIPLE separators, not one big separator 2021 * both comma and full stop may be used as decimal point. Parser will 2022 automatically determine specific character being used. Both fixed 2023 and exponential number formats are allowed. Thousand separators 2024 are NOT allowed. 2025 * line may end with \n (Unix style) or \r\n (Windows style), parser 2026 will automatically adapt to chosen convention 2027 * escaped fields (ones in double quotes) are not supported 2028 2029 INPUT PARAMETERS: 2030 filename relative/absolute path 2031 separator character used to separate fields. May be ' ', 2032 ',', '\t'. Other separators are possible too. 2033 flags several values combined with bitwise OR: 2034 * alglib::CSV_SKIP_HEADERS - if present, first row 2035 contains headers and will be skipped. Its 2036 contents is used to determine fields count, and 2037 that's all. 2038 If no flags are specified, default value 0x0 (or 2039 alglib::CSV_DEFAULT, which is same) should be used. 2040 2041 OUTPUT PARAMETERS: 2042 out 2D matrix, CSV file parsed with atof() 2043 2044 HANDLING OF SPECIAL CASES: 2045 * file does not exist - alglib::ap_error exception is thrown 2046 * empty file - empty array is returned (no exception) 2047 * skip_first_row=true, only one row in file - empty array is returned 2048 * field contents is not recognized by atof() - field value is replaced 2049 by 0.0 2050 ********************************************************************/ 2051 #if !defined(AE_NO_EXCEPTIONS) 2052 void read_csv(const char *filename, char separator, int flags, alglib::real_2d_array &out); 2053 #endif 2054 2055 2056 /******************************************************************** 2057 This function activates trace output, with trace log being saved to 2058 file (appended to the end). 2059 2060 Tracing allows us to study behavior of ALGLIB solvers and to debug 2061 their failures: 2062 * tracing is limited by one/several ALGLIB parts specified by means 2063 of trace tags, like "SLP" (for SLP solver) or "OPTGUARD" (OptGuard 2064 integrity checker). 2065 * some ALGLIB solvers support hierarchies of trace tags which activate 2066 different kinds of tracing. Say, "SLP" defines some basic tracing, 2067 but "SLP.PROBING" defines more detailed and costly tracing. 2068 * generally, "TRACETAG.SUBTAG" also implicitly activates logging 2069 which is activated by "TRACETAG" 2070 * you may define multiple trace tags by separating them with commas, 2071 like "SLP,OPTGUARD,SLP.PROBING" 2072 * trace tags are case-insensitive 2073 * spaces/tabs are NOT allowed in the tags string 2074 2075 Trace log is saved to file "filename", which is opened in the append 2076 mode. If no file with such name can be opened, tracing won't be 2077 performed (but no exception will be generated). 2078 ********************************************************************/ 2079 void trace_file(std::string tags, std::string filename); 2080 2081 2082 /******************************************************************** 2083 This function disables tracing. 2084 ********************************************************************/ 2085 void trace_disable(); 2086 2087 2088 /******************************************************************** 2089 Constants and functions introduced for compatibility with AlgoPascal 2090 ********************************************************************/ 2091 extern const double machineepsilon; 2092 extern const double maxrealnumber; 2093 extern const double minrealnumber; 2094 extern const double fp_nan; 2095 extern const double fp_posinf; 2096 extern const double fp_neginf; 2097 extern const ae_int_t endianness; 2098 static const int CSV_DEFAULT = 0x0; 2099 static const int CSV_SKIP_HEADERS = 0x1; 2100 2101 int sign(double x); 2102 double randomreal(); 2103 ae_int_t randominteger(ae_int_t maxv); 2104 int round(double x); 2105 int trunc(double x); 2106 int ifloor(double x); 2107 int iceil(double x); 2108 double pi(); 2109 double sqr(double x); 2110 int maxint(int m1, int m2); 2111 int minint(int m1, int m2); 2112 double maxreal(double m1, double m2); 2113 double minreal(double m1, double m2); 2114 2115 bool fp_eq(double v1, double v2); 2116 bool fp_neq(double v1, double v2); 2117 bool fp_less(double v1, double v2); 2118 bool fp_less_eq(double v1, double v2); 2119 bool fp_greater(double v1, double v2); 2120 bool fp_greater_eq(double v1, double v2); 2121 2122 bool fp_isnan(double x); 2123 bool fp_isposinf(double x); 2124 bool fp_isneginf(double x); 2125 bool fp_isinf(double x); 2126 bool fp_isfinite(double x); 2127 2128 /******************************************************************** 2129 Exception handling macros 2130 ********************************************************************/ 2131 #if !defined(AE_NO_EXCEPTIONS) 2132 /////////////////////////////////////// 2133 // exception-based code 2134 ////////////////////////////// 2135 #define _ALGLIB_CPP_EXCEPTION(msg) throw alglib::ap_error(msg) 2136 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_BEGIN try{ 2137 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_END }catch(...){ ae_clean_up_before_breaking(&_alglib_env_state); throw; } 2138 2139 #else 2140 2141 /////////////////////////////////////// 2142 // Exception-free version 2143 ////////////////////////////// 2144 #if AE_OS!=AE_UNKNOWN 2145 #error Exception-free mode can not be combined with AE_OS definition 2146 #endif 2147 #if AE_THREADING!=AE_SERIAL_UNSAFE 2148 #error Exception-free mode is thread-unsafe; define AE_THREADING=AE_SERIAL_UNSAFE to prove that you know it 2149 #endif 2150 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_BEGIN 2151 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_END 2152 #define _ALGLIB_SET_ERROR_FLAG(s) set_error_flag(s) 2153 2154 // sets eror flag and (optionally) sets error message 2155 void set_error_flag(const char *s = NULL); 2156 2157 // returns error flag and optionally returns error message (loaded to *p_msg); 2158 // if error flag is not set (or p_msg is NULL) *p_msg is not changed. 2159 bool get_error_flag(const char **p_msg = NULL); 2160 2161 // clears error flag (it is not cleared until explicit call to this function) 2162 void clear_error_flag(); 2163 #endif 2164 2165 }//namespace alglib 2166 2167 2168 2169 ///////////////////////////////////////////////////////////////////////// 2170 // 2171 // THIS SECTIONS CONTAINS DECLARATIONS FOR OPTIMIZED LINEAR ALGEBRA CODES 2172 // IT IS SHARED BETWEEN C++ AND PURE C LIBRARIES 2173 // 2174 ///////////////////////////////////////////////////////////////////////// 2175 2176 2177 2178 namespace alglib_impl 2179 { 2180 #define ALGLIB_INTERCEPTS_ABLAS 2181 void _ialglib_vzero(ae_int_t n, double *p, ae_int_t stride); 2182 void _ialglib_vzero_complex(ae_int_t n, ae_complex *p, ae_int_t stride); 2183 void _ialglib_vcopy(ae_int_t n, const double *a, ae_int_t stridea, double *b, ae_int_t strideb); 2184 void _ialglib_vcopy_complex(ae_int_t n, const ae_complex *a, ae_int_t stridea, double *b, ae_int_t strideb, const char *conj); 2185 void _ialglib_vcopy_dcomplex(ae_int_t n, const double *a, ae_int_t stridea, double *b, ae_int_t strideb, const char *conj); 2186 void _ialglib_mcopyblock(ae_int_t m, ae_int_t n, const double *a, ae_int_t op, ae_int_t stride, double *b); 2187 void _ialglib_mcopyunblock(ae_int_t m, ae_int_t n, const double *a, ae_int_t op, double *b, ae_int_t stride); 2188 void _ialglib_mcopyblock_complex(ae_int_t m, ae_int_t n, const ae_complex *a, ae_int_t op, ae_int_t stride, double *b); 2189 void _ialglib_mcopyunblock_complex(ae_int_t m, ae_int_t n, const double *a, ae_int_t op, ae_complex* b, ae_int_t stride); 2190 2191 ae_bool _ialglib_i_rmatrixgemmf(ae_int_t m, 2192 ae_int_t n, 2193 ae_int_t k, 2194 double alpha, 2195 ae_matrix *a, 2196 ae_int_t ia, 2197 ae_int_t ja, 2198 ae_int_t optypea, 2199 ae_matrix *b, 2200 ae_int_t ib, 2201 ae_int_t jb, 2202 ae_int_t optypeb, 2203 double beta, 2204 ae_matrix *c, 2205 ae_int_t ic, 2206 ae_int_t jc); 2207 ae_bool _ialglib_i_cmatrixgemmf(ae_int_t m, 2208 ae_int_t n, 2209 ae_int_t k, 2210 ae_complex alpha, 2211 ae_matrix *a, 2212 ae_int_t ia, 2213 ae_int_t ja, 2214 ae_int_t optypea, 2215 ae_matrix *b, 2216 ae_int_t ib, 2217 ae_int_t jb, 2218 ae_int_t optypeb, 2219 ae_complex beta, 2220 ae_matrix *c, 2221 ae_int_t ic, 2222 ae_int_t jc); 2223 ae_bool _ialglib_i_cmatrixrighttrsmf(ae_int_t m, 2224 ae_int_t n, 2225 ae_matrix *a, 2226 ae_int_t i1, 2227 ae_int_t j1, 2228 ae_bool isupper, 2229 ae_bool isunit, 2230 ae_int_t optype, 2231 ae_matrix *x, 2232 ae_int_t i2, 2233 ae_int_t j2); 2234 ae_bool _ialglib_i_rmatrixrighttrsmf(ae_int_t m, 2235 ae_int_t n, 2236 ae_matrix *a, 2237 ae_int_t i1, 2238 ae_int_t j1, 2239 ae_bool isupper, 2240 ae_bool isunit, 2241 ae_int_t optype, 2242 ae_matrix *x, 2243 ae_int_t i2, 2244 ae_int_t j2); 2245 ae_bool _ialglib_i_cmatrixlefttrsmf(ae_int_t m, 2246 ae_int_t n, 2247 ae_matrix *a, 2248 ae_int_t i1, 2249 ae_int_t j1, 2250 ae_bool isupper, 2251 ae_bool isunit, 2252 ae_int_t optype, 2253 ae_matrix *x, 2254 ae_int_t i2, 2255 ae_int_t j2); 2256 ae_bool _ialglib_i_rmatrixlefttrsmf(ae_int_t m, 2257 ae_int_t n, 2258 ae_matrix *a, 2259 ae_int_t i1, 2260 ae_int_t j1, 2261 ae_bool isupper, 2262 ae_bool isunit, 2263 ae_int_t optype, 2264 ae_matrix *x, 2265 ae_int_t i2, 2266 ae_int_t j2); 2267 ae_bool _ialglib_i_cmatrixherkf(ae_int_t n, 2268 ae_int_t k, 2269 double alpha, 2270 ae_matrix *a, 2271 ae_int_t ia, 2272 ae_int_t ja, 2273 ae_int_t optypea, 2274 double beta, 2275 ae_matrix *c, 2276 ae_int_t ic, 2277 ae_int_t jc, 2278 ae_bool isupper); 2279 ae_bool _ialglib_i_rmatrixsyrkf(ae_int_t n, 2280 ae_int_t k, 2281 double alpha, 2282 ae_matrix *a, 2283 ae_int_t ia, 2284 ae_int_t ja, 2285 ae_int_t optypea, 2286 double beta, 2287 ae_matrix *c, 2288 ae_int_t ic, 2289 ae_int_t jc, 2290 ae_bool isupper); 2291 ae_bool _ialglib_i_cmatrixrank1f(ae_int_t m, 2292 ae_int_t n, 2293 ae_matrix *a, 2294 ae_int_t ia, 2295 ae_int_t ja, 2296 ae_vector *u, 2297 ae_int_t uoffs, 2298 ae_vector *v, 2299 ae_int_t voffs); 2300 ae_bool _ialglib_i_rmatrixrank1f(ae_int_t m, 2301 ae_int_t n, 2302 ae_matrix *a, 2303 ae_int_t ia, 2304 ae_int_t ja, 2305 ae_vector *u, 2306 ae_int_t uoffs, 2307 ae_vector *v, 2308 ae_int_t voffs); 2309 ae_bool _ialglib_i_rmatrixgerf(ae_int_t m, 2310 ae_int_t n, 2311 ae_matrix *a, 2312 ae_int_t ia, 2313 ae_int_t ja, 2314 double alpha, 2315 ae_vector *u, 2316 ae_int_t uoffs, 2317 ae_vector *v, 2318 ae_int_t voffs); 2319 2320 2321 2322 #if !defined(ALGLIB_NO_FAST_KERNELS) 2323 2324 #if defined(_ALGLIB_IMPL_DEFINES) 2325 /* 2326 * Arrays shorter than that will be processed with generic C implementation 2327 */ 2328 #if !defined(_ABLASF_KERNEL_SIZE1) 2329 #define _ABLASF_KERNEL_SIZE1 16 2330 #endif 2331 #if !defined(_ABLASF_KERNEL_SIZE2) 2332 #define _ABLASF_KERNEL_SIZE2 16 2333 #endif 2334 #define _ABLASF_BLOCK_SIZE 32 2335 #define _ABLASF_MICRO_SIZE 2 2336 #if defined(_ALGLIB_HAS_AVX2_INTRINSICS) || defined(_ALGLIB_HAS_FMA_INTRINSICS) 2337 #define ULOAD256PD(x) _mm256_loadu_pd((const double*)(&x)) 2338 #endif 2339 #endif 2340 2341 /* 2342 * ABLASF kernels 2343 */ 2344 double rdotv(ae_int_t n, 2345 /* Real */ ae_vector* x, 2346 /* Real */ ae_vector* y, 2347 ae_state *_state); 2348 double rdotvr(ae_int_t n, 2349 /* Real */ ae_vector* x, 2350 /* Real */ ae_matrix* a, 2351 ae_int_t i, 2352 ae_state *_state); 2353 double rdotrr(ae_int_t n, 2354 /* Real */ ae_matrix* a, 2355 ae_int_t ia, 2356 /* Real */ ae_matrix* b, 2357 ae_int_t ib, 2358 ae_state *_state); 2359 double rdotv2(ae_int_t n, 2360 /* Real */ ae_vector* x, 2361 ae_state *_state); 2362 void rcopyv(ae_int_t n, 2363 /* Real */ ae_vector* x, 2364 /* Real */ ae_vector* y, 2365 ae_state *_state); 2366 void rcopyvr(ae_int_t n, 2367 /* Real */ ae_vector* x, 2368 /* Real */ ae_matrix* a, 2369 ae_int_t i, 2370 ae_state *_state); 2371 void rcopyrv(ae_int_t n, 2372 /* Real */ ae_matrix* a, 2373 ae_int_t i, 2374 /* Real */ ae_vector* x, 2375 ae_state *_state); 2376 void rcopyrr(ae_int_t n, 2377 /* Real */ ae_matrix* a, 2378 ae_int_t i, 2379 /* Real */ ae_matrix* b, 2380 ae_int_t k, 2381 ae_state *_state); 2382 void rcopymulv(ae_int_t n, 2383 double v, 2384 /* Real */ ae_vector* x, 2385 /* Real */ ae_vector* y, 2386 ae_state *_state); 2387 void rcopymulvr(ae_int_t n, 2388 double v, 2389 /* Real */ ae_vector* x, 2390 /* Real */ ae_matrix* y, 2391 ae_int_t ridx, 2392 ae_state *_state); 2393 void icopyv(ae_int_t n, 2394 /* Integer */ ae_vector* x, 2395 /* Integer */ ae_vector* y, 2396 ae_state *_state); 2397 void bcopyv(ae_int_t n, 2398 /* Boolean */ ae_vector* x, 2399 /* Boolean */ ae_vector* y, 2400 ae_state *_state); 2401 void rsetv(ae_int_t n, 2402 double v, 2403 /* Real */ ae_vector* x, 2404 ae_state *_state); 2405 void rsetr(ae_int_t n, 2406 double v, 2407 /* Real */ ae_matrix* a, 2408 ae_int_t i, 2409 ae_state *_state); 2410 void rsetvx(ae_int_t n, 2411 double v, 2412 /* Real */ ae_vector* x, 2413 ae_int_t offsx, 2414 ae_state *_state); 2415 void rsetm(ae_int_t m, 2416 ae_int_t n, 2417 double v, 2418 /* Real */ ae_matrix* a, 2419 ae_state *_state); 2420 void isetv(ae_int_t n, 2421 ae_int_t v, 2422 /* Integer */ ae_vector* x, 2423 ae_state *_state); 2424 void bsetv(ae_int_t n, 2425 ae_bool v, 2426 /* Boolean */ ae_vector* x, 2427 ae_state *_state); 2428 void rmulv(ae_int_t n, 2429 double v, 2430 /* Real */ ae_vector* x, 2431 ae_state *_state); 2432 void rmulr(ae_int_t n, 2433 double v, 2434 /* Real */ ae_matrix* x, 2435 ae_int_t rowidx, 2436 ae_state *_state); 2437 void rmulvx(ae_int_t n, 2438 double v, 2439 /* Real */ ae_vector* x, 2440 ae_int_t offsx, 2441 ae_state *_state); 2442 void raddv(ae_int_t n, 2443 double alpha, 2444 /* Real */ ae_vector* y, 2445 /* Real */ ae_vector* x, 2446 ae_state *_state); 2447 void raddvr(ae_int_t n, 2448 double alpha, 2449 /* Real */ ae_vector* y, 2450 /* Real */ ae_matrix* x, 2451 ae_int_t rowidx, 2452 ae_state *_state); 2453 void raddrv(ae_int_t n, 2454 double alpha, 2455 /* Real */ ae_matrix* y, 2456 ae_int_t ridx, 2457 /* Real */ ae_vector* x, 2458 ae_state *_state); 2459 void raddrr(ae_int_t n, 2460 double alpha, 2461 /* Real */ ae_matrix* y, 2462 ae_int_t ridxsrc, 2463 /* Real */ ae_matrix* x, 2464 ae_int_t ridxdst, 2465 ae_state *_state); 2466 void raddvx(ae_int_t n, 2467 double alpha, 2468 /* Real */ ae_vector* y, 2469 ae_int_t offsy, 2470 /* Real */ ae_vector* x, 2471 ae_int_t offsx, 2472 ae_state *_state); 2473 void rmergemulv(ae_int_t n, 2474 /* Real */ ae_vector* y, 2475 /* Real */ ae_vector* x, 2476 ae_state *_state); 2477 void rmergemulvr(ae_int_t n, 2478 /* Real */ ae_vector* y, 2479 /* Real */ ae_matrix* x, 2480 ae_int_t rowidx, 2481 ae_state *_state); 2482 void rmergemulrv(ae_int_t n, 2483 /* Real */ ae_matrix* y, 2484 ae_int_t rowidx, 2485 /* Real */ ae_vector* x, 2486 ae_state *_state); 2487 void rmergemaxv(ae_int_t n, 2488 /* Real */ ae_vector* y, 2489 /* Real */ ae_vector* x, 2490 ae_state *_state); 2491 void rmergemaxvr(ae_int_t n, 2492 /* Real */ ae_vector* y, 2493 /* Real */ ae_matrix* x, 2494 ae_int_t rowidx, 2495 ae_state *_state); 2496 void rmergemaxrv(ae_int_t n, 2497 /* Real */ ae_matrix* y, 2498 ae_int_t rowidx, 2499 /* Real */ ae_vector* x, 2500 ae_state *_state); 2501 void rmergeminv(ae_int_t n, 2502 /* Real */ ae_vector* y, 2503 /* Real */ ae_vector* x, 2504 ae_state *_state); 2505 void rmergeminvr(ae_int_t n, 2506 /* Real */ ae_vector* y, 2507 /* Real */ ae_matrix* x, 2508 ae_int_t rowidx, 2509 ae_state *_state); 2510 void rmergeminrv(ae_int_t n, 2511 /* Real */ ae_matrix* y, 2512 ae_int_t rowidx, 2513 /* Real */ ae_vector* x, 2514 ae_state *_state); 2515 double rmaxv(ae_int_t n, 2516 /* Real */ ae_vector* x, 2517 ae_state *_state); 2518 double rmaxr(ae_int_t n, 2519 /* Real */ ae_matrix* x, 2520 ae_int_t rowidx, 2521 ae_state *_state); 2522 double rmaxabsv(ae_int_t n, 2523 /* Real */ ae_vector* x, 2524 ae_state *_state); 2525 double rmaxabsr(ae_int_t n, 2526 /* Real */ ae_matrix* x, 2527 ae_int_t rowidx, 2528 ae_state *_state); 2529 void rcopyvx(ae_int_t n, 2530 /* Real */ ae_vector* x, 2531 ae_int_t offsx, 2532 /* Real */ ae_vector* y, 2533 ae_int_t offsy, 2534 ae_state *_state); 2535 void icopyvx(ae_int_t n, 2536 /* Integer */ ae_vector* x, 2537 ae_int_t offsx, 2538 /* Integer */ ae_vector* y, 2539 ae_int_t offsy, 2540 ae_state *_state); 2541 2542 void rgemv(ae_int_t m, 2543 ae_int_t n, 2544 double alpha, 2545 /* Real */ ae_matrix* a, 2546 ae_int_t opa, 2547 /* Real */ ae_vector* x, 2548 double beta, 2549 /* Real */ ae_vector* y, 2550 ae_state *_state); 2551 void rgemvx(ae_int_t m, 2552 ae_int_t n, 2553 double alpha, 2554 /* Real */ ae_matrix* a, 2555 ae_int_t ia, 2556 ae_int_t ja, 2557 ae_int_t opa, 2558 /* Real */ ae_vector* x, 2559 ae_int_t ix, 2560 double beta, 2561 /* Real */ ae_vector* y, 2562 ae_int_t iy, 2563 ae_state *_state); 2564 void rger(ae_int_t m, 2565 ae_int_t n, 2566 double alpha, 2567 /* Real */ ae_vector* u, 2568 /* Real */ ae_vector* v, 2569 /* Real */ ae_matrix* a, 2570 ae_state *_state); 2571 void rtrsvx(ae_int_t n, 2572 /* Real */ ae_matrix* a, 2573 ae_int_t ia, 2574 ae_int_t ja, 2575 ae_bool isupper, 2576 ae_bool isunit, 2577 ae_int_t optype, 2578 /* Real */ ae_vector* x, 2579 ae_int_t ix, 2580 ae_state *_state); 2581 2582 ae_bool ablasf_rgemm32basecase( 2583 ae_int_t m, 2584 ae_int_t n, 2585 ae_int_t k, 2586 double alpha, 2587 /* Real */ ae_matrix* a, 2588 ae_int_t ia, 2589 ae_int_t ja, 2590 ae_int_t optypea, 2591 /* Real */ ae_matrix* b, 2592 ae_int_t ib, 2593 ae_int_t jb, 2594 ae_int_t optypeb, 2595 double beta, 2596 /* Real */ ae_matrix* c, 2597 ae_int_t ic, 2598 ae_int_t jc, 2599 ae_state *_state); 2600 2601 /* 2602 * Sparse supernodal Cholesky kernels 2603 */ 2604 ae_int_t spchol_spsymmgetmaxsimd(ae_state *_state); 2605 void spchol_propagatefwd(/* Real */ ae_vector* x, 2606 ae_int_t cols0, 2607 ae_int_t blocksize, 2608 /* Integer */ ae_vector* superrowidx, 2609 ae_int_t rbase, 2610 ae_int_t offdiagsize, 2611 /* Real */ ae_vector* rowstorage, 2612 ae_int_t offss, 2613 ae_int_t sstride, 2614 /* Real */ ae_vector* simdbuf, 2615 ae_int_t simdwidth, 2616 ae_state *_state); 2617 ae_bool spchol_updatekernelabc4(/* Real */ ae_vector* rowstorage, 2618 ae_int_t offss, 2619 ae_int_t twidth, 2620 ae_int_t offsu, 2621 ae_int_t uheight, 2622 ae_int_t urank, 2623 ae_int_t urowstride, 2624 ae_int_t uwidth, 2625 /* Real */ ae_vector* diagd, 2626 ae_int_t offsd, 2627 /* Integer */ ae_vector* raw2smap, 2628 /* Integer */ ae_vector* superrowidx, 2629 ae_int_t urbase, 2630 ae_state *_state); 2631 ae_bool spchol_updatekernel4444(/* Real */ ae_vector* rowstorage, 2632 ae_int_t offss, 2633 ae_int_t sheight, 2634 ae_int_t offsu, 2635 ae_int_t uheight, 2636 /* Real */ ae_vector* diagd, 2637 ae_int_t offsd, 2638 /* Integer */ ae_vector* raw2smap, 2639 /* Integer */ ae_vector* superrowidx, 2640 ae_int_t urbase, 2641 ae_state *_state); 2642 2643 /* ALGLIB_NO_FAST_KERNELS */ 2644 #endif 2645 2646 } 2647 2648 2649 ///////////////////////////////////////////////////////////////////////// 2650 // 2651 // THIS SECTION CONTAINS PARALLEL SUBROUTINES 2652 // 2653 ///////////////////////////////////////////////////////////////////////// 2654 2655 namespace alglib_impl 2656 { 2657 2658 } 2659 2660 2661 ///////////////////////////////////////////////////////////////////////// 2662 // 2663 // THIS SECTION CONTAINS DEFINITIONS FOR PARTIAL COMPILATION 2664 // 2665 ///////////////////////////////////////////////////////////////////////// 2666 #ifdef AE_COMPILE_APSERV 2667 #define AE_PARTIAL_BUILD 2668 #endif 2669 2670 #ifdef AE_COMPILE_ABLASF 2671 #define AE_PARTIAL_BUILD 2672 #endif 2673 2674 #ifdef AE_COMPILE_HQRND 2675 #define AE_PARTIAL_BUILD 2676 #define AE_COMPILE_APSERV 2677 #define AE_COMPILE_ABLASF 2678 #endif 2679 2680 #ifdef AE_COMPILE_HBLAS 2681 #define AE_PARTIAL_BUILD 2682 #endif 2683 2684 #ifdef AE_COMPILE_CREFLECTIONS 2685 #define AE_PARTIAL_BUILD 2686 #endif 2687 2688 #ifdef AE_COMPILE_SBLAS 2689 #define AE_PARTIAL_BUILD 2690 #define AE_COMPILE_APSERV 2691 #endif 2692 2693 #ifdef AE_COMPILE_ABLASMKL 2694 #define AE_PARTIAL_BUILD 2695 #endif 2696 2697 #ifdef AE_COMPILE_ABLAS 2698 #define AE_PARTIAL_BUILD 2699 #define AE_COMPILE_APSERV 2700 #define AE_COMPILE_ABLASF 2701 #define AE_COMPILE_ABLASMKL 2702 #endif 2703 2704 #ifdef AE_COMPILE_ORTFAC 2705 #define AE_PARTIAL_BUILD 2706 #define AE_COMPILE_APSERV 2707 #define AE_COMPILE_ABLASF 2708 #define AE_COMPILE_HQRND 2709 #define AE_COMPILE_HBLAS 2710 #define AE_COMPILE_CREFLECTIONS 2711 #define AE_COMPILE_SBLAS 2712 #define AE_COMPILE_ABLASMKL 2713 #define AE_COMPILE_ABLAS 2714 #endif 2715 2716 #ifdef AE_COMPILE_MATGEN 2717 #define AE_PARTIAL_BUILD 2718 #define AE_COMPILE_APSERV 2719 #define AE_COMPILE_ABLASF 2720 #define AE_COMPILE_ABLASMKL 2721 #define AE_COMPILE_ABLAS 2722 #define AE_COMPILE_CREFLECTIONS 2723 #define AE_COMPILE_HQRND 2724 #endif 2725 2726 #ifdef AE_COMPILE_SCODES 2727 #define AE_PARTIAL_BUILD 2728 #endif 2729 2730 #ifdef AE_COMPILE_TSORT 2731 #define AE_PARTIAL_BUILD 2732 #define AE_COMPILE_APSERV 2733 #endif 2734 2735 #ifdef AE_COMPILE_SPARSE 2736 #define AE_PARTIAL_BUILD 2737 #define AE_COMPILE_APSERV 2738 #define AE_COMPILE_SCODES 2739 #define AE_COMPILE_ABLASMKL 2740 #define AE_COMPILE_ABLASF 2741 #define AE_COMPILE_HQRND 2742 #define AE_COMPILE_TSORT 2743 #endif 2744 2745 #ifdef AE_COMPILE_BLAS 2746 #define AE_PARTIAL_BUILD 2747 #endif 2748 2749 #ifdef AE_COMPILE_ROTATIONS 2750 #define AE_PARTIAL_BUILD 2751 #endif 2752 2753 #ifdef AE_COMPILE_HSSCHUR 2754 #define AE_PARTIAL_BUILD 2755 #define AE_COMPILE_BLAS 2756 #define AE_COMPILE_ABLASMKL 2757 #define AE_COMPILE_ROTATIONS 2758 #define AE_COMPILE_APSERV 2759 #define AE_COMPILE_ABLASF 2760 #define AE_COMPILE_ABLAS 2761 #endif 2762 2763 #ifdef AE_COMPILE_BASICSTATOPS 2764 #define AE_PARTIAL_BUILD 2765 #define AE_COMPILE_APSERV 2766 #define AE_COMPILE_TSORT 2767 #endif 2768 2769 #ifdef AE_COMPILE_EVD 2770 #define AE_PARTIAL_BUILD 2771 #define AE_COMPILE_APSERV 2772 #define AE_COMPILE_ABLASF 2773 #define AE_COMPILE_HQRND 2774 #define AE_COMPILE_HBLAS 2775 #define AE_COMPILE_CREFLECTIONS 2776 #define AE_COMPILE_SBLAS 2777 #define AE_COMPILE_ABLASMKL 2778 #define AE_COMPILE_ABLAS 2779 #define AE_COMPILE_ORTFAC 2780 #define AE_COMPILE_MATGEN 2781 #define AE_COMPILE_SCODES 2782 #define AE_COMPILE_TSORT 2783 #define AE_COMPILE_SPARSE 2784 #define AE_COMPILE_BLAS 2785 #define AE_COMPILE_ROTATIONS 2786 #define AE_COMPILE_HSSCHUR 2787 #define AE_COMPILE_BASICSTATOPS 2788 #endif 2789 2790 #ifdef AE_COMPILE_DLU 2791 #define AE_PARTIAL_BUILD 2792 #define AE_COMPILE_APSERV 2793 #define AE_COMPILE_ABLASF 2794 #define AE_COMPILE_ABLASMKL 2795 #define AE_COMPILE_ABLAS 2796 #endif 2797 2798 #ifdef AE_COMPILE_SPTRF 2799 #define AE_PARTIAL_BUILD 2800 #define AE_COMPILE_APSERV 2801 #define AE_COMPILE_ABLASF 2802 #define AE_COMPILE_ABLASMKL 2803 #define AE_COMPILE_ABLAS 2804 #define AE_COMPILE_SCODES 2805 #define AE_COMPILE_HQRND 2806 #define AE_COMPILE_TSORT 2807 #define AE_COMPILE_SPARSE 2808 #define AE_COMPILE_DLU 2809 #endif 2810 2811 #ifdef AE_COMPILE_AMDORDERING 2812 #define AE_PARTIAL_BUILD 2813 #define AE_COMPILE_APSERV 2814 #define AE_COMPILE_ABLASF 2815 #define AE_COMPILE_ABLASMKL 2816 #define AE_COMPILE_ABLAS 2817 #define AE_COMPILE_SCODES 2818 #define AE_COMPILE_HQRND 2819 #define AE_COMPILE_TSORT 2820 #define AE_COMPILE_SPARSE 2821 #endif 2822 2823 #ifdef AE_COMPILE_SPCHOL 2824 #define AE_PARTIAL_BUILD 2825 #define AE_COMPILE_APSERV 2826 #define AE_COMPILE_ABLASF 2827 #define AE_COMPILE_ABLASMKL 2828 #define AE_COMPILE_ABLAS 2829 #define AE_COMPILE_SCODES 2830 #define AE_COMPILE_HQRND 2831 #define AE_COMPILE_TSORT 2832 #define AE_COMPILE_SPARSE 2833 #define AE_COMPILE_AMDORDERING 2834 #endif 2835 2836 #ifdef AE_COMPILE_TRFAC 2837 #define AE_PARTIAL_BUILD 2838 #define AE_COMPILE_APSERV 2839 #define AE_COMPILE_ABLASF 2840 #define AE_COMPILE_ABLASMKL 2841 #define AE_COMPILE_ABLAS 2842 #define AE_COMPILE_SCODES 2843 #define AE_COMPILE_HQRND 2844 #define AE_COMPILE_TSORT 2845 #define AE_COMPILE_SPARSE 2846 #define AE_COMPILE_DLU 2847 #define AE_COMPILE_SPTRF 2848 #define AE_COMPILE_AMDORDERING 2849 #define AE_COMPILE_SPCHOL 2850 #define AE_COMPILE_CREFLECTIONS 2851 #define AE_COMPILE_MATGEN 2852 #define AE_COMPILE_ROTATIONS 2853 #endif 2854 2855 #ifdef AE_COMPILE_POLYNOMIALSOLVER 2856 #define AE_PARTIAL_BUILD 2857 #define AE_COMPILE_APSERV 2858 #define AE_COMPILE_ABLASF 2859 #define AE_COMPILE_HQRND 2860 #define AE_COMPILE_HBLAS 2861 #define AE_COMPILE_CREFLECTIONS 2862 #define AE_COMPILE_SBLAS 2863 #define AE_COMPILE_ABLASMKL 2864 #define AE_COMPILE_ABLAS 2865 #define AE_COMPILE_ORTFAC 2866 #define AE_COMPILE_MATGEN 2867 #define AE_COMPILE_SCODES 2868 #define AE_COMPILE_TSORT 2869 #define AE_COMPILE_SPARSE 2870 #define AE_COMPILE_BLAS 2871 #define AE_COMPILE_ROTATIONS 2872 #define AE_COMPILE_HSSCHUR 2873 #define AE_COMPILE_BASICSTATOPS 2874 #define AE_COMPILE_EVD 2875 #define AE_COMPILE_DLU 2876 #define AE_COMPILE_SPTRF 2877 #define AE_COMPILE_AMDORDERING 2878 #define AE_COMPILE_SPCHOL 2879 #define AE_COMPILE_TRFAC 2880 #endif 2881 2882 #ifdef AE_COMPILE_BDSVD 2883 #define AE_PARTIAL_BUILD 2884 #define AE_COMPILE_ROTATIONS 2885 #define AE_COMPILE_ABLASMKL 2886 #define AE_COMPILE_APSERV 2887 #define AE_COMPILE_ABLASF 2888 #define AE_COMPILE_ABLAS 2889 #define AE_COMPILE_HQRND 2890 #endif 2891 2892 #ifdef AE_COMPILE_SVD 2893 #define AE_PARTIAL_BUILD 2894 #define AE_COMPILE_APSERV 2895 #define AE_COMPILE_ABLASF 2896 #define AE_COMPILE_HQRND 2897 #define AE_COMPILE_HBLAS 2898 #define AE_COMPILE_CREFLECTIONS 2899 #define AE_COMPILE_SBLAS 2900 #define AE_COMPILE_ABLASMKL 2901 #define AE_COMPILE_ABLAS 2902 #define AE_COMPILE_ORTFAC 2903 #define AE_COMPILE_BLAS 2904 #define AE_COMPILE_ROTATIONS 2905 #define AE_COMPILE_BDSVD 2906 #endif 2907 2908 #ifdef AE_COMPILE_TRLINSOLVE 2909 #define AE_PARTIAL_BUILD 2910 #endif 2911 2912 #ifdef AE_COMPILE_SAFESOLVE 2913 #define AE_PARTIAL_BUILD 2914 #endif 2915 2916 #ifdef AE_COMPILE_RCOND 2917 #define AE_PARTIAL_BUILD 2918 #define AE_COMPILE_APSERV 2919 #define AE_COMPILE_ABLASF 2920 #define AE_COMPILE_ABLASMKL 2921 #define AE_COMPILE_ABLAS 2922 #define AE_COMPILE_SCODES 2923 #define AE_COMPILE_HQRND 2924 #define AE_COMPILE_TSORT 2925 #define AE_COMPILE_SPARSE 2926 #define AE_COMPILE_DLU 2927 #define AE_COMPILE_SPTRF 2928 #define AE_COMPILE_AMDORDERING 2929 #define AE_COMPILE_SPCHOL 2930 #define AE_COMPILE_CREFLECTIONS 2931 #define AE_COMPILE_MATGEN 2932 #define AE_COMPILE_ROTATIONS 2933 #define AE_COMPILE_TRFAC 2934 #define AE_COMPILE_TRLINSOLVE 2935 #define AE_COMPILE_SAFESOLVE 2936 #endif 2937 2938 #ifdef AE_COMPILE_XBLAS 2939 #define AE_PARTIAL_BUILD 2940 #endif 2941 2942 #ifdef AE_COMPILE_DIRECTDENSESOLVERS 2943 #define AE_PARTIAL_BUILD 2944 #define AE_COMPILE_APSERV 2945 #define AE_COMPILE_ABLASF 2946 #define AE_COMPILE_HQRND 2947 #define AE_COMPILE_HBLAS 2948 #define AE_COMPILE_CREFLECTIONS 2949 #define AE_COMPILE_SBLAS 2950 #define AE_COMPILE_ABLASMKL 2951 #define AE_COMPILE_ABLAS 2952 #define AE_COMPILE_ORTFAC 2953 #define AE_COMPILE_BLAS 2954 #define AE_COMPILE_ROTATIONS 2955 #define AE_COMPILE_BDSVD 2956 #define AE_COMPILE_SVD 2957 #define AE_COMPILE_SCODES 2958 #define AE_COMPILE_TSORT 2959 #define AE_COMPILE_SPARSE 2960 #define AE_COMPILE_DLU 2961 #define AE_COMPILE_SPTRF 2962 #define AE_COMPILE_AMDORDERING 2963 #define AE_COMPILE_SPCHOL 2964 #define AE_COMPILE_MATGEN 2965 #define AE_COMPILE_TRFAC 2966 #define AE_COMPILE_TRLINSOLVE 2967 #define AE_COMPILE_SAFESOLVE 2968 #define AE_COMPILE_RCOND 2969 #define AE_COMPILE_XBLAS 2970 #endif 2971 2972 #ifdef AE_COMPILE_DIRECTSPARSESOLVERS 2973 #define AE_PARTIAL_BUILD 2974 #define AE_COMPILE_APSERV 2975 #define AE_COMPILE_SCODES 2976 #define AE_COMPILE_ABLASMKL 2977 #define AE_COMPILE_ABLASF 2978 #define AE_COMPILE_HQRND 2979 #define AE_COMPILE_TSORT 2980 #define AE_COMPILE_SPARSE 2981 #define AE_COMPILE_ABLAS 2982 #define AE_COMPILE_DLU 2983 #define AE_COMPILE_SPTRF 2984 #define AE_COMPILE_AMDORDERING 2985 #define AE_COMPILE_SPCHOL 2986 #define AE_COMPILE_CREFLECTIONS 2987 #define AE_COMPILE_MATGEN 2988 #define AE_COMPILE_ROTATIONS 2989 #define AE_COMPILE_TRFAC 2990 #endif 2991 2992 #ifdef AE_COMPILE_FBLS 2993 #define AE_PARTIAL_BUILD 2994 #define AE_COMPILE_APSERV 2995 #define AE_COMPILE_ABLASF 2996 #define AE_COMPILE_ABLASMKL 2997 #define AE_COMPILE_ABLAS 2998 #define AE_COMPILE_ROTATIONS 2999 #define AE_COMPILE_HQRND 3000 #define AE_COMPILE_HBLAS 3001 #define AE_COMPILE_CREFLECTIONS 3002 #define AE_COMPILE_SBLAS 3003 #define AE_COMPILE_ORTFAC 3004 #endif 3005 3006 #ifdef AE_COMPILE_ITERATIVESPARSE 3007 #define AE_PARTIAL_BUILD 3008 #define AE_COMPILE_APSERV 3009 #define AE_COMPILE_SCODES 3010 #define AE_COMPILE_ABLASMKL 3011 #define AE_COMPILE_ABLASF 3012 #define AE_COMPILE_HQRND 3013 #define AE_COMPILE_TSORT 3014 #define AE_COMPILE_SPARSE 3015 #define AE_COMPILE_ABLAS 3016 #define AE_COMPILE_DLU 3017 #define AE_COMPILE_SPTRF 3018 #define AE_COMPILE_AMDORDERING 3019 #define AE_COMPILE_SPCHOL 3020 #define AE_COMPILE_CREFLECTIONS 3021 #define AE_COMPILE_MATGEN 3022 #define AE_COMPILE_ROTATIONS 3023 #define AE_COMPILE_TRFAC 3024 #define AE_COMPILE_DIRECTSPARSESOLVERS 3025 #define AE_COMPILE_HBLAS 3026 #define AE_COMPILE_SBLAS 3027 #define AE_COMPILE_ORTFAC 3028 #define AE_COMPILE_FBLS 3029 #endif 3030 3031 #ifdef AE_COMPILE_LINCG 3032 #define AE_PARTIAL_BUILD 3033 #define AE_COMPILE_APSERV 3034 #define AE_COMPILE_SCODES 3035 #define AE_COMPILE_ABLASMKL 3036 #define AE_COMPILE_ABLASF 3037 #define AE_COMPILE_HQRND 3038 #define AE_COMPILE_TSORT 3039 #define AE_COMPILE_SPARSE 3040 #define AE_COMPILE_ABLAS 3041 #define AE_COMPILE_CREFLECTIONS 3042 #define AE_COMPILE_MATGEN 3043 #endif 3044 3045 #ifdef AE_COMPILE_NORMESTIMATOR 3046 #define AE_PARTIAL_BUILD 3047 #define AE_COMPILE_APSERV 3048 #define AE_COMPILE_ABLASF 3049 #define AE_COMPILE_HQRND 3050 #define AE_COMPILE_SCODES 3051 #define AE_COMPILE_ABLASMKL 3052 #define AE_COMPILE_TSORT 3053 #define AE_COMPILE_SPARSE 3054 #define AE_COMPILE_ABLAS 3055 #define AE_COMPILE_CREFLECTIONS 3056 #define AE_COMPILE_MATGEN 3057 #endif 3058 3059 #ifdef AE_COMPILE_LINLSQR 3060 #define AE_PARTIAL_BUILD 3061 #define AE_COMPILE_APSERV 3062 #define AE_COMPILE_ABLASF 3063 #define AE_COMPILE_ABLASMKL 3064 #define AE_COMPILE_ABLAS 3065 #define AE_COMPILE_CREFLECTIONS 3066 #define AE_COMPILE_HQRND 3067 #define AE_COMPILE_MATGEN 3068 #define AE_COMPILE_SCODES 3069 #define AE_COMPILE_TSORT 3070 #define AE_COMPILE_SPARSE 3071 #define AE_COMPILE_NORMESTIMATOR 3072 #define AE_COMPILE_HBLAS 3073 #define AE_COMPILE_SBLAS 3074 #define AE_COMPILE_ORTFAC 3075 #define AE_COMPILE_BLAS 3076 #define AE_COMPILE_ROTATIONS 3077 #define AE_COMPILE_BDSVD 3078 #define AE_COMPILE_SVD 3079 #endif 3080 3081 #ifdef AE_COMPILE_LINMIN 3082 #define AE_PARTIAL_BUILD 3083 #endif 3084 3085 #ifdef AE_COMPILE_NLEQ 3086 #define AE_PARTIAL_BUILD 3087 #define AE_COMPILE_APSERV 3088 #define AE_COMPILE_LINMIN 3089 #define AE_COMPILE_ABLASF 3090 #define AE_COMPILE_ABLASMKL 3091 #define AE_COMPILE_ABLAS 3092 #define AE_COMPILE_ROTATIONS 3093 #define AE_COMPILE_HQRND 3094 #define AE_COMPILE_HBLAS 3095 #define AE_COMPILE_CREFLECTIONS 3096 #define AE_COMPILE_SBLAS 3097 #define AE_COMPILE_ORTFAC 3098 #define AE_COMPILE_FBLS 3099 #endif 3100 3101 #ifdef AE_COMPILE_MATINV 3102 #define AE_PARTIAL_BUILD 3103 #define AE_COMPILE_APSERV 3104 #define AE_COMPILE_ABLASF 3105 #define AE_COMPILE_ABLASMKL 3106 #define AE_COMPILE_ABLAS 3107 #define AE_COMPILE_SCODES 3108 #define AE_COMPILE_HQRND 3109 #define AE_COMPILE_TSORT 3110 #define AE_COMPILE_SPARSE 3111 #define AE_COMPILE_DLU 3112 #define AE_COMPILE_SPTRF 3113 #define AE_COMPILE_AMDORDERING 3114 #define AE_COMPILE_SPCHOL 3115 #define AE_COMPILE_CREFLECTIONS 3116 #define AE_COMPILE_MATGEN 3117 #define AE_COMPILE_ROTATIONS 3118 #define AE_COMPILE_TRFAC 3119 #define AE_COMPILE_TRLINSOLVE 3120 #define AE_COMPILE_SAFESOLVE 3121 #define AE_COMPILE_RCOND 3122 #endif 3123 3124 #ifdef AE_COMPILE_OPTGUARDAPI 3125 #define AE_PARTIAL_BUILD 3126 #define AE_COMPILE_APSERV 3127 #endif 3128 3129 #ifdef AE_COMPILE_OPTSERV 3130 #define AE_PARTIAL_BUILD 3131 #define AE_COMPILE_APSERV 3132 #define AE_COMPILE_TSORT 3133 #define AE_COMPILE_OPTGUARDAPI 3134 #define AE_COMPILE_ABLASF 3135 #define AE_COMPILE_ABLASMKL 3136 #define AE_COMPILE_ABLAS 3137 #define AE_COMPILE_CREFLECTIONS 3138 #define AE_COMPILE_HQRND 3139 #define AE_COMPILE_MATGEN 3140 #define AE_COMPILE_SCODES 3141 #define AE_COMPILE_SPARSE 3142 #define AE_COMPILE_DLU 3143 #define AE_COMPILE_SPTRF 3144 #define AE_COMPILE_AMDORDERING 3145 #define AE_COMPILE_SPCHOL 3146 #define AE_COMPILE_ROTATIONS 3147 #define AE_COMPILE_TRFAC 3148 #define AE_COMPILE_TRLINSOLVE 3149 #define AE_COMPILE_SAFESOLVE 3150 #define AE_COMPILE_RCOND 3151 #define AE_COMPILE_MATINV 3152 #define AE_COMPILE_HBLAS 3153 #define AE_COMPILE_SBLAS 3154 #define AE_COMPILE_ORTFAC 3155 #define AE_COMPILE_BLAS 3156 #define AE_COMPILE_BDSVD 3157 #define AE_COMPILE_SVD 3158 #endif 3159 3160 #ifdef AE_COMPILE_MINLBFGS 3161 #define AE_PARTIAL_BUILD 3162 #define AE_COMPILE_LINMIN 3163 #define AE_COMPILE_APSERV 3164 #define AE_COMPILE_TSORT 3165 #define AE_COMPILE_OPTGUARDAPI 3166 #define AE_COMPILE_ABLASF 3167 #define AE_COMPILE_ABLASMKL 3168 #define AE_COMPILE_ABLAS 3169 #define AE_COMPILE_CREFLECTIONS 3170 #define AE_COMPILE_HQRND 3171 #define AE_COMPILE_MATGEN 3172 #define AE_COMPILE_SCODES 3173 #define AE_COMPILE_SPARSE 3174 #define AE_COMPILE_DLU 3175 #define AE_COMPILE_SPTRF 3176 #define AE_COMPILE_AMDORDERING 3177 #define AE_COMPILE_SPCHOL 3178 #define AE_COMPILE_ROTATIONS 3179 #define AE_COMPILE_TRFAC 3180 #define AE_COMPILE_TRLINSOLVE 3181 #define AE_COMPILE_SAFESOLVE 3182 #define AE_COMPILE_RCOND 3183 #define AE_COMPILE_MATINV 3184 #define AE_COMPILE_HBLAS 3185 #define AE_COMPILE_SBLAS 3186 #define AE_COMPILE_ORTFAC 3187 #define AE_COMPILE_BLAS 3188 #define AE_COMPILE_BDSVD 3189 #define AE_COMPILE_SVD 3190 #define AE_COMPILE_OPTSERV 3191 #define AE_COMPILE_FBLS 3192 #endif 3193 3194 #ifdef AE_COMPILE_CQMODELS 3195 #define AE_PARTIAL_BUILD 3196 #define AE_COMPILE_APSERV 3197 #define AE_COMPILE_ABLASF 3198 #define AE_COMPILE_ABLASMKL 3199 #define AE_COMPILE_ABLAS 3200 #define AE_COMPILE_SCODES 3201 #define AE_COMPILE_HQRND 3202 #define AE_COMPILE_TSORT 3203 #define AE_COMPILE_SPARSE 3204 #define AE_COMPILE_DLU 3205 #define AE_COMPILE_SPTRF 3206 #define AE_COMPILE_AMDORDERING 3207 #define AE_COMPILE_SPCHOL 3208 #define AE_COMPILE_CREFLECTIONS 3209 #define AE_COMPILE_MATGEN 3210 #define AE_COMPILE_ROTATIONS 3211 #define AE_COMPILE_TRFAC 3212 #define AE_COMPILE_HBLAS 3213 #define AE_COMPILE_SBLAS 3214 #define AE_COMPILE_ORTFAC 3215 #define AE_COMPILE_FBLS 3216 #endif 3217 3218 #ifdef AE_COMPILE_LPQPSERV 3219 #define AE_PARTIAL_BUILD 3220 #define AE_COMPILE_APSERV 3221 #define AE_COMPILE_SCODES 3222 #define AE_COMPILE_ABLASMKL 3223 #define AE_COMPILE_ABLASF 3224 #define AE_COMPILE_HQRND 3225 #define AE_COMPILE_TSORT 3226 #define AE_COMPILE_SPARSE 3227 #endif 3228 3229 #ifdef AE_COMPILE_SNNLS 3230 #define AE_PARTIAL_BUILD 3231 #define AE_COMPILE_APSERV 3232 #define AE_COMPILE_ABLASF 3233 #define AE_COMPILE_ABLASMKL 3234 #define AE_COMPILE_ABLAS 3235 #define AE_COMPILE_SCODES 3236 #define AE_COMPILE_HQRND 3237 #define AE_COMPILE_TSORT 3238 #define AE_COMPILE_SPARSE 3239 #define AE_COMPILE_DLU 3240 #define AE_COMPILE_SPTRF 3241 #define AE_COMPILE_AMDORDERING 3242 #define AE_COMPILE_SPCHOL 3243 #define AE_COMPILE_CREFLECTIONS 3244 #define AE_COMPILE_MATGEN 3245 #define AE_COMPILE_ROTATIONS 3246 #define AE_COMPILE_TRFAC 3247 #define AE_COMPILE_HBLAS 3248 #define AE_COMPILE_SBLAS 3249 #define AE_COMPILE_ORTFAC 3250 #define AE_COMPILE_FBLS 3251 #endif 3252 3253 #ifdef AE_COMPILE_SACTIVESETS 3254 #define AE_PARTIAL_BUILD 3255 #define AE_COMPILE_APSERV 3256 #define AE_COMPILE_ABLASF 3257 #define AE_COMPILE_ABLASMKL 3258 #define AE_COMPILE_ABLAS 3259 #define AE_COMPILE_SCODES 3260 #define AE_COMPILE_HQRND 3261 #define AE_COMPILE_TSORT 3262 #define AE_COMPILE_SPARSE 3263 #define AE_COMPILE_DLU 3264 #define AE_COMPILE_SPTRF 3265 #define AE_COMPILE_AMDORDERING 3266 #define AE_COMPILE_SPCHOL 3267 #define AE_COMPILE_CREFLECTIONS 3268 #define AE_COMPILE_MATGEN 3269 #define AE_COMPILE_ROTATIONS 3270 #define AE_COMPILE_TRFAC 3271 #define AE_COMPILE_HBLAS 3272 #define AE_COMPILE_SBLAS 3273 #define AE_COMPILE_ORTFAC 3274 #define AE_COMPILE_FBLS 3275 #define AE_COMPILE_SNNLS 3276 #define AE_COMPILE_OPTGUARDAPI 3277 #define AE_COMPILE_TRLINSOLVE 3278 #define AE_COMPILE_SAFESOLVE 3279 #define AE_COMPILE_RCOND 3280 #define AE_COMPILE_MATINV 3281 #define AE_COMPILE_BLAS 3282 #define AE_COMPILE_BDSVD 3283 #define AE_COMPILE_SVD 3284 #define AE_COMPILE_OPTSERV 3285 #endif 3286 3287 #ifdef AE_COMPILE_QQPSOLVER 3288 #define AE_PARTIAL_BUILD 3289 #define AE_COMPILE_APSERV 3290 #define AE_COMPILE_SCODES 3291 #define AE_COMPILE_ABLASMKL 3292 #define AE_COMPILE_ABLASF 3293 #define AE_COMPILE_HQRND 3294 #define AE_COMPILE_TSORT 3295 #define AE_COMPILE_SPARSE 3296 #define AE_COMPILE_ABLAS 3297 #define AE_COMPILE_DLU 3298 #define AE_COMPILE_SPTRF 3299 #define AE_COMPILE_AMDORDERING 3300 #define AE_COMPILE_SPCHOL 3301 #define AE_COMPILE_CREFLECTIONS 3302 #define AE_COMPILE_MATGEN 3303 #define AE_COMPILE_ROTATIONS 3304 #define AE_COMPILE_TRFAC 3305 #define AE_COMPILE_TRLINSOLVE 3306 #define AE_COMPILE_SAFESOLVE 3307 #define AE_COMPILE_RCOND 3308 #define AE_COMPILE_MATINV 3309 #define AE_COMPILE_HBLAS 3310 #define AE_COMPILE_SBLAS 3311 #define AE_COMPILE_ORTFAC 3312 #define AE_COMPILE_FBLS 3313 #define AE_COMPILE_CQMODELS 3314 #define AE_COMPILE_OPTGUARDAPI 3315 #define AE_COMPILE_BLAS 3316 #define AE_COMPILE_BDSVD 3317 #define AE_COMPILE_SVD 3318 #define AE_COMPILE_OPTSERV 3319 #define AE_COMPILE_SNNLS 3320 #define AE_COMPILE_SACTIVESETS 3321 #endif 3322 3323 #ifdef AE_COMPILE_QPDENSEAULSOLVER 3324 #define AE_PARTIAL_BUILD 3325 #define AE_COMPILE_APSERV 3326 #define AE_COMPILE_SCODES 3327 #define AE_COMPILE_ABLASMKL 3328 #define AE_COMPILE_ABLASF 3329 #define AE_COMPILE_HQRND 3330 #define AE_COMPILE_TSORT 3331 #define AE_COMPILE_SPARSE 3332 #define AE_COMPILE_ABLAS 3333 #define AE_COMPILE_DLU 3334 #define AE_COMPILE_SPTRF 3335 #define AE_COMPILE_AMDORDERING 3336 #define AE_COMPILE_SPCHOL 3337 #define AE_COMPILE_CREFLECTIONS 3338 #define AE_COMPILE_MATGEN 3339 #define AE_COMPILE_ROTATIONS 3340 #define AE_COMPILE_TRFAC 3341 #define AE_COMPILE_TRLINSOLVE 3342 #define AE_COMPILE_SAFESOLVE 3343 #define AE_COMPILE_RCOND 3344 #define AE_COMPILE_MATINV 3345 #define AE_COMPILE_HBLAS 3346 #define AE_COMPILE_SBLAS 3347 #define AE_COMPILE_ORTFAC 3348 #define AE_COMPILE_BLAS 3349 #define AE_COMPILE_BDSVD 3350 #define AE_COMPILE_SVD 3351 #define AE_COMPILE_XBLAS 3352 #define AE_COMPILE_DIRECTDENSESOLVERS 3353 #define AE_COMPILE_NORMESTIMATOR 3354 #define AE_COMPILE_LINLSQR 3355 #define AE_COMPILE_LINMIN 3356 #define AE_COMPILE_OPTGUARDAPI 3357 #define AE_COMPILE_OPTSERV 3358 #define AE_COMPILE_FBLS 3359 #define AE_COMPILE_MINLBFGS 3360 #define AE_COMPILE_CQMODELS 3361 #define AE_COMPILE_LPQPSERV 3362 #define AE_COMPILE_SNNLS 3363 #define AE_COMPILE_SACTIVESETS 3364 #define AE_COMPILE_QQPSOLVER 3365 #endif 3366 3367 #ifdef AE_COMPILE_MINBLEIC 3368 #define AE_PARTIAL_BUILD 3369 #define AE_COMPILE_LINMIN 3370 #define AE_COMPILE_APSERV 3371 #define AE_COMPILE_TSORT 3372 #define AE_COMPILE_OPTGUARDAPI 3373 #define AE_COMPILE_ABLASF 3374 #define AE_COMPILE_ABLASMKL 3375 #define AE_COMPILE_ABLAS 3376 #define AE_COMPILE_CREFLECTIONS 3377 #define AE_COMPILE_HQRND 3378 #define AE_COMPILE_MATGEN 3379 #define AE_COMPILE_SCODES 3380 #define AE_COMPILE_SPARSE 3381 #define AE_COMPILE_DLU 3382 #define AE_COMPILE_SPTRF 3383 #define AE_COMPILE_AMDORDERING 3384 #define AE_COMPILE_SPCHOL 3385 #define AE_COMPILE_ROTATIONS 3386 #define AE_COMPILE_TRFAC 3387 #define AE_COMPILE_TRLINSOLVE 3388 #define AE_COMPILE_SAFESOLVE 3389 #define AE_COMPILE_RCOND 3390 #define AE_COMPILE_MATINV 3391 #define AE_COMPILE_HBLAS 3392 #define AE_COMPILE_SBLAS 3393 #define AE_COMPILE_ORTFAC 3394 #define AE_COMPILE_BLAS 3395 #define AE_COMPILE_BDSVD 3396 #define AE_COMPILE_SVD 3397 #define AE_COMPILE_OPTSERV 3398 #define AE_COMPILE_FBLS 3399 #define AE_COMPILE_CQMODELS 3400 #define AE_COMPILE_SNNLS 3401 #define AE_COMPILE_SACTIVESETS 3402 #endif 3403 3404 #ifdef AE_COMPILE_QPBLEICSOLVER 3405 #define AE_PARTIAL_BUILD 3406 #define AE_COMPILE_APSERV 3407 #define AE_COMPILE_SCODES 3408 #define AE_COMPILE_ABLASMKL 3409 #define AE_COMPILE_ABLASF 3410 #define AE_COMPILE_HQRND 3411 #define AE_COMPILE_TSORT 3412 #define AE_COMPILE_SPARSE 3413 #define AE_COMPILE_ABLAS 3414 #define AE_COMPILE_DLU 3415 #define AE_COMPILE_SPTRF 3416 #define AE_COMPILE_AMDORDERING 3417 #define AE_COMPILE_SPCHOL 3418 #define AE_COMPILE_CREFLECTIONS 3419 #define AE_COMPILE_MATGEN 3420 #define AE_COMPILE_ROTATIONS 3421 #define AE_COMPILE_TRFAC 3422 #define AE_COMPILE_TRLINSOLVE 3423 #define AE_COMPILE_SAFESOLVE 3424 #define AE_COMPILE_RCOND 3425 #define AE_COMPILE_MATINV 3426 #define AE_COMPILE_LINMIN 3427 #define AE_COMPILE_OPTGUARDAPI 3428 #define AE_COMPILE_HBLAS 3429 #define AE_COMPILE_SBLAS 3430 #define AE_COMPILE_ORTFAC 3431 #define AE_COMPILE_BLAS 3432 #define AE_COMPILE_BDSVD 3433 #define AE_COMPILE_SVD 3434 #define AE_COMPILE_OPTSERV 3435 #define AE_COMPILE_FBLS 3436 #define AE_COMPILE_CQMODELS 3437 #define AE_COMPILE_SNNLS 3438 #define AE_COMPILE_SACTIVESETS 3439 #define AE_COMPILE_MINBLEIC 3440 #endif 3441 3442 #ifdef AE_COMPILE_VIPMSOLVER 3443 #define AE_PARTIAL_BUILD 3444 #define AE_COMPILE_APSERV 3445 #define AE_COMPILE_SCODES 3446 #define AE_COMPILE_ABLASMKL 3447 #define AE_COMPILE_ABLASF 3448 #define AE_COMPILE_HQRND 3449 #define AE_COMPILE_TSORT 3450 #define AE_COMPILE_SPARSE 3451 #define AE_COMPILE_HBLAS 3452 #define AE_COMPILE_CREFLECTIONS 3453 #define AE_COMPILE_SBLAS 3454 #define AE_COMPILE_ABLAS 3455 #define AE_COMPILE_ORTFAC 3456 #define AE_COMPILE_BLAS 3457 #define AE_COMPILE_ROTATIONS 3458 #define AE_COMPILE_BDSVD 3459 #define AE_COMPILE_SVD 3460 #define AE_COMPILE_DLU 3461 #define AE_COMPILE_SPTRF 3462 #define AE_COMPILE_AMDORDERING 3463 #define AE_COMPILE_SPCHOL 3464 #define AE_COMPILE_MATGEN 3465 #define AE_COMPILE_TRFAC 3466 #define AE_COMPILE_TRLINSOLVE 3467 #define AE_COMPILE_SAFESOLVE 3468 #define AE_COMPILE_RCOND 3469 #define AE_COMPILE_XBLAS 3470 #define AE_COMPILE_DIRECTDENSESOLVERS 3471 #define AE_COMPILE_LINMIN 3472 #define AE_COMPILE_OPTGUARDAPI 3473 #define AE_COMPILE_MATINV 3474 #define AE_COMPILE_OPTSERV 3475 #define AE_COMPILE_FBLS 3476 #define AE_COMPILE_MINLBFGS 3477 #define AE_COMPILE_CQMODELS 3478 #define AE_COMPILE_LPQPSERV 3479 #endif 3480 3481 #ifdef AE_COMPILE_MINQP 3482 #define AE_PARTIAL_BUILD 3483 #define AE_COMPILE_APSERV 3484 #define AE_COMPILE_SCODES 3485 #define AE_COMPILE_ABLASMKL 3486 #define AE_COMPILE_ABLASF 3487 #define AE_COMPILE_HQRND 3488 #define AE_COMPILE_TSORT 3489 #define AE_COMPILE_SPARSE 3490 #define AE_COMPILE_ABLAS 3491 #define AE_COMPILE_DLU 3492 #define AE_COMPILE_SPTRF 3493 #define AE_COMPILE_AMDORDERING 3494 #define AE_COMPILE_SPCHOL 3495 #define AE_COMPILE_CREFLECTIONS 3496 #define AE_COMPILE_MATGEN 3497 #define AE_COMPILE_ROTATIONS 3498 #define AE_COMPILE_TRFAC 3499 #define AE_COMPILE_TRLINSOLVE 3500 #define AE_COMPILE_SAFESOLVE 3501 #define AE_COMPILE_RCOND 3502 #define AE_COMPILE_MATINV 3503 #define AE_COMPILE_HBLAS 3504 #define AE_COMPILE_SBLAS 3505 #define AE_COMPILE_ORTFAC 3506 #define AE_COMPILE_BLAS 3507 #define AE_COMPILE_BDSVD 3508 #define AE_COMPILE_SVD 3509 #define AE_COMPILE_XBLAS 3510 #define AE_COMPILE_DIRECTDENSESOLVERS 3511 #define AE_COMPILE_NORMESTIMATOR 3512 #define AE_COMPILE_LINLSQR 3513 #define AE_COMPILE_LINMIN 3514 #define AE_COMPILE_OPTGUARDAPI 3515 #define AE_COMPILE_OPTSERV 3516 #define AE_COMPILE_FBLS 3517 #define AE_COMPILE_MINLBFGS 3518 #define AE_COMPILE_CQMODELS 3519 #define AE_COMPILE_LPQPSERV 3520 #define AE_COMPILE_SNNLS 3521 #define AE_COMPILE_SACTIVESETS 3522 #define AE_COMPILE_QQPSOLVER 3523 #define AE_COMPILE_QPDENSEAULSOLVER 3524 #define AE_COMPILE_MINBLEIC 3525 #define AE_COMPILE_QPBLEICSOLVER 3526 #define AE_COMPILE_VIPMSOLVER 3527 #endif 3528 3529 #ifdef AE_COMPILE_MINLM 3530 #define AE_PARTIAL_BUILD 3531 #define AE_COMPILE_APSERV 3532 #define AE_COMPILE_TSORT 3533 #define AE_COMPILE_OPTGUARDAPI 3534 #define AE_COMPILE_ABLASF 3535 #define AE_COMPILE_ABLASMKL 3536 #define AE_COMPILE_ABLAS 3537 #define AE_COMPILE_CREFLECTIONS 3538 #define AE_COMPILE_HQRND 3539 #define AE_COMPILE_MATGEN 3540 #define AE_COMPILE_SCODES 3541 #define AE_COMPILE_SPARSE 3542 #define AE_COMPILE_DLU 3543 #define AE_COMPILE_SPTRF 3544 #define AE_COMPILE_AMDORDERING 3545 #define AE_COMPILE_SPCHOL 3546 #define AE_COMPILE_ROTATIONS 3547 #define AE_COMPILE_TRFAC 3548 #define AE_COMPILE_TRLINSOLVE 3549 #define AE_COMPILE_SAFESOLVE 3550 #define AE_COMPILE_RCOND 3551 #define AE_COMPILE_MATINV 3552 #define AE_COMPILE_HBLAS 3553 #define AE_COMPILE_SBLAS 3554 #define AE_COMPILE_ORTFAC 3555 #define AE_COMPILE_BLAS 3556 #define AE_COMPILE_BDSVD 3557 #define AE_COMPILE_SVD 3558 #define AE_COMPILE_OPTSERV 3559 #define AE_COMPILE_XBLAS 3560 #define AE_COMPILE_DIRECTDENSESOLVERS 3561 #define AE_COMPILE_NORMESTIMATOR 3562 #define AE_COMPILE_LINLSQR 3563 #define AE_COMPILE_LINMIN 3564 #define AE_COMPILE_FBLS 3565 #define AE_COMPILE_MINLBFGS 3566 #define AE_COMPILE_CQMODELS 3567 #define AE_COMPILE_LPQPSERV 3568 #define AE_COMPILE_SNNLS 3569 #define AE_COMPILE_SACTIVESETS 3570 #define AE_COMPILE_QQPSOLVER 3571 #define AE_COMPILE_QPDENSEAULSOLVER 3572 #define AE_COMPILE_MINBLEIC 3573 #define AE_COMPILE_QPBLEICSOLVER 3574 #define AE_COMPILE_VIPMSOLVER 3575 #define AE_COMPILE_MINQP 3576 #endif 3577 3578 #ifdef AE_COMPILE_MINCG 3579 #define AE_PARTIAL_BUILD 3580 #define AE_COMPILE_LINMIN 3581 #define AE_COMPILE_APSERV 3582 #define AE_COMPILE_TSORT 3583 #define AE_COMPILE_OPTGUARDAPI 3584 #define AE_COMPILE_ABLASF 3585 #define AE_COMPILE_ABLASMKL 3586 #define AE_COMPILE_ABLAS 3587 #define AE_COMPILE_CREFLECTIONS 3588 #define AE_COMPILE_HQRND 3589 #define AE_COMPILE_MATGEN 3590 #define AE_COMPILE_SCODES 3591 #define AE_COMPILE_SPARSE 3592 #define AE_COMPILE_DLU 3593 #define AE_COMPILE_SPTRF 3594 #define AE_COMPILE_AMDORDERING 3595 #define AE_COMPILE_SPCHOL 3596 #define AE_COMPILE_ROTATIONS 3597 #define AE_COMPILE_TRFAC 3598 #define AE_COMPILE_TRLINSOLVE 3599 #define AE_COMPILE_SAFESOLVE 3600 #define AE_COMPILE_RCOND 3601 #define AE_COMPILE_MATINV 3602 #define AE_COMPILE_HBLAS 3603 #define AE_COMPILE_SBLAS 3604 #define AE_COMPILE_ORTFAC 3605 #define AE_COMPILE_BLAS 3606 #define AE_COMPILE_BDSVD 3607 #define AE_COMPILE_SVD 3608 #define AE_COMPILE_OPTSERV 3609 #endif 3610 3611 #ifdef AE_COMPILE_NLCSQP 3612 #define AE_PARTIAL_BUILD 3613 #define AE_COMPILE_LINMIN 3614 #define AE_COMPILE_APSERV 3615 #define AE_COMPILE_ABLASF 3616 #define AE_COMPILE_TSORT 3617 #define AE_COMPILE_OPTGUARDAPI 3618 #define AE_COMPILE_ABLASMKL 3619 #define AE_COMPILE_ABLAS 3620 #define AE_COMPILE_CREFLECTIONS 3621 #define AE_COMPILE_HQRND 3622 #define AE_COMPILE_MATGEN 3623 #define AE_COMPILE_SCODES 3624 #define AE_COMPILE_SPARSE 3625 #define AE_COMPILE_DLU 3626 #define AE_COMPILE_SPTRF 3627 #define AE_COMPILE_AMDORDERING 3628 #define AE_COMPILE_SPCHOL 3629 #define AE_COMPILE_ROTATIONS 3630 #define AE_COMPILE_TRFAC 3631 #define AE_COMPILE_TRLINSOLVE 3632 #define AE_COMPILE_SAFESOLVE 3633 #define AE_COMPILE_RCOND 3634 #define AE_COMPILE_MATINV 3635 #define AE_COMPILE_HBLAS 3636 #define AE_COMPILE_SBLAS 3637 #define AE_COMPILE_ORTFAC 3638 #define AE_COMPILE_BLAS 3639 #define AE_COMPILE_BDSVD 3640 #define AE_COMPILE_SVD 3641 #define AE_COMPILE_OPTSERV 3642 #define AE_COMPILE_XBLAS 3643 #define AE_COMPILE_DIRECTDENSESOLVERS 3644 #define AE_COMPILE_FBLS 3645 #define AE_COMPILE_MINLBFGS 3646 #define AE_COMPILE_CQMODELS 3647 #define AE_COMPILE_LPQPSERV 3648 #define AE_COMPILE_VIPMSOLVER 3649 #endif 3650 3651 #ifdef AE_COMPILE_LPQPPRESOLVE 3652 #define AE_PARTIAL_BUILD 3653 #define AE_COMPILE_APSERV 3654 #define AE_COMPILE_ABLASF 3655 #define AE_COMPILE_SCODES 3656 #define AE_COMPILE_ABLASMKL 3657 #define AE_COMPILE_HQRND 3658 #define AE_COMPILE_TSORT 3659 #define AE_COMPILE_SPARSE 3660 #endif 3661 3662 #ifdef AE_COMPILE_REVISEDDUALSIMPLEX 3663 #define AE_PARTIAL_BUILD 3664 #define AE_COMPILE_APSERV 3665 #define AE_COMPILE_ABLASF 3666 #define AE_COMPILE_ABLASMKL 3667 #define AE_COMPILE_ABLAS 3668 #define AE_COMPILE_SCODES 3669 #define AE_COMPILE_HQRND 3670 #define AE_COMPILE_TSORT 3671 #define AE_COMPILE_SPARSE 3672 #define AE_COMPILE_DLU 3673 #define AE_COMPILE_SPTRF 3674 #define AE_COMPILE_AMDORDERING 3675 #define AE_COMPILE_SPCHOL 3676 #define AE_COMPILE_CREFLECTIONS 3677 #define AE_COMPILE_MATGEN 3678 #define AE_COMPILE_ROTATIONS 3679 #define AE_COMPILE_TRFAC 3680 #define AE_COMPILE_LPQPPRESOLVE 3681 #endif 3682 3683 #ifdef AE_COMPILE_MINLP 3684 #define AE_PARTIAL_BUILD 3685 #define AE_COMPILE_APSERV 3686 #define AE_COMPILE_SCODES 3687 #define AE_COMPILE_ABLASMKL 3688 #define AE_COMPILE_ABLASF 3689 #define AE_COMPILE_HQRND 3690 #define AE_COMPILE_TSORT 3691 #define AE_COMPILE_SPARSE 3692 #define AE_COMPILE_ABLAS 3693 #define AE_COMPILE_DLU 3694 #define AE_COMPILE_SPTRF 3695 #define AE_COMPILE_AMDORDERING 3696 #define AE_COMPILE_SPCHOL 3697 #define AE_COMPILE_CREFLECTIONS 3698 #define AE_COMPILE_MATGEN 3699 #define AE_COMPILE_ROTATIONS 3700 #define AE_COMPILE_TRFAC 3701 #define AE_COMPILE_LPQPPRESOLVE 3702 #define AE_COMPILE_REVISEDDUALSIMPLEX 3703 #define AE_COMPILE_HBLAS 3704 #define AE_COMPILE_SBLAS 3705 #define AE_COMPILE_ORTFAC 3706 #define AE_COMPILE_BLAS 3707 #define AE_COMPILE_BDSVD 3708 #define AE_COMPILE_SVD 3709 #define AE_COMPILE_TRLINSOLVE 3710 #define AE_COMPILE_SAFESOLVE 3711 #define AE_COMPILE_RCOND 3712 #define AE_COMPILE_XBLAS 3713 #define AE_COMPILE_DIRECTDENSESOLVERS 3714 #define AE_COMPILE_LINMIN 3715 #define AE_COMPILE_OPTGUARDAPI 3716 #define AE_COMPILE_MATINV 3717 #define AE_COMPILE_OPTSERV 3718 #define AE_COMPILE_FBLS 3719 #define AE_COMPILE_MINLBFGS 3720 #define AE_COMPILE_CQMODELS 3721 #define AE_COMPILE_LPQPSERV 3722 #define AE_COMPILE_VIPMSOLVER 3723 #endif 3724 3725 #ifdef AE_COMPILE_NLCSLP 3726 #define AE_PARTIAL_BUILD 3727 #define AE_COMPILE_LINMIN 3728 #define AE_COMPILE_APSERV 3729 #define AE_COMPILE_TSORT 3730 #define AE_COMPILE_OPTGUARDAPI 3731 #define AE_COMPILE_ABLASF 3732 #define AE_COMPILE_ABLASMKL 3733 #define AE_COMPILE_ABLAS 3734 #define AE_COMPILE_CREFLECTIONS 3735 #define AE_COMPILE_HQRND 3736 #define AE_COMPILE_MATGEN 3737 #define AE_COMPILE_SCODES 3738 #define AE_COMPILE_SPARSE 3739 #define AE_COMPILE_DLU 3740 #define AE_COMPILE_SPTRF 3741 #define AE_COMPILE_AMDORDERING 3742 #define AE_COMPILE_SPCHOL 3743 #define AE_COMPILE_ROTATIONS 3744 #define AE_COMPILE_TRFAC 3745 #define AE_COMPILE_TRLINSOLVE 3746 #define AE_COMPILE_SAFESOLVE 3747 #define AE_COMPILE_RCOND 3748 #define AE_COMPILE_MATINV 3749 #define AE_COMPILE_HBLAS 3750 #define AE_COMPILE_SBLAS 3751 #define AE_COMPILE_ORTFAC 3752 #define AE_COMPILE_BLAS 3753 #define AE_COMPILE_BDSVD 3754 #define AE_COMPILE_SVD 3755 #define AE_COMPILE_OPTSERV 3756 #define AE_COMPILE_LPQPPRESOLVE 3757 #define AE_COMPILE_REVISEDDUALSIMPLEX 3758 #endif 3759 3760 #ifdef AE_COMPILE_MINNLC 3761 #define AE_PARTIAL_BUILD 3762 #define AE_COMPILE_LINMIN 3763 #define AE_COMPILE_APSERV 3764 #define AE_COMPILE_TSORT 3765 #define AE_COMPILE_OPTGUARDAPI 3766 #define AE_COMPILE_ABLASF 3767 #define AE_COMPILE_ABLASMKL 3768 #define AE_COMPILE_ABLAS 3769 #define AE_COMPILE_CREFLECTIONS 3770 #define AE_COMPILE_HQRND 3771 #define AE_COMPILE_MATGEN 3772 #define AE_COMPILE_SCODES 3773 #define AE_COMPILE_SPARSE 3774 #define AE_COMPILE_DLU 3775 #define AE_COMPILE_SPTRF 3776 #define AE_COMPILE_AMDORDERING 3777 #define AE_COMPILE_SPCHOL 3778 #define AE_COMPILE_ROTATIONS 3779 #define AE_COMPILE_TRFAC 3780 #define AE_COMPILE_TRLINSOLVE 3781 #define AE_COMPILE_SAFESOLVE 3782 #define AE_COMPILE_RCOND 3783 #define AE_COMPILE_MATINV 3784 #define AE_COMPILE_HBLAS 3785 #define AE_COMPILE_SBLAS 3786 #define AE_COMPILE_ORTFAC 3787 #define AE_COMPILE_BLAS 3788 #define AE_COMPILE_BDSVD 3789 #define AE_COMPILE_SVD 3790 #define AE_COMPILE_OPTSERV 3791 #define AE_COMPILE_FBLS 3792 #define AE_COMPILE_SNNLS 3793 #define AE_COMPILE_MINLBFGS 3794 #define AE_COMPILE_CQMODELS 3795 #define AE_COMPILE_SACTIVESETS 3796 #define AE_COMPILE_MINBLEIC 3797 #define AE_COMPILE_LPQPPRESOLVE 3798 #define AE_COMPILE_REVISEDDUALSIMPLEX 3799 #define AE_COMPILE_NLCSLP 3800 #define AE_COMPILE_XBLAS 3801 #define AE_COMPILE_DIRECTDENSESOLVERS 3802 #define AE_COMPILE_LPQPSERV 3803 #define AE_COMPILE_VIPMSOLVER 3804 #define AE_COMPILE_NLCSQP 3805 #endif 3806 3807 #ifdef AE_COMPILE_MINNS 3808 #define AE_PARTIAL_BUILD 3809 #define AE_COMPILE_LINMIN 3810 #define AE_COMPILE_APSERV 3811 #define AE_COMPILE_TSORT 3812 #define AE_COMPILE_OPTGUARDAPI 3813 #define AE_COMPILE_ABLASF 3814 #define AE_COMPILE_ABLASMKL 3815 #define AE_COMPILE_ABLAS 3816 #define AE_COMPILE_CREFLECTIONS 3817 #define AE_COMPILE_HQRND 3818 #define AE_COMPILE_MATGEN 3819 #define AE_COMPILE_SCODES 3820 #define AE_COMPILE_SPARSE 3821 #define AE_COMPILE_DLU 3822 #define AE_COMPILE_SPTRF 3823 #define AE_COMPILE_AMDORDERING 3824 #define AE_COMPILE_SPCHOL 3825 #define AE_COMPILE_ROTATIONS 3826 #define AE_COMPILE_TRFAC 3827 #define AE_COMPILE_TRLINSOLVE 3828 #define AE_COMPILE_SAFESOLVE 3829 #define AE_COMPILE_RCOND 3830 #define AE_COMPILE_MATINV 3831 #define AE_COMPILE_HBLAS 3832 #define AE_COMPILE_SBLAS 3833 #define AE_COMPILE_ORTFAC 3834 #define AE_COMPILE_BLAS 3835 #define AE_COMPILE_BDSVD 3836 #define AE_COMPILE_SVD 3837 #define AE_COMPILE_OPTSERV 3838 #define AE_COMPILE_FBLS 3839 #define AE_COMPILE_SNNLS 3840 #define AE_COMPILE_CQMODELS 3841 #define AE_COMPILE_SACTIVESETS 3842 #define AE_COMPILE_MINBLEIC 3843 #endif 3844 3845 #ifdef AE_COMPILE_MINCOMP 3846 #define AE_PARTIAL_BUILD 3847 #define AE_COMPILE_LINMIN 3848 #define AE_COMPILE_APSERV 3849 #define AE_COMPILE_TSORT 3850 #define AE_COMPILE_OPTGUARDAPI 3851 #define AE_COMPILE_ABLASF 3852 #define AE_COMPILE_ABLASMKL 3853 #define AE_COMPILE_ABLAS 3854 #define AE_COMPILE_CREFLECTIONS 3855 #define AE_COMPILE_HQRND 3856 #define AE_COMPILE_MATGEN 3857 #define AE_COMPILE_SCODES 3858 #define AE_COMPILE_SPARSE 3859 #define AE_COMPILE_DLU 3860 #define AE_COMPILE_SPTRF 3861 #define AE_COMPILE_AMDORDERING 3862 #define AE_COMPILE_SPCHOL 3863 #define AE_COMPILE_ROTATIONS 3864 #define AE_COMPILE_TRFAC 3865 #define AE_COMPILE_TRLINSOLVE 3866 #define AE_COMPILE_SAFESOLVE 3867 #define AE_COMPILE_RCOND 3868 #define AE_COMPILE_MATINV 3869 #define AE_COMPILE_HBLAS 3870 #define AE_COMPILE_SBLAS 3871 #define AE_COMPILE_ORTFAC 3872 #define AE_COMPILE_BLAS 3873 #define AE_COMPILE_BDSVD 3874 #define AE_COMPILE_SVD 3875 #define AE_COMPILE_OPTSERV 3876 #define AE_COMPILE_FBLS 3877 #define AE_COMPILE_MINLBFGS 3878 #define AE_COMPILE_CQMODELS 3879 #define AE_COMPILE_SNNLS 3880 #define AE_COMPILE_SACTIVESETS 3881 #define AE_COMPILE_MINBLEIC 3882 #endif 3883 3884 #ifdef AE_COMPILE_MINBC 3885 #define AE_PARTIAL_BUILD 3886 #define AE_COMPILE_LINMIN 3887 #define AE_COMPILE_APSERV 3888 #define AE_COMPILE_TSORT 3889 #define AE_COMPILE_OPTGUARDAPI 3890 #define AE_COMPILE_ABLASF 3891 #define AE_COMPILE_ABLASMKL 3892 #define AE_COMPILE_ABLAS 3893 #define AE_COMPILE_CREFLECTIONS 3894 #define AE_COMPILE_HQRND 3895 #define AE_COMPILE_MATGEN 3896 #define AE_COMPILE_SCODES 3897 #define AE_COMPILE_SPARSE 3898 #define AE_COMPILE_DLU 3899 #define AE_COMPILE_SPTRF 3900 #define AE_COMPILE_AMDORDERING 3901 #define AE_COMPILE_SPCHOL 3902 #define AE_COMPILE_ROTATIONS 3903 #define AE_COMPILE_TRFAC 3904 #define AE_COMPILE_TRLINSOLVE 3905 #define AE_COMPILE_SAFESOLVE 3906 #define AE_COMPILE_RCOND 3907 #define AE_COMPILE_MATINV 3908 #define AE_COMPILE_HBLAS 3909 #define AE_COMPILE_SBLAS 3910 #define AE_COMPILE_ORTFAC 3911 #define AE_COMPILE_BLAS 3912 #define AE_COMPILE_BDSVD 3913 #define AE_COMPILE_SVD 3914 #define AE_COMPILE_OPTSERV 3915 #endif 3916 3917 #ifdef AE_COMPILE_OPTS 3918 #define AE_PARTIAL_BUILD 3919 #define AE_COMPILE_APSERV 3920 #define AE_COMPILE_SCODES 3921 #define AE_COMPILE_ABLASMKL 3922 #define AE_COMPILE_ABLASF 3923 #define AE_COMPILE_HQRND 3924 #define AE_COMPILE_TSORT 3925 #define AE_COMPILE_SPARSE 3926 #define AE_COMPILE_ABLAS 3927 #define AE_COMPILE_DLU 3928 #define AE_COMPILE_SPTRF 3929 #define AE_COMPILE_AMDORDERING 3930 #define AE_COMPILE_SPCHOL 3931 #define AE_COMPILE_CREFLECTIONS 3932 #define AE_COMPILE_MATGEN 3933 #define AE_COMPILE_ROTATIONS 3934 #define AE_COMPILE_TRFAC 3935 #define AE_COMPILE_LPQPPRESOLVE 3936 #define AE_COMPILE_REVISEDDUALSIMPLEX 3937 #define AE_COMPILE_HBLAS 3938 #define AE_COMPILE_SBLAS 3939 #define AE_COMPILE_ORTFAC 3940 #define AE_COMPILE_BLAS 3941 #define AE_COMPILE_BDSVD 3942 #define AE_COMPILE_SVD 3943 #define AE_COMPILE_TRLINSOLVE 3944 #define AE_COMPILE_SAFESOLVE 3945 #define AE_COMPILE_RCOND 3946 #define AE_COMPILE_XBLAS 3947 #define AE_COMPILE_DIRECTDENSESOLVERS 3948 #define AE_COMPILE_LINMIN 3949 #define AE_COMPILE_OPTGUARDAPI 3950 #define AE_COMPILE_MATINV 3951 #define AE_COMPILE_OPTSERV 3952 #define AE_COMPILE_FBLS 3953 #define AE_COMPILE_MINLBFGS 3954 #define AE_COMPILE_CQMODELS 3955 #define AE_COMPILE_LPQPSERV 3956 #define AE_COMPILE_VIPMSOLVER 3957 #define AE_COMPILE_MINLP 3958 #endif 3959 3960 #ifdef AE_COMPILE_XDEBUG 3961 #define AE_PARTIAL_BUILD 3962 #endif 3963 3964 #ifdef AE_COMPILE_NEARESTNEIGHBOR 3965 #define AE_PARTIAL_BUILD 3966 #define AE_COMPILE_SCODES 3967 #define AE_COMPILE_APSERV 3968 #define AE_COMPILE_TSORT 3969 #endif 3970 3971 #ifdef AE_COMPILE_ODESOLVER 3972 #define AE_PARTIAL_BUILD 3973 #define AE_COMPILE_APSERV 3974 #endif 3975 3976 #ifdef AE_COMPILE_INVERSEUPDATE 3977 #define AE_PARTIAL_BUILD 3978 #endif 3979 3980 #ifdef AE_COMPILE_SCHUR 3981 #define AE_PARTIAL_BUILD 3982 #define AE_COMPILE_APSERV 3983 #define AE_COMPILE_ABLASF 3984 #define AE_COMPILE_HQRND 3985 #define AE_COMPILE_HBLAS 3986 #define AE_COMPILE_CREFLECTIONS 3987 #define AE_COMPILE_SBLAS 3988 #define AE_COMPILE_ABLASMKL 3989 #define AE_COMPILE_ABLAS 3990 #define AE_COMPILE_ORTFAC 3991 #define AE_COMPILE_BLAS 3992 #define AE_COMPILE_ROTATIONS 3993 #define AE_COMPILE_HSSCHUR 3994 #endif 3995 3996 #ifdef AE_COMPILE_SPDGEVD 3997 #define AE_PARTIAL_BUILD 3998 #define AE_COMPILE_APSERV 3999 #define AE_COMPILE_ABLASF 4000 #define AE_COMPILE_ABLASMKL 4001 #define AE_COMPILE_ABLAS 4002 #define AE_COMPILE_SCODES 4003 #define AE_COMPILE_HQRND 4004 #define AE_COMPILE_TSORT 4005 #define AE_COMPILE_SPARSE 4006 #define AE_COMPILE_DLU 4007 #define AE_COMPILE_SPTRF 4008 #define AE_COMPILE_AMDORDERING 4009 #define AE_COMPILE_SPCHOL 4010 #define AE_COMPILE_CREFLECTIONS 4011 #define AE_COMPILE_MATGEN 4012 #define AE_COMPILE_ROTATIONS 4013 #define AE_COMPILE_TRFAC 4014 #define AE_COMPILE_SBLAS 4015 #define AE_COMPILE_BLAS 4016 #define AE_COMPILE_TRLINSOLVE 4017 #define AE_COMPILE_SAFESOLVE 4018 #define AE_COMPILE_RCOND 4019 #define AE_COMPILE_MATINV 4020 #define AE_COMPILE_HBLAS 4021 #define AE_COMPILE_ORTFAC 4022 #define AE_COMPILE_HSSCHUR 4023 #define AE_COMPILE_BASICSTATOPS 4024 #define AE_COMPILE_EVD 4025 #endif 4026 4027 #ifdef AE_COMPILE_MATDET 4028 #define AE_PARTIAL_BUILD 4029 #define AE_COMPILE_APSERV 4030 #define AE_COMPILE_ABLASF 4031 #define AE_COMPILE_ABLASMKL 4032 #define AE_COMPILE_ABLAS 4033 #define AE_COMPILE_SCODES 4034 #define AE_COMPILE_HQRND 4035 #define AE_COMPILE_TSORT 4036 #define AE_COMPILE_SPARSE 4037 #define AE_COMPILE_DLU 4038 #define AE_COMPILE_SPTRF 4039 #define AE_COMPILE_AMDORDERING 4040 #define AE_COMPILE_SPCHOL 4041 #define AE_COMPILE_CREFLECTIONS 4042 #define AE_COMPILE_MATGEN 4043 #define AE_COMPILE_ROTATIONS 4044 #define AE_COMPILE_TRFAC 4045 #endif 4046 4047 #ifdef AE_COMPILE_GAMMAFUNC 4048 #define AE_PARTIAL_BUILD 4049 #endif 4050 4051 #ifdef AE_COMPILE_GQ 4052 #define AE_PARTIAL_BUILD 4053 #define AE_COMPILE_APSERV 4054 #define AE_COMPILE_ABLASF 4055 #define AE_COMPILE_HQRND 4056 #define AE_COMPILE_HBLAS 4057 #define AE_COMPILE_CREFLECTIONS 4058 #define AE_COMPILE_SBLAS 4059 #define AE_COMPILE_ABLASMKL 4060 #define AE_COMPILE_ABLAS 4061 #define AE_COMPILE_ORTFAC 4062 #define AE_COMPILE_MATGEN 4063 #define AE_COMPILE_SCODES 4064 #define AE_COMPILE_TSORT 4065 #define AE_COMPILE_SPARSE 4066 #define AE_COMPILE_BLAS 4067 #define AE_COMPILE_ROTATIONS 4068 #define AE_COMPILE_HSSCHUR 4069 #define AE_COMPILE_BASICSTATOPS 4070 #define AE_COMPILE_EVD 4071 #define AE_COMPILE_GAMMAFUNC 4072 #endif 4073 4074 #ifdef AE_COMPILE_GKQ 4075 #define AE_PARTIAL_BUILD 4076 #define AE_COMPILE_APSERV 4077 #define AE_COMPILE_TSORT 4078 #define AE_COMPILE_ABLASF 4079 #define AE_COMPILE_HQRND 4080 #define AE_COMPILE_HBLAS 4081 #define AE_COMPILE_CREFLECTIONS 4082 #define AE_COMPILE_SBLAS 4083 #define AE_COMPILE_ABLASMKL 4084 #define AE_COMPILE_ABLAS 4085 #define AE_COMPILE_ORTFAC 4086 #define AE_COMPILE_MATGEN 4087 #define AE_COMPILE_SCODES 4088 #define AE_COMPILE_SPARSE 4089 #define AE_COMPILE_BLAS 4090 #define AE_COMPILE_ROTATIONS 4091 #define AE_COMPILE_HSSCHUR 4092 #define AE_COMPILE_BASICSTATOPS 4093 #define AE_COMPILE_EVD 4094 #define AE_COMPILE_GAMMAFUNC 4095 #define AE_COMPILE_GQ 4096 #endif 4097 4098 #ifdef AE_COMPILE_AUTOGK 4099 #define AE_PARTIAL_BUILD 4100 #define AE_COMPILE_APSERV 4101 #define AE_COMPILE_TSORT 4102 #define AE_COMPILE_ABLASF 4103 #define AE_COMPILE_HQRND 4104 #define AE_COMPILE_HBLAS 4105 #define AE_COMPILE_CREFLECTIONS 4106 #define AE_COMPILE_SBLAS 4107 #define AE_COMPILE_ABLASMKL 4108 #define AE_COMPILE_ABLAS 4109 #define AE_COMPILE_ORTFAC 4110 #define AE_COMPILE_MATGEN 4111 #define AE_COMPILE_SCODES 4112 #define AE_COMPILE_SPARSE 4113 #define AE_COMPILE_BLAS 4114 #define AE_COMPILE_ROTATIONS 4115 #define AE_COMPILE_HSSCHUR 4116 #define AE_COMPILE_BASICSTATOPS 4117 #define AE_COMPILE_EVD 4118 #define AE_COMPILE_GAMMAFUNC 4119 #define AE_COMPILE_GQ 4120 #define AE_COMPILE_GKQ 4121 #endif 4122 4123 #ifdef AE_COMPILE_NORMALDISTR 4124 #define AE_PARTIAL_BUILD 4125 #define AE_COMPILE_APSERV 4126 #define AE_COMPILE_ABLASF 4127 #define AE_COMPILE_HQRND 4128 #endif 4129 4130 #ifdef AE_COMPILE_IBETAF 4131 #define AE_PARTIAL_BUILD 4132 #define AE_COMPILE_GAMMAFUNC 4133 #define AE_COMPILE_APSERV 4134 #define AE_COMPILE_ABLASF 4135 #define AE_COMPILE_HQRND 4136 #define AE_COMPILE_NORMALDISTR 4137 #endif 4138 4139 #ifdef AE_COMPILE_STUDENTTDISTR 4140 #define AE_PARTIAL_BUILD 4141 #define AE_COMPILE_GAMMAFUNC 4142 #define AE_COMPILE_APSERV 4143 #define AE_COMPILE_ABLASF 4144 #define AE_COMPILE_HQRND 4145 #define AE_COMPILE_NORMALDISTR 4146 #define AE_COMPILE_IBETAF 4147 #endif 4148 4149 #ifdef AE_COMPILE_BASESTAT 4150 #define AE_PARTIAL_BUILD 4151 #define AE_COMPILE_APSERV 4152 #define AE_COMPILE_TSORT 4153 #define AE_COMPILE_BASICSTATOPS 4154 #define AE_COMPILE_ABLASF 4155 #define AE_COMPILE_ABLASMKL 4156 #define AE_COMPILE_ABLAS 4157 #endif 4158 4159 #ifdef AE_COMPILE_CORRELATIONTESTS 4160 #define AE_PARTIAL_BUILD 4161 #define AE_COMPILE_GAMMAFUNC 4162 #define AE_COMPILE_APSERV 4163 #define AE_COMPILE_ABLASF 4164 #define AE_COMPILE_HQRND 4165 #define AE_COMPILE_NORMALDISTR 4166 #define AE_COMPILE_IBETAF 4167 #define AE_COMPILE_STUDENTTDISTR 4168 #define AE_COMPILE_TSORT 4169 #define AE_COMPILE_BASICSTATOPS 4170 #define AE_COMPILE_ABLASMKL 4171 #define AE_COMPILE_ABLAS 4172 #define AE_COMPILE_BASESTAT 4173 #endif 4174 4175 #ifdef AE_COMPILE_JARQUEBERA 4176 #define AE_PARTIAL_BUILD 4177 #endif 4178 4179 #ifdef AE_COMPILE_FDISTR 4180 #define AE_PARTIAL_BUILD 4181 #define AE_COMPILE_GAMMAFUNC 4182 #define AE_COMPILE_APSERV 4183 #define AE_COMPILE_ABLASF 4184 #define AE_COMPILE_HQRND 4185 #define AE_COMPILE_NORMALDISTR 4186 #define AE_COMPILE_IBETAF 4187 #endif 4188 4189 #ifdef AE_COMPILE_IGAMMAF 4190 #define AE_PARTIAL_BUILD 4191 #define AE_COMPILE_GAMMAFUNC 4192 #define AE_COMPILE_APSERV 4193 #define AE_COMPILE_ABLASF 4194 #define AE_COMPILE_HQRND 4195 #define AE_COMPILE_NORMALDISTR 4196 #endif 4197 4198 #ifdef AE_COMPILE_CHISQUAREDISTR 4199 #define AE_PARTIAL_BUILD 4200 #define AE_COMPILE_GAMMAFUNC 4201 #define AE_COMPILE_APSERV 4202 #define AE_COMPILE_ABLASF 4203 #define AE_COMPILE_HQRND 4204 #define AE_COMPILE_NORMALDISTR 4205 #define AE_COMPILE_IGAMMAF 4206 #endif 4207 4208 #ifdef AE_COMPILE_VARIANCETESTS 4209 #define AE_PARTIAL_BUILD 4210 #define AE_COMPILE_GAMMAFUNC 4211 #define AE_COMPILE_APSERV 4212 #define AE_COMPILE_ABLASF 4213 #define AE_COMPILE_HQRND 4214 #define AE_COMPILE_NORMALDISTR 4215 #define AE_COMPILE_IBETAF 4216 #define AE_COMPILE_FDISTR 4217 #define AE_COMPILE_IGAMMAF 4218 #define AE_COMPILE_CHISQUAREDISTR 4219 #endif 4220 4221 #ifdef AE_COMPILE_WSR 4222 #define AE_PARTIAL_BUILD 4223 #define AE_COMPILE_APSERV 4224 #endif 4225 4226 #ifdef AE_COMPILE_MANNWHITNEYU 4227 #define AE_PARTIAL_BUILD 4228 #define AE_COMPILE_APSERV 4229 #define AE_COMPILE_ABLASF 4230 #define AE_COMPILE_HQRND 4231 #endif 4232 4233 #ifdef AE_COMPILE_NEARUNITYUNIT 4234 #define AE_PARTIAL_BUILD 4235 #endif 4236 4237 #ifdef AE_COMPILE_BINOMIALDISTR 4238 #define AE_PARTIAL_BUILD 4239 #define AE_COMPILE_GAMMAFUNC 4240 #define AE_COMPILE_APSERV 4241 #define AE_COMPILE_ABLASF 4242 #define AE_COMPILE_HQRND 4243 #define AE_COMPILE_NORMALDISTR 4244 #define AE_COMPILE_IBETAF 4245 #define AE_COMPILE_NEARUNITYUNIT 4246 #endif 4247 4248 #ifdef AE_COMPILE_STEST 4249 #define AE_PARTIAL_BUILD 4250 #define AE_COMPILE_GAMMAFUNC 4251 #define AE_COMPILE_APSERV 4252 #define AE_COMPILE_ABLASF 4253 #define AE_COMPILE_HQRND 4254 #define AE_COMPILE_NORMALDISTR 4255 #define AE_COMPILE_IBETAF 4256 #define AE_COMPILE_NEARUNITYUNIT 4257 #define AE_COMPILE_BINOMIALDISTR 4258 #endif 4259 4260 #ifdef AE_COMPILE_STUDENTTTESTS 4261 #define AE_PARTIAL_BUILD 4262 #define AE_COMPILE_APSERV 4263 #define AE_COMPILE_GAMMAFUNC 4264 #define AE_COMPILE_ABLASF 4265 #define AE_COMPILE_HQRND 4266 #define AE_COMPILE_NORMALDISTR 4267 #define AE_COMPILE_IBETAF 4268 #define AE_COMPILE_STUDENTTDISTR 4269 #endif 4270 4271 #ifdef AE_COMPILE_RATINT 4272 #define AE_PARTIAL_BUILD 4273 #define AE_COMPILE_APSERV 4274 #define AE_COMPILE_TSORT 4275 #endif 4276 4277 #ifdef AE_COMPILE_IDW 4278 #define AE_PARTIAL_BUILD 4279 #define AE_COMPILE_SCODES 4280 #define AE_COMPILE_APSERV 4281 #define AE_COMPILE_TSORT 4282 #define AE_COMPILE_NEARESTNEIGHBOR 4283 #define AE_COMPILE_ABLASF 4284 #define AE_COMPILE_HQRND 4285 #define AE_COMPILE_ABLASMKL 4286 #define AE_COMPILE_ABLAS 4287 #endif 4288 4289 #ifdef AE_COMPILE_INTFITSERV 4290 #define AE_PARTIAL_BUILD 4291 #define AE_COMPILE_APSERV 4292 #define AE_COMPILE_ABLASF 4293 #define AE_COMPILE_ABLASMKL 4294 #define AE_COMPILE_ABLAS 4295 #define AE_COMPILE_SCODES 4296 #define AE_COMPILE_HQRND 4297 #define AE_COMPILE_TSORT 4298 #define AE_COMPILE_SPARSE 4299 #define AE_COMPILE_DLU 4300 #define AE_COMPILE_SPTRF 4301 #define AE_COMPILE_AMDORDERING 4302 #define AE_COMPILE_SPCHOL 4303 #define AE_COMPILE_CREFLECTIONS 4304 #define AE_COMPILE_MATGEN 4305 #define AE_COMPILE_ROTATIONS 4306 #define AE_COMPILE_TRFAC 4307 #endif 4308 4309 #ifdef AE_COMPILE_POLINT 4310 #define AE_PARTIAL_BUILD 4311 #define AE_COMPILE_APSERV 4312 #define AE_COMPILE_TSORT 4313 #define AE_COMPILE_RATINT 4314 #endif 4315 4316 #ifdef AE_COMPILE_SPLINE1D 4317 #define AE_PARTIAL_BUILD 4318 #define AE_COMPILE_APSERV 4319 #define AE_COMPILE_TSORT 4320 #define AE_COMPILE_ABLASF 4321 #define AE_COMPILE_ABLASMKL 4322 #define AE_COMPILE_ABLAS 4323 #define AE_COMPILE_SCODES 4324 #define AE_COMPILE_HQRND 4325 #define AE_COMPILE_SPARSE 4326 #define AE_COMPILE_DLU 4327 #define AE_COMPILE_SPTRF 4328 #define AE_COMPILE_AMDORDERING 4329 #define AE_COMPILE_SPCHOL 4330 #define AE_COMPILE_CREFLECTIONS 4331 #define AE_COMPILE_MATGEN 4332 #define AE_COMPILE_ROTATIONS 4333 #define AE_COMPILE_TRFAC 4334 #define AE_COMPILE_INTFITSERV 4335 #define AE_COMPILE_HBLAS 4336 #define AE_COMPILE_SBLAS 4337 #define AE_COMPILE_ORTFAC 4338 #define AE_COMPILE_FBLS 4339 #define AE_COMPILE_NORMESTIMATOR 4340 #define AE_COMPILE_BLAS 4341 #define AE_COMPILE_BDSVD 4342 #define AE_COMPILE_SVD 4343 #define AE_COMPILE_LINLSQR 4344 #endif 4345 4346 #ifdef AE_COMPILE_LSFIT 4347 #define AE_PARTIAL_BUILD 4348 #define AE_COMPILE_APSERV 4349 #define AE_COMPILE_ABLASF 4350 #define AE_COMPILE_ABLASMKL 4351 #define AE_COMPILE_ABLAS 4352 #define AE_COMPILE_SCODES 4353 #define AE_COMPILE_HQRND 4354 #define AE_COMPILE_TSORT 4355 #define AE_COMPILE_SPARSE 4356 #define AE_COMPILE_DLU 4357 #define AE_COMPILE_SPTRF 4358 #define AE_COMPILE_AMDORDERING 4359 #define AE_COMPILE_SPCHOL 4360 #define AE_COMPILE_CREFLECTIONS 4361 #define AE_COMPILE_MATGEN 4362 #define AE_COMPILE_ROTATIONS 4363 #define AE_COMPILE_TRFAC 4364 #define AE_COMPILE_INTFITSERV 4365 #define AE_COMPILE_RATINT 4366 #define AE_COMPILE_POLINT 4367 #define AE_COMPILE_HBLAS 4368 #define AE_COMPILE_SBLAS 4369 #define AE_COMPILE_ORTFAC 4370 #define AE_COMPILE_FBLS 4371 #define AE_COMPILE_NORMESTIMATOR 4372 #define AE_COMPILE_BLAS 4373 #define AE_COMPILE_BDSVD 4374 #define AE_COMPILE_SVD 4375 #define AE_COMPILE_LINLSQR 4376 #define AE_COMPILE_SPLINE1D 4377 #define AE_COMPILE_OPTGUARDAPI 4378 #define AE_COMPILE_TRLINSOLVE 4379 #define AE_COMPILE_SAFESOLVE 4380 #define AE_COMPILE_RCOND 4381 #define AE_COMPILE_MATINV 4382 #define AE_COMPILE_OPTSERV 4383 #define AE_COMPILE_XBLAS 4384 #define AE_COMPILE_DIRECTDENSESOLVERS 4385 #define AE_COMPILE_LINMIN 4386 #define AE_COMPILE_MINLBFGS 4387 #define AE_COMPILE_CQMODELS 4388 #define AE_COMPILE_LPQPSERV 4389 #define AE_COMPILE_SNNLS 4390 #define AE_COMPILE_SACTIVESETS 4391 #define AE_COMPILE_QQPSOLVER 4392 #define AE_COMPILE_QPDENSEAULSOLVER 4393 #define AE_COMPILE_MINBLEIC 4394 #define AE_COMPILE_QPBLEICSOLVER 4395 #define AE_COMPILE_VIPMSOLVER 4396 #define AE_COMPILE_MINQP 4397 #define AE_COMPILE_MINLM 4398 #endif 4399 4400 #ifdef AE_COMPILE_FITSPHERE 4401 #define AE_PARTIAL_BUILD 4402 #define AE_COMPILE_LINMIN 4403 #define AE_COMPILE_APSERV 4404 #define AE_COMPILE_TSORT 4405 #define AE_COMPILE_OPTGUARDAPI 4406 #define AE_COMPILE_ABLASF 4407 #define AE_COMPILE_ABLASMKL 4408 #define AE_COMPILE_ABLAS 4409 #define AE_COMPILE_CREFLECTIONS 4410 #define AE_COMPILE_HQRND 4411 #define AE_COMPILE_MATGEN 4412 #define AE_COMPILE_SCODES 4413 #define AE_COMPILE_SPARSE 4414 #define AE_COMPILE_DLU 4415 #define AE_COMPILE_SPTRF 4416 #define AE_COMPILE_AMDORDERING 4417 #define AE_COMPILE_SPCHOL 4418 #define AE_COMPILE_ROTATIONS 4419 #define AE_COMPILE_TRFAC 4420 #define AE_COMPILE_TRLINSOLVE 4421 #define AE_COMPILE_SAFESOLVE 4422 #define AE_COMPILE_RCOND 4423 #define AE_COMPILE_MATINV 4424 #define AE_COMPILE_HBLAS 4425 #define AE_COMPILE_SBLAS 4426 #define AE_COMPILE_ORTFAC 4427 #define AE_COMPILE_BLAS 4428 #define AE_COMPILE_BDSVD 4429 #define AE_COMPILE_SVD 4430 #define AE_COMPILE_OPTSERV 4431 #define AE_COMPILE_FBLS 4432 #define AE_COMPILE_CQMODELS 4433 #define AE_COMPILE_SNNLS 4434 #define AE_COMPILE_SACTIVESETS 4435 #define AE_COMPILE_MINBLEIC 4436 #define AE_COMPILE_XBLAS 4437 #define AE_COMPILE_DIRECTDENSESOLVERS 4438 #define AE_COMPILE_NORMESTIMATOR 4439 #define AE_COMPILE_LINLSQR 4440 #define AE_COMPILE_MINLBFGS 4441 #define AE_COMPILE_LPQPSERV 4442 #define AE_COMPILE_QQPSOLVER 4443 #define AE_COMPILE_QPDENSEAULSOLVER 4444 #define AE_COMPILE_QPBLEICSOLVER 4445 #define AE_COMPILE_VIPMSOLVER 4446 #define AE_COMPILE_MINQP 4447 #define AE_COMPILE_MINLM 4448 #define AE_COMPILE_LPQPPRESOLVE 4449 #define AE_COMPILE_REVISEDDUALSIMPLEX 4450 #define AE_COMPILE_NLCSLP 4451 #define AE_COMPILE_NLCSQP 4452 #define AE_COMPILE_MINNLC 4453 #endif 4454 4455 #ifdef AE_COMPILE_PARAMETRIC 4456 #define AE_PARTIAL_BUILD 4457 #define AE_COMPILE_APSERV 4458 #define AE_COMPILE_ABLASF 4459 #define AE_COMPILE_HQRND 4460 #define AE_COMPILE_TSORT 4461 #define AE_COMPILE_ABLASMKL 4462 #define AE_COMPILE_ABLAS 4463 #define AE_COMPILE_SCODES 4464 #define AE_COMPILE_SPARSE 4465 #define AE_COMPILE_DLU 4466 #define AE_COMPILE_SPTRF 4467 #define AE_COMPILE_AMDORDERING 4468 #define AE_COMPILE_SPCHOL 4469 #define AE_COMPILE_CREFLECTIONS 4470 #define AE_COMPILE_MATGEN 4471 #define AE_COMPILE_ROTATIONS 4472 #define AE_COMPILE_TRFAC 4473 #define AE_COMPILE_INTFITSERV 4474 #define AE_COMPILE_HBLAS 4475 #define AE_COMPILE_SBLAS 4476 #define AE_COMPILE_ORTFAC 4477 #define AE_COMPILE_FBLS 4478 #define AE_COMPILE_NORMESTIMATOR 4479 #define AE_COMPILE_BLAS 4480 #define AE_COMPILE_BDSVD 4481 #define AE_COMPILE_SVD 4482 #define AE_COMPILE_LINLSQR 4483 #define AE_COMPILE_SPLINE1D 4484 #define AE_COMPILE_HSSCHUR 4485 #define AE_COMPILE_BASICSTATOPS 4486 #define AE_COMPILE_EVD 4487 #define AE_COMPILE_GAMMAFUNC 4488 #define AE_COMPILE_GQ 4489 #define AE_COMPILE_GKQ 4490 #define AE_COMPILE_AUTOGK 4491 #endif 4492 4493 #ifdef AE_COMPILE_RBFV1 4494 #define AE_PARTIAL_BUILD 4495 #define AE_COMPILE_SCODES 4496 #define AE_COMPILE_APSERV 4497 #define AE_COMPILE_TSORT 4498 #define AE_COMPILE_NEARESTNEIGHBOR 4499 #define AE_COMPILE_ABLASF 4500 #define AE_COMPILE_ABLASMKL 4501 #define AE_COMPILE_ABLAS 4502 #define AE_COMPILE_HQRND 4503 #define AE_COMPILE_SPARSE 4504 #define AE_COMPILE_DLU 4505 #define AE_COMPILE_SPTRF 4506 #define AE_COMPILE_AMDORDERING 4507 #define AE_COMPILE_SPCHOL 4508 #define AE_COMPILE_CREFLECTIONS 4509 #define AE_COMPILE_MATGEN 4510 #define AE_COMPILE_ROTATIONS 4511 #define AE_COMPILE_TRFAC 4512 #define AE_COMPILE_INTFITSERV 4513 #define AE_COMPILE_RATINT 4514 #define AE_COMPILE_POLINT 4515 #define AE_COMPILE_HBLAS 4516 #define AE_COMPILE_SBLAS 4517 #define AE_COMPILE_ORTFAC 4518 #define AE_COMPILE_FBLS 4519 #define AE_COMPILE_NORMESTIMATOR 4520 #define AE_COMPILE_BLAS 4521 #define AE_COMPILE_BDSVD 4522 #define AE_COMPILE_SVD 4523 #define AE_COMPILE_LINLSQR 4524 #define AE_COMPILE_SPLINE1D 4525 #define AE_COMPILE_OPTGUARDAPI 4526 #define AE_COMPILE_TRLINSOLVE 4527 #define AE_COMPILE_SAFESOLVE 4528 #define AE_COMPILE_RCOND 4529 #define AE_COMPILE_MATINV 4530 #define AE_COMPILE_OPTSERV 4531 #define AE_COMPILE_XBLAS 4532 #define AE_COMPILE_DIRECTDENSESOLVERS 4533 #define AE_COMPILE_LINMIN 4534 #define AE_COMPILE_MINLBFGS 4535 #define AE_COMPILE_CQMODELS 4536 #define AE_COMPILE_LPQPSERV 4537 #define AE_COMPILE_SNNLS 4538 #define AE_COMPILE_SACTIVESETS 4539 #define AE_COMPILE_QQPSOLVER 4540 #define AE_COMPILE_QPDENSEAULSOLVER 4541 #define AE_COMPILE_MINBLEIC 4542 #define AE_COMPILE_QPBLEICSOLVER 4543 #define AE_COMPILE_VIPMSOLVER 4544 #define AE_COMPILE_MINQP 4545 #define AE_COMPILE_MINLM 4546 #define AE_COMPILE_LSFIT 4547 #endif 4548 4549 #ifdef AE_COMPILE_SPLINE2D 4550 #define AE_PARTIAL_BUILD 4551 #define AE_COMPILE_APSERV 4552 #define AE_COMPILE_SCODES 4553 #define AE_COMPILE_ABLASF 4554 #define AE_COMPILE_ABLASMKL 4555 #define AE_COMPILE_ABLAS 4556 #define AE_COMPILE_HQRND 4557 #define AE_COMPILE_TSORT 4558 #define AE_COMPILE_SPARSE 4559 #define AE_COMPILE_DLU 4560 #define AE_COMPILE_SPTRF 4561 #define AE_COMPILE_AMDORDERING 4562 #define AE_COMPILE_SPCHOL 4563 #define AE_COMPILE_CREFLECTIONS 4564 #define AE_COMPILE_MATGEN 4565 #define AE_COMPILE_ROTATIONS 4566 #define AE_COMPILE_TRFAC 4567 #define AE_COMPILE_INTFITSERV 4568 #define AE_COMPILE_NORMESTIMATOR 4569 #define AE_COMPILE_HBLAS 4570 #define AE_COMPILE_SBLAS 4571 #define AE_COMPILE_ORTFAC 4572 #define AE_COMPILE_BLAS 4573 #define AE_COMPILE_BDSVD 4574 #define AE_COMPILE_SVD 4575 #define AE_COMPILE_LINLSQR 4576 #define AE_COMPILE_FBLS 4577 #define AE_COMPILE_SPLINE1D 4578 #endif 4579 4580 #ifdef AE_COMPILE_RBFV2 4581 #define AE_PARTIAL_BUILD 4582 #define AE_COMPILE_SCODES 4583 #define AE_COMPILE_APSERV 4584 #define AE_COMPILE_TSORT 4585 #define AE_COMPILE_NEARESTNEIGHBOR 4586 #define AE_COMPILE_ABLASF 4587 #define AE_COMPILE_ABLASMKL 4588 #define AE_COMPILE_ABLAS 4589 #define AE_COMPILE_HQRND 4590 #define AE_COMPILE_SPARSE 4591 #define AE_COMPILE_DLU 4592 #define AE_COMPILE_SPTRF 4593 #define AE_COMPILE_AMDORDERING 4594 #define AE_COMPILE_SPCHOL 4595 #define AE_COMPILE_CREFLECTIONS 4596 #define AE_COMPILE_MATGEN 4597 #define AE_COMPILE_ROTATIONS 4598 #define AE_COMPILE_TRFAC 4599 #define AE_COMPILE_INTFITSERV 4600 #define AE_COMPILE_RATINT 4601 #define AE_COMPILE_POLINT 4602 #define AE_COMPILE_HBLAS 4603 #define AE_COMPILE_SBLAS 4604 #define AE_COMPILE_ORTFAC 4605 #define AE_COMPILE_FBLS 4606 #define AE_COMPILE_NORMESTIMATOR 4607 #define AE_COMPILE_BLAS 4608 #define AE_COMPILE_BDSVD 4609 #define AE_COMPILE_SVD 4610 #define AE_COMPILE_LINLSQR 4611 #define AE_COMPILE_SPLINE1D 4612 #define AE_COMPILE_OPTGUARDAPI 4613 #define AE_COMPILE_TRLINSOLVE 4614 #define AE_COMPILE_SAFESOLVE 4615 #define AE_COMPILE_RCOND 4616 #define AE_COMPILE_MATINV 4617 #define AE_COMPILE_OPTSERV 4618 #define AE_COMPILE_XBLAS 4619 #define AE_COMPILE_DIRECTDENSESOLVERS 4620 #define AE_COMPILE_LINMIN 4621 #define AE_COMPILE_MINLBFGS 4622 #define AE_COMPILE_CQMODELS 4623 #define AE_COMPILE_LPQPSERV 4624 #define AE_COMPILE_SNNLS 4625 #define AE_COMPILE_SACTIVESETS 4626 #define AE_COMPILE_QQPSOLVER 4627 #define AE_COMPILE_QPDENSEAULSOLVER 4628 #define AE_COMPILE_MINBLEIC 4629 #define AE_COMPILE_QPBLEICSOLVER 4630 #define AE_COMPILE_VIPMSOLVER 4631 #define AE_COMPILE_MINQP 4632 #define AE_COMPILE_MINLM 4633 #define AE_COMPILE_LSFIT 4634 #endif 4635 4636 #ifdef AE_COMPILE_SPLINE3D 4637 #define AE_PARTIAL_BUILD 4638 #define AE_COMPILE_APSERV 4639 #define AE_COMPILE_TSORT 4640 #define AE_COMPILE_ABLASF 4641 #define AE_COMPILE_ABLASMKL 4642 #define AE_COMPILE_ABLAS 4643 #define AE_COMPILE_SCODES 4644 #define AE_COMPILE_HQRND 4645 #define AE_COMPILE_SPARSE 4646 #define AE_COMPILE_DLU 4647 #define AE_COMPILE_SPTRF 4648 #define AE_COMPILE_AMDORDERING 4649 #define AE_COMPILE_SPCHOL 4650 #define AE_COMPILE_CREFLECTIONS 4651 #define AE_COMPILE_MATGEN 4652 #define AE_COMPILE_ROTATIONS 4653 #define AE_COMPILE_TRFAC 4654 #define AE_COMPILE_INTFITSERV 4655 #define AE_COMPILE_HBLAS 4656 #define AE_COMPILE_SBLAS 4657 #define AE_COMPILE_ORTFAC 4658 #define AE_COMPILE_FBLS 4659 #define AE_COMPILE_NORMESTIMATOR 4660 #define AE_COMPILE_BLAS 4661 #define AE_COMPILE_BDSVD 4662 #define AE_COMPILE_SVD 4663 #define AE_COMPILE_LINLSQR 4664 #define AE_COMPILE_SPLINE1D 4665 #endif 4666 4667 #ifdef AE_COMPILE_INTCOMP 4668 #define AE_PARTIAL_BUILD 4669 #define AE_COMPILE_LINMIN 4670 #define AE_COMPILE_APSERV 4671 #define AE_COMPILE_TSORT 4672 #define AE_COMPILE_OPTGUARDAPI 4673 #define AE_COMPILE_ABLASF 4674 #define AE_COMPILE_ABLASMKL 4675 #define AE_COMPILE_ABLAS 4676 #define AE_COMPILE_CREFLECTIONS 4677 #define AE_COMPILE_HQRND 4678 #define AE_COMPILE_MATGEN 4679 #define AE_COMPILE_SCODES 4680 #define AE_COMPILE_SPARSE 4681 #define AE_COMPILE_DLU 4682 #define AE_COMPILE_SPTRF 4683 #define AE_COMPILE_AMDORDERING 4684 #define AE_COMPILE_SPCHOL 4685 #define AE_COMPILE_ROTATIONS 4686 #define AE_COMPILE_TRFAC 4687 #define AE_COMPILE_TRLINSOLVE 4688 #define AE_COMPILE_SAFESOLVE 4689 #define AE_COMPILE_RCOND 4690 #define AE_COMPILE_MATINV 4691 #define AE_COMPILE_HBLAS 4692 #define AE_COMPILE_SBLAS 4693 #define AE_COMPILE_ORTFAC 4694 #define AE_COMPILE_BLAS 4695 #define AE_COMPILE_BDSVD 4696 #define AE_COMPILE_SVD 4697 #define AE_COMPILE_OPTSERV 4698 #define AE_COMPILE_FBLS 4699 #define AE_COMPILE_CQMODELS 4700 #define AE_COMPILE_SNNLS 4701 #define AE_COMPILE_SACTIVESETS 4702 #define AE_COMPILE_MINBLEIC 4703 #define AE_COMPILE_XBLAS 4704 #define AE_COMPILE_DIRECTDENSESOLVERS 4705 #define AE_COMPILE_NORMESTIMATOR 4706 #define AE_COMPILE_LINLSQR 4707 #define AE_COMPILE_MINLBFGS 4708 #define AE_COMPILE_LPQPSERV 4709 #define AE_COMPILE_QQPSOLVER 4710 #define AE_COMPILE_QPDENSEAULSOLVER 4711 #define AE_COMPILE_QPBLEICSOLVER 4712 #define AE_COMPILE_VIPMSOLVER 4713 #define AE_COMPILE_MINQP 4714 #define AE_COMPILE_MINLM 4715 #define AE_COMPILE_LPQPPRESOLVE 4716 #define AE_COMPILE_REVISEDDUALSIMPLEX 4717 #define AE_COMPILE_NLCSLP 4718 #define AE_COMPILE_NLCSQP 4719 #define AE_COMPILE_MINNLC 4720 #define AE_COMPILE_FITSPHERE 4721 #define AE_COMPILE_INTFITSERV 4722 #define AE_COMPILE_SPLINE1D 4723 #endif 4724 4725 #ifdef AE_COMPILE_RBF 4726 #define AE_PARTIAL_BUILD 4727 #define AE_COMPILE_SCODES 4728 #define AE_COMPILE_APSERV 4729 #define AE_COMPILE_TSORT 4730 #define AE_COMPILE_NEARESTNEIGHBOR 4731 #define AE_COMPILE_ABLASF 4732 #define AE_COMPILE_ABLASMKL 4733 #define AE_COMPILE_ABLAS 4734 #define AE_COMPILE_HQRND 4735 #define AE_COMPILE_SPARSE 4736 #define AE_COMPILE_DLU 4737 #define AE_COMPILE_SPTRF 4738 #define AE_COMPILE_AMDORDERING 4739 #define AE_COMPILE_SPCHOL 4740 #define AE_COMPILE_CREFLECTIONS 4741 #define AE_COMPILE_MATGEN 4742 #define AE_COMPILE_ROTATIONS 4743 #define AE_COMPILE_TRFAC 4744 #define AE_COMPILE_INTFITSERV 4745 #define AE_COMPILE_RATINT 4746 #define AE_COMPILE_POLINT 4747 #define AE_COMPILE_HBLAS 4748 #define AE_COMPILE_SBLAS 4749 #define AE_COMPILE_ORTFAC 4750 #define AE_COMPILE_FBLS 4751 #define AE_COMPILE_NORMESTIMATOR 4752 #define AE_COMPILE_BLAS 4753 #define AE_COMPILE_BDSVD 4754 #define AE_COMPILE_SVD 4755 #define AE_COMPILE_LINLSQR 4756 #define AE_COMPILE_SPLINE1D 4757 #define AE_COMPILE_OPTGUARDAPI 4758 #define AE_COMPILE_TRLINSOLVE 4759 #define AE_COMPILE_SAFESOLVE 4760 #define AE_COMPILE_RCOND 4761 #define AE_COMPILE_MATINV 4762 #define AE_COMPILE_OPTSERV 4763 #define AE_COMPILE_XBLAS 4764 #define AE_COMPILE_DIRECTDENSESOLVERS 4765 #define AE_COMPILE_LINMIN 4766 #define AE_COMPILE_MINLBFGS 4767 #define AE_COMPILE_CQMODELS 4768 #define AE_COMPILE_LPQPSERV 4769 #define AE_COMPILE_SNNLS 4770 #define AE_COMPILE_SACTIVESETS 4771 #define AE_COMPILE_QQPSOLVER 4772 #define AE_COMPILE_QPDENSEAULSOLVER 4773 #define AE_COMPILE_MINBLEIC 4774 #define AE_COMPILE_QPBLEICSOLVER 4775 #define AE_COMPILE_VIPMSOLVER 4776 #define AE_COMPILE_MINQP 4777 #define AE_COMPILE_MINLM 4778 #define AE_COMPILE_LSFIT 4779 #define AE_COMPILE_RBFV1 4780 #define AE_COMPILE_RBFV2 4781 #endif 4782 4783 #ifdef AE_COMPILE_NTHEORY 4784 #define AE_PARTIAL_BUILD 4785 #endif 4786 4787 #ifdef AE_COMPILE_FTBASE 4788 #define AE_PARTIAL_BUILD 4789 #define AE_COMPILE_APSERV 4790 #define AE_COMPILE_NTHEORY 4791 #endif 4792 4793 #ifdef AE_COMPILE_FFT 4794 #define AE_PARTIAL_BUILD 4795 #define AE_COMPILE_APSERV 4796 #define AE_COMPILE_NTHEORY 4797 #define AE_COMPILE_FTBASE 4798 #endif 4799 4800 #ifdef AE_COMPILE_FHT 4801 #define AE_PARTIAL_BUILD 4802 #define AE_COMPILE_APSERV 4803 #define AE_COMPILE_NTHEORY 4804 #define AE_COMPILE_FTBASE 4805 #define AE_COMPILE_FFT 4806 #endif 4807 4808 #ifdef AE_COMPILE_CONV 4809 #define AE_PARTIAL_BUILD 4810 #define AE_COMPILE_APSERV 4811 #define AE_COMPILE_NTHEORY 4812 #define AE_COMPILE_FTBASE 4813 #define AE_COMPILE_FFT 4814 #endif 4815 4816 #ifdef AE_COMPILE_CORR 4817 #define AE_PARTIAL_BUILD 4818 #define AE_COMPILE_APSERV 4819 #define AE_COMPILE_NTHEORY 4820 #define AE_COMPILE_FTBASE 4821 #define AE_COMPILE_FFT 4822 #define AE_COMPILE_CONV 4823 #endif 4824 4825 #ifdef AE_COMPILE_EXPINTEGRALS 4826 #define AE_PARTIAL_BUILD 4827 #endif 4828 4829 #ifdef AE_COMPILE_JACOBIANELLIPTIC 4830 #define AE_PARTIAL_BUILD 4831 #endif 4832 4833 #ifdef AE_COMPILE_TRIGINTEGRALS 4834 #define AE_PARTIAL_BUILD 4835 #endif 4836 4837 #ifdef AE_COMPILE_CHEBYSHEV 4838 #define AE_PARTIAL_BUILD 4839 #endif 4840 4841 #ifdef AE_COMPILE_POISSONDISTR 4842 #define AE_PARTIAL_BUILD 4843 #define AE_COMPILE_GAMMAFUNC 4844 #define AE_COMPILE_APSERV 4845 #define AE_COMPILE_ABLASF 4846 #define AE_COMPILE_HQRND 4847 #define AE_COMPILE_NORMALDISTR 4848 #define AE_COMPILE_IGAMMAF 4849 #endif 4850 4851 #ifdef AE_COMPILE_BETAF 4852 #define AE_PARTIAL_BUILD 4853 #define AE_COMPILE_GAMMAFUNC 4854 #endif 4855 4856 #ifdef AE_COMPILE_FRESNEL 4857 #define AE_PARTIAL_BUILD 4858 #endif 4859 4860 #ifdef AE_COMPILE_PSIF 4861 #define AE_PARTIAL_BUILD 4862 #endif 4863 4864 #ifdef AE_COMPILE_AIRYF 4865 #define AE_PARTIAL_BUILD 4866 #endif 4867 4868 #ifdef AE_COMPILE_DAWSON 4869 #define AE_PARTIAL_BUILD 4870 #endif 4871 4872 #ifdef AE_COMPILE_HERMITE 4873 #define AE_PARTIAL_BUILD 4874 #endif 4875 4876 #ifdef AE_COMPILE_LEGENDRE 4877 #define AE_PARTIAL_BUILD 4878 #endif 4879 4880 #ifdef AE_COMPILE_BESSEL 4881 #define AE_PARTIAL_BUILD 4882 #endif 4883 4884 #ifdef AE_COMPILE_LAGUERRE 4885 #define AE_PARTIAL_BUILD 4886 #endif 4887 4888 #ifdef AE_COMPILE_ELLIPTIC 4889 #define AE_PARTIAL_BUILD 4890 #endif 4891 4892 #ifdef AE_COMPILE_PCA 4893 #define AE_PARTIAL_BUILD 4894 #define AE_COMPILE_APSERV 4895 #define AE_COMPILE_ABLASF 4896 #define AE_COMPILE_HQRND 4897 #define AE_COMPILE_HBLAS 4898 #define AE_COMPILE_CREFLECTIONS 4899 #define AE_COMPILE_SBLAS 4900 #define AE_COMPILE_ABLASMKL 4901 #define AE_COMPILE_ABLAS 4902 #define AE_COMPILE_ORTFAC 4903 #define AE_COMPILE_BLAS 4904 #define AE_COMPILE_ROTATIONS 4905 #define AE_COMPILE_BDSVD 4906 #define AE_COMPILE_SVD 4907 #define AE_COMPILE_MATGEN 4908 #define AE_COMPILE_SCODES 4909 #define AE_COMPILE_TSORT 4910 #define AE_COMPILE_SPARSE 4911 #define AE_COMPILE_HSSCHUR 4912 #define AE_COMPILE_BASICSTATOPS 4913 #define AE_COMPILE_EVD 4914 #define AE_COMPILE_BASESTAT 4915 #endif 4916 4917 #ifdef AE_COMPILE_BDSS 4918 #define AE_PARTIAL_BUILD 4919 #define AE_COMPILE_APSERV 4920 #define AE_COMPILE_TSORT 4921 #define AE_COMPILE_BASICSTATOPS 4922 #define AE_COMPILE_ABLASF 4923 #define AE_COMPILE_ABLASMKL 4924 #define AE_COMPILE_ABLAS 4925 #define AE_COMPILE_BASESTAT 4926 #endif 4927 4928 #ifdef AE_COMPILE_HPCCORES 4929 #define AE_PARTIAL_BUILD 4930 #endif 4931 4932 #ifdef AE_COMPILE_MLPBASE 4933 #define AE_PARTIAL_BUILD 4934 #define AE_COMPILE_APSERV 4935 #define AE_COMPILE_TSORT 4936 #define AE_COMPILE_BASICSTATOPS 4937 #define AE_COMPILE_ABLASF 4938 #define AE_COMPILE_ABLASMKL 4939 #define AE_COMPILE_ABLAS 4940 #define AE_COMPILE_BASESTAT 4941 #define AE_COMPILE_BDSS 4942 #define AE_COMPILE_HPCCORES 4943 #define AE_COMPILE_SCODES 4944 #define AE_COMPILE_HQRND 4945 #define AE_COMPILE_SPARSE 4946 #endif 4947 4948 #ifdef AE_COMPILE_MLPE 4949 #define AE_PARTIAL_BUILD 4950 #define AE_COMPILE_APSERV 4951 #define AE_COMPILE_TSORT 4952 #define AE_COMPILE_BASICSTATOPS 4953 #define AE_COMPILE_ABLASF 4954 #define AE_COMPILE_ABLASMKL 4955 #define AE_COMPILE_ABLAS 4956 #define AE_COMPILE_BASESTAT 4957 #define AE_COMPILE_BDSS 4958 #define AE_COMPILE_HPCCORES 4959 #define AE_COMPILE_SCODES 4960 #define AE_COMPILE_HQRND 4961 #define AE_COMPILE_SPARSE 4962 #define AE_COMPILE_MLPBASE 4963 #endif 4964 4965 #ifdef AE_COMPILE_CLUSTERING 4966 #define AE_PARTIAL_BUILD 4967 #define AE_COMPILE_APSERV 4968 #define AE_COMPILE_TSORT 4969 #define AE_COMPILE_ABLASF 4970 #define AE_COMPILE_ABLASMKL 4971 #define AE_COMPILE_ABLAS 4972 #define AE_COMPILE_HQRND 4973 #define AE_COMPILE_BLAS 4974 #define AE_COMPILE_BASICSTATOPS 4975 #define AE_COMPILE_BASESTAT 4976 #endif 4977 4978 #ifdef AE_COMPILE_DFOREST 4979 #define AE_PARTIAL_BUILD 4980 #define AE_COMPILE_APSERV 4981 #define AE_COMPILE_SCODES 4982 #define AE_COMPILE_TSORT 4983 #define AE_COMPILE_ABLASF 4984 #define AE_COMPILE_HQRND 4985 #define AE_COMPILE_BASICSTATOPS 4986 #define AE_COMPILE_ABLASMKL 4987 #define AE_COMPILE_ABLAS 4988 #define AE_COMPILE_BASESTAT 4989 #define AE_COMPILE_BDSS 4990 #endif 4991 4992 #ifdef AE_COMPILE_LINREG 4993 #define AE_PARTIAL_BUILD 4994 #define AE_COMPILE_APSERV 4995 #define AE_COMPILE_TSORT 4996 #define AE_COMPILE_BASICSTATOPS 4997 #define AE_COMPILE_ABLASF 4998 #define AE_COMPILE_ABLASMKL 4999 #define AE_COMPILE_ABLAS 5000 #define AE_COMPILE_BASESTAT 5001 #define AE_COMPILE_GAMMAFUNC 5002 #define AE_COMPILE_HQRND 5003 #define AE_COMPILE_NORMALDISTR 5004 #define AE_COMPILE_IGAMMAF 5005 #define AE_COMPILE_HBLAS 5006 #define AE_COMPILE_CREFLECTIONS 5007 #define AE_COMPILE_SBLAS 5008 #define AE_COMPILE_ORTFAC 5009 #define AE_COMPILE_BLAS 5010 #define AE_COMPILE_ROTATIONS 5011 #define AE_COMPILE_BDSVD 5012 #define AE_COMPILE_SVD 5013 #endif 5014 5015 #ifdef AE_COMPILE_FILTERS 5016 #define AE_PARTIAL_BUILD 5017 #define AE_COMPILE_APSERV 5018 #define AE_COMPILE_TSORT 5019 #define AE_COMPILE_BASICSTATOPS 5020 #define AE_COMPILE_ABLASF 5021 #define AE_COMPILE_ABLASMKL 5022 #define AE_COMPILE_ABLAS 5023 #define AE_COMPILE_BASESTAT 5024 #define AE_COMPILE_GAMMAFUNC 5025 #define AE_COMPILE_HQRND 5026 #define AE_COMPILE_NORMALDISTR 5027 #define AE_COMPILE_IGAMMAF 5028 #define AE_COMPILE_HBLAS 5029 #define AE_COMPILE_CREFLECTIONS 5030 #define AE_COMPILE_SBLAS 5031 #define AE_COMPILE_ORTFAC 5032 #define AE_COMPILE_BLAS 5033 #define AE_COMPILE_ROTATIONS 5034 #define AE_COMPILE_BDSVD 5035 #define AE_COMPILE_SVD 5036 #define AE_COMPILE_LINREG 5037 #endif 5038 5039 #ifdef AE_COMPILE_SSA 5040 #define AE_PARTIAL_BUILD 5041 #define AE_COMPILE_APSERV 5042 #define AE_COMPILE_ABLASF 5043 #define AE_COMPILE_HQRND 5044 #define AE_COMPILE_HBLAS 5045 #define AE_COMPILE_CREFLECTIONS 5046 #define AE_COMPILE_SBLAS 5047 #define AE_COMPILE_ABLASMKL 5048 #define AE_COMPILE_ABLAS 5049 #define AE_COMPILE_ORTFAC 5050 #define AE_COMPILE_BLAS 5051 #define AE_COMPILE_ROTATIONS 5052 #define AE_COMPILE_BDSVD 5053 #define AE_COMPILE_SVD 5054 #define AE_COMPILE_MATGEN 5055 #define AE_COMPILE_SCODES 5056 #define AE_COMPILE_TSORT 5057 #define AE_COMPILE_SPARSE 5058 #define AE_COMPILE_HSSCHUR 5059 #define AE_COMPILE_BASICSTATOPS 5060 #define AE_COMPILE_EVD 5061 #endif 5062 5063 #ifdef AE_COMPILE_LDA 5064 #define AE_PARTIAL_BUILD 5065 #define AE_COMPILE_APSERV 5066 #define AE_COMPILE_ABLASF 5067 #define AE_COMPILE_HQRND 5068 #define AE_COMPILE_HBLAS 5069 #define AE_COMPILE_CREFLECTIONS 5070 #define AE_COMPILE_SBLAS 5071 #define AE_COMPILE_ABLASMKL 5072 #define AE_COMPILE_ABLAS 5073 #define AE_COMPILE_ORTFAC 5074 #define AE_COMPILE_MATGEN 5075 #define AE_COMPILE_SCODES 5076 #define AE_COMPILE_TSORT 5077 #define AE_COMPILE_SPARSE 5078 #define AE_COMPILE_BLAS 5079 #define AE_COMPILE_ROTATIONS 5080 #define AE_COMPILE_HSSCHUR 5081 #define AE_COMPILE_BASICSTATOPS 5082 #define AE_COMPILE_EVD 5083 #define AE_COMPILE_DLU 5084 #define AE_COMPILE_SPTRF 5085 #define AE_COMPILE_AMDORDERING 5086 #define AE_COMPILE_SPCHOL 5087 #define AE_COMPILE_TRFAC 5088 #define AE_COMPILE_TRLINSOLVE 5089 #define AE_COMPILE_SAFESOLVE 5090 #define AE_COMPILE_RCOND 5091 #define AE_COMPILE_MATINV 5092 #endif 5093 5094 #ifdef AE_COMPILE_MCPD 5095 #define AE_PARTIAL_BUILD 5096 #define AE_COMPILE_APSERV 5097 #define AE_COMPILE_LINMIN 5098 #define AE_COMPILE_TSORT 5099 #define AE_COMPILE_OPTGUARDAPI 5100 #define AE_COMPILE_ABLASF 5101 #define AE_COMPILE_ABLASMKL 5102 #define AE_COMPILE_ABLAS 5103 #define AE_COMPILE_CREFLECTIONS 5104 #define AE_COMPILE_HQRND 5105 #define AE_COMPILE_MATGEN 5106 #define AE_COMPILE_SCODES 5107 #define AE_COMPILE_SPARSE 5108 #define AE_COMPILE_DLU 5109 #define AE_COMPILE_SPTRF 5110 #define AE_COMPILE_AMDORDERING 5111 #define AE_COMPILE_SPCHOL 5112 #define AE_COMPILE_ROTATIONS 5113 #define AE_COMPILE_TRFAC 5114 #define AE_COMPILE_TRLINSOLVE 5115 #define AE_COMPILE_SAFESOLVE 5116 #define AE_COMPILE_RCOND 5117 #define AE_COMPILE_MATINV 5118 #define AE_COMPILE_HBLAS 5119 #define AE_COMPILE_SBLAS 5120 #define AE_COMPILE_ORTFAC 5121 #define AE_COMPILE_BLAS 5122 #define AE_COMPILE_BDSVD 5123 #define AE_COMPILE_SVD 5124 #define AE_COMPILE_OPTSERV 5125 #define AE_COMPILE_FBLS 5126 #define AE_COMPILE_CQMODELS 5127 #define AE_COMPILE_SNNLS 5128 #define AE_COMPILE_SACTIVESETS 5129 #define AE_COMPILE_MINBLEIC 5130 #endif 5131 5132 #ifdef AE_COMPILE_LOGIT 5133 #define AE_PARTIAL_BUILD 5134 #define AE_COMPILE_APSERV 5135 #define AE_COMPILE_TSORT 5136 #define AE_COMPILE_BASICSTATOPS 5137 #define AE_COMPILE_ABLASF 5138 #define AE_COMPILE_ABLASMKL 5139 #define AE_COMPILE_ABLAS 5140 #define AE_COMPILE_BASESTAT 5141 #define AE_COMPILE_BDSS 5142 #define AE_COMPILE_HPCCORES 5143 #define AE_COMPILE_SCODES 5144 #define AE_COMPILE_HQRND 5145 #define AE_COMPILE_SPARSE 5146 #define AE_COMPILE_MLPBASE 5147 #define AE_COMPILE_HBLAS 5148 #define AE_COMPILE_CREFLECTIONS 5149 #define AE_COMPILE_SBLAS 5150 #define AE_COMPILE_ORTFAC 5151 #define AE_COMPILE_BLAS 5152 #define AE_COMPILE_ROTATIONS 5153 #define AE_COMPILE_BDSVD 5154 #define AE_COMPILE_SVD 5155 #define AE_COMPILE_DLU 5156 #define AE_COMPILE_SPTRF 5157 #define AE_COMPILE_AMDORDERING 5158 #define AE_COMPILE_SPCHOL 5159 #define AE_COMPILE_MATGEN 5160 #define AE_COMPILE_TRFAC 5161 #define AE_COMPILE_TRLINSOLVE 5162 #define AE_COMPILE_SAFESOLVE 5163 #define AE_COMPILE_RCOND 5164 #define AE_COMPILE_XBLAS 5165 #define AE_COMPILE_DIRECTDENSESOLVERS 5166 #endif 5167 5168 #ifdef AE_COMPILE_KNN 5169 #define AE_PARTIAL_BUILD 5170 #define AE_COMPILE_APSERV 5171 #define AE_COMPILE_SCODES 5172 #define AE_COMPILE_TSORT 5173 #define AE_COMPILE_ABLASF 5174 #define AE_COMPILE_HQRND 5175 #define AE_COMPILE_NEARESTNEIGHBOR 5176 #define AE_COMPILE_BASICSTATOPS 5177 #define AE_COMPILE_ABLASMKL 5178 #define AE_COMPILE_ABLAS 5179 #define AE_COMPILE_BASESTAT 5180 #define AE_COMPILE_BDSS 5181 #endif 5182 5183 #ifdef AE_COMPILE_MLPTRAIN 5184 #define AE_PARTIAL_BUILD 5185 #define AE_COMPILE_APSERV 5186 #define AE_COMPILE_TSORT 5187 #define AE_COMPILE_BASICSTATOPS 5188 #define AE_COMPILE_ABLASF 5189 #define AE_COMPILE_ABLASMKL 5190 #define AE_COMPILE_ABLAS 5191 #define AE_COMPILE_BASESTAT 5192 #define AE_COMPILE_BDSS 5193 #define AE_COMPILE_HPCCORES 5194 #define AE_COMPILE_SCODES 5195 #define AE_COMPILE_HQRND 5196 #define AE_COMPILE_SPARSE 5197 #define AE_COMPILE_MLPBASE 5198 #define AE_COMPILE_MLPE 5199 #define AE_COMPILE_DLU 5200 #define AE_COMPILE_SPTRF 5201 #define AE_COMPILE_AMDORDERING 5202 #define AE_COMPILE_SPCHOL 5203 #define AE_COMPILE_CREFLECTIONS 5204 #define AE_COMPILE_MATGEN 5205 #define AE_COMPILE_ROTATIONS 5206 #define AE_COMPILE_TRFAC 5207 #define AE_COMPILE_TRLINSOLVE 5208 #define AE_COMPILE_SAFESOLVE 5209 #define AE_COMPILE_RCOND 5210 #define AE_COMPILE_MATINV 5211 #define AE_COMPILE_LINMIN 5212 #define AE_COMPILE_OPTGUARDAPI 5213 #define AE_COMPILE_HBLAS 5214 #define AE_COMPILE_SBLAS 5215 #define AE_COMPILE_ORTFAC 5216 #define AE_COMPILE_BLAS 5217 #define AE_COMPILE_BDSVD 5218 #define AE_COMPILE_SVD 5219 #define AE_COMPILE_OPTSERV 5220 #define AE_COMPILE_FBLS 5221 #define AE_COMPILE_MINLBFGS 5222 #define AE_COMPILE_XBLAS 5223 #define AE_COMPILE_DIRECTDENSESOLVERS 5224 #endif 5225 5226 #ifdef AE_COMPILE_DATACOMP 5227 #define AE_PARTIAL_BUILD 5228 #define AE_COMPILE_APSERV 5229 #define AE_COMPILE_TSORT 5230 #define AE_COMPILE_ABLASF 5231 #define AE_COMPILE_ABLASMKL 5232 #define AE_COMPILE_ABLAS 5233 #define AE_COMPILE_HQRND 5234 #define AE_COMPILE_BLAS 5235 #define AE_COMPILE_BASICSTATOPS 5236 #define AE_COMPILE_BASESTAT 5237 #define AE_COMPILE_CLUSTERING 5238 #endif 5239 5240 #ifdef AE_COMPILE_ALGLIBBASICS 5241 #define AE_PARTIAL_BUILD 5242 #endif 5243 5244 5245 5246 #endif 5247 5248