1 /************************************************************************* 2 ALGLIB 3.15.0 (source code generated 2019-02-20) 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 <stdlib.h> 115 #include <stdio.h> 116 #include <string.h> 117 #include <setjmp.h> 118 #include <math.h> 119 #include <stddef.h> 120 121 #if defined(AE_HAVE_STDINT) 122 #include <stdint.h> 123 #endif 124 125 /* 126 * SSE2 intrinsics 127 * 128 * Preprocessor directives below: 129 * - include headers for SSE2 intrinsics 130 * - define AE_HAS_SSE2_INTRINSICS definition 131 * 132 * These actions are performed when we have: 133 * - x86 architecture definition (AE_CPU==AE_INTEL) 134 * - compiler which supports intrinsics 135 * 136 * Presence of AE_HAS_SSE2_INTRINSICS does NOT mean that our CPU 137 * actually supports SSE2 - such things should be determined at runtime 138 * with ae_cpuid() call. It means that we are working under Intel and 139 * out compiler can issue SSE2-capable code. 140 * 141 */ 142 #if defined(AE_CPU) 143 #if AE_CPU==AE_INTEL 144 #if AE_COMPILER==AE_MSVC 145 #include <emmintrin.h> 146 #define AE_HAS_SSE2_INTRINSICS 147 #endif 148 #if AE_COMPILER==AE_GNUC 149 #include <xmmintrin.h> 150 #define AE_HAS_SSE2_INTRINSICS 151 #endif 152 #if AE_COMPILER==AE_SUNC 153 #include <xmmintrin.h> 154 #include <emmintrin.h> 155 #define AE_HAS_SSE2_INTRINSICS 156 #endif 157 #endif 158 #endif 159 160 161 162 ///////////////////////////////////////////////////////////////////////// 163 // 164 // THIS SECTION CONTAINS DECLARATIONS FOR BASIC FUNCTIONALITY 165 // LIKE MEMORY MANAGEMENT FOR VECTORS/MATRICES WHICH IS SHARED 166 // BETWEEN C++ AND PURE C LIBRARIES 167 // 168 ///////////////////////////////////////////////////////////////////////// 169 namespace alglib_impl 170 { 171 172 /* if we work under C++ environment, define several conditions */ 173 #ifdef AE_USE_CPP 174 #define AE_USE_CPP_BOOL 175 #define AE_USE_CPP_SERIALIZATION 176 #include <iostream> 177 #endif 178 179 /* 180 * define ae_int32_t, ae_int64_t, ae_int_t, ae_bool, ae_complex, ae_error_type and ae_datatype 181 */ 182 183 #if defined(AE_INT32_T) 184 typedef AE_INT32_T ae_int32_t; 185 #endif 186 #if defined(AE_HAVE_STDINT) && !defined(AE_INT32_T) 187 typedef int32_t ae_int32_t; 188 #endif 189 #if !defined(AE_HAVE_STDINT) && !defined(AE_INT32_T) 190 #if AE_COMPILER==AE_MSVC 191 typedef __int32 ae_int32_t; 192 #endif 193 #if (AE_COMPILER==AE_GNUC) || (AE_COMPILER==AE_SUNC) || (AE_COMPILER==AE_UNKNOWN) 194 typedef int ae_int32_t; 195 #endif 196 #endif 197 198 #if defined(AE_INT64_T) 199 typedef AE_INT64_T ae_int64_t; 200 #endif 201 #if defined(AE_HAVE_STDINT) && !defined(AE_INT64_T) 202 typedef int64_t ae_int64_t; 203 #endif 204 #if !defined(AE_HAVE_STDINT) && !defined(AE_INT64_T) 205 #if AE_COMPILER==AE_MSVC 206 typedef __int64 ae_int64_t; 207 #endif 208 #if (AE_COMPILER==AE_GNUC) || (AE_COMPILER==AE_SUNC) || (AE_COMPILER==AE_UNKNOWN) 209 typedef signed long long ae_int64_t; 210 #endif 211 #endif 212 213 #if defined(AE_UINT64_T) 214 typedef AE_UINT64_T ae_uint64_t; 215 #endif 216 #if defined(AE_HAVE_STDINT) && !defined(AE_UINT64_T) 217 typedef uint64_t ae_uint64_t; 218 #endif 219 #if !defined(AE_HAVE_STDINT) && !defined(AE_UINT64_T) 220 #if AE_COMPILER==AE_MSVC 221 typedef unsigned __int64 ae_uint64_t; 222 #endif 223 #if (AE_COMPILER==AE_GNUC) || (AE_COMPILER==AE_SUNC) || (AE_COMPILER==AE_UNKNOWN) 224 typedef unsigned long long ae_uint64_t; 225 #endif 226 #endif 227 228 #if !defined(AE_INT_T) 229 typedef ptrdiff_t ae_int_t; 230 #endif 231 232 #if !defined(AE_USE_CPP_BOOL) 233 #define ae_bool char 234 #define ae_true 1 235 #define ae_false 0 236 #else 237 #define ae_bool bool 238 #define ae_true true 239 #define ae_false false 240 #endif 241 242 typedef struct { double x, y; } ae_complex; 243 244 typedef enum 245 { 246 ERR_OK = 0, 247 ERR_OUT_OF_MEMORY = 1, 248 ERR_XARRAY_TOO_LARGE = 2, 249 ERR_ASSERTION_FAILED = 3 250 } ae_error_type; 251 252 typedef ae_int_t ae_datatype; 253 254 /* 255 * other definitions 256 */ 257 enum { OWN_CALLER=1, OWN_AE=2 }; 258 enum { ACT_UNCHANGED=1, ACT_SAME_LOCATION=2, ACT_NEW_LOCATION=3 }; 259 enum { DT_BOOL=1, DT_INT=2, DT_REAL=3, DT_COMPLEX=4 }; 260 enum { CPU_SSE2=1 }; 261 262 /************************************************************************ 263 x-string (zero-terminated): 264 owner OWN_CALLER or OWN_AE. Determines what to do on realloc(). 265 If vector is owned by caller, X-interface will just set 266 ptr to NULL before realloc(). If it is owned by X, it 267 will call ae_free/x_free/aligned_free family functions. 268 269 last_action ACT_UNCHANGED, ACT_SAME_LOCATION, ACT_NEW_LOCATION 270 contents is either: unchanged, stored at the same location, 271 stored at the new location. 272 this field is set on return from X. 273 274 ptr pointer to the actual data 275 276 Members of this structure are ae_int64_t to avoid alignment problems. 277 ************************************************************************/ 278 typedef struct 279 { 280 ALIGNED ae_int64_t owner; 281 ALIGNED ae_int64_t last_action; 282 ALIGNED char *ptr; 283 } x_string; 284 285 /************************************************************************ 286 x-vector: 287 cnt number of elements 288 289 datatype one of the DT_XXXX values 290 291 owner OWN_CALLER or OWN_AE. Determines what to do on realloc(). 292 If vector is owned by caller, X-interface will just set 293 ptr to NULL before realloc(). If it is owned by X, it 294 will call ae_free/x_free/aligned_free family functions. 295 296 last_action ACT_UNCHANGED, ACT_SAME_LOCATION, ACT_NEW_LOCATION 297 contents is either: unchanged, stored at the same location, 298 stored at the new location. 299 this field is set on return from X interface and may be 300 used by caller as hint when deciding what to do with data 301 (if it was ACT_UNCHANGED or ACT_SAME_LOCATION, no array 302 reallocation or copying is required). 303 304 ptr pointer to the actual data 305 306 Members of this structure are ae_int64_t to avoid alignment problems. 307 ************************************************************************/ 308 typedef struct 309 { 310 ae_int64_t cnt; 311 ae_int64_t datatype; 312 ae_int64_t owner; 313 ae_int64_t last_action; 314 union 315 { 316 void *p_ptr; 317 ae_int64_t portable_alignment_enforcer; 318 } x_ptr; 319 } x_vector; 320 321 322 /************************************************************************ 323 x-matrix: 324 rows number of rows. may be zero only when cols is zero too. 325 326 cols number of columns. may be zero only when rows is zero too. 327 328 stride stride, i.e. distance between first elements of rows (in bytes) 329 330 datatype one of the DT_XXXX values 331 332 owner OWN_CALLER or OWN_AE. Determines what to do on realloc(). 333 If vector is owned by caller, X-interface will just set 334 ptr to NULL before realloc(). If it is owned by X, it 335 will call ae_free/x_free/aligned_free family functions. 336 337 last_action ACT_UNCHANGED, ACT_SAME_LOCATION, ACT_NEW_LOCATION 338 contents is either: unchanged, stored at the same location, 339 stored at the new location. 340 this field is set on return from X interface and may be 341 used by caller as hint when deciding what to do with data 342 (if it was ACT_UNCHANGED or ACT_SAME_LOCATION, no array 343 reallocation or copying is required). 344 345 ptr pointer to the actual data, stored rowwise 346 347 Members of this structure are ae_int64_t to avoid alignment problems. 348 ************************************************************************/ 349 typedef struct 350 { 351 ae_int64_t rows; 352 ae_int64_t cols; 353 ae_int64_t stride; 354 ae_int64_t datatype; 355 ae_int64_t owner; 356 ae_int64_t last_action; 357 union 358 { 359 void *p_ptr; 360 ae_int64_t portable_alignment_enforcer; 361 } x_ptr; 362 } x_matrix; 363 364 365 /************************************************************************ 366 dynamic block which may be automatically deallocated during stack unwinding 367 368 p_next next block in the stack unwinding list. 369 NULL means that this block is not in the list 370 deallocator deallocator function which should be used to deallocate block. 371 NULL for "special" blocks (frame/stack boundaries) 372 ptr pointer which should be passed to the deallocator. 373 may be null (for zero-size block), DYN_BOTTOM or DYN_FRAME 374 for "special" blocks (frame/stack boundaries). 375 376 valgrind_hint is a special field which stores a special hint pointer for 377 Valgrind and other similar memory checking tools. ALGLIB 378 manually aligns pointers obtained via malloc, so ptr usually 379 points to location past the beginning of the actuallly 380 allocated memory. In such cases memory testing tools may 381 report "(possibly) lost" memory. 382 383 This "hint" field stores pointer actually returned by 384 malloc (or NULL, if for some reason we do not support 385 this feature). This field is used merely as a hint for 386 Valgrind - it should NOT be used for anything else. 387 388 ************************************************************************/ 389 typedef struct ae_dyn_block 390 { 391 struct ae_dyn_block * volatile p_next; 392 /* void *deallocator; */ 393 void (*deallocator)(void*); 394 void * volatile ptr; 395 void* valgrind_hint; 396 } ae_dyn_block; 397 398 typedef void(*ae_deallocator)(void*); 399 400 /************************************************************************ 401 frame marker 402 ************************************************************************/ 403 typedef struct ae_frame 404 { 405 ae_dyn_block db_marker; 406 } ae_frame; 407 408 /************************************************************************ 409 ALGLIB environment state 410 ************************************************************************/ 411 typedef struct ae_state 412 { 413 /* 414 * endianness type: AE_LITTLE_ENDIAN or AE_BIG_ENDIAN 415 */ 416 ae_int_t endianness; 417 418 /* 419 * double value for NAN 420 */ 421 double v_nan; 422 423 /* 424 * double value for +INF 425 */ 426 double v_posinf; 427 428 /* 429 * double value for -INF 430 */ 431 double v_neginf; 432 433 /* 434 * pointer to the top block in a stack of frames 435 * which hold dynamically allocated objects 436 */ 437 ae_dyn_block * volatile p_top_block; 438 ae_dyn_block last_block; 439 440 /* 441 * jmp_buf pointer for internal C-style exception handling 442 */ 443 jmp_buf * volatile break_jump; 444 445 /* 446 * ae_error_type of the last error (filled when exception is thrown) 447 */ 448 ae_error_type volatile last_error; 449 450 /* 451 * human-readable message (filled when exception is thrown) 452 */ 453 const char* volatile error_msg; 454 455 /* 456 * Flags: call-local settings for ALGLIB 457 */ 458 ae_uint64_t flags; 459 460 /* 461 * threading information: 462 * a) current thread pool 463 * b) current worker thread 464 * c) parent task (one we are solving right now) 465 * d) thread exception handler (function which must be called 466 * by ae_assert before raising exception). 467 * 468 * NOTE: we use void* to store pointers in order to avoid explicit dependency on smp.h 469 */ 470 void *worker_thread; 471 void *parent_task; 472 void (*thread_exception_handler)(void*); 473 474 } ae_state; 475 476 /************************************************************************ 477 Serializer: 478 479 * ae_stream_writer type is a function pointer for stream writer method; 480 this pointer is used by X-core for out-of-core serialization (say, to 481 serialize ALGLIB structure directly to managed C# stream). 482 483 This function accepts two parameters: pointer to ANSI (7-bit) string 484 and pointer-sized integer passed to serializer during initialization. 485 String being passed is a part of the data stream; aux paramerer may be 486 arbitrary value intended to be used by actual implementation of stream 487 writer. String parameter may include spaces and linefeed symbols, it 488 should be written to stream as is. 489 490 Return value must be zero for success or non-zero for failure. 491 492 * ae_stream_reader type is a function pointer for stream reader method; 493 this pointer is used by X-core for out-of-core unserialization (say, to 494 unserialize ALGLIB structure directly from managed C# stream). 495 496 This function accepts three parameters: pointer-sized integer passed to 497 serializer during initialization; number of symbols to read from 498 stream; pointer to buffer used to store next token read from stream 499 (ANSI encoding is used, buffer is large enough to store all symbols and 500 trailing zero symbol). 501 502 Number of symbols to read is always positive. 503 504 After being called by X-core, this function must: 505 * skip all space and linefeed characters from the current position at 506 the stream and until first non-space non-linefeed character is found 507 * read exactly cnt symbols from stream to buffer; check that all 508 symbols being read are non-space non-linefeed ones 509 * append trailing zero symbol to buffer 510 * return value must be zero on success, non-zero if even one of the 511 conditions above fails. When reader returns non-zero value, contents 512 of buf is not used. 513 ************************************************************************/ 514 typedef char(*ae_stream_writer)(const char *p_string, ae_int_t aux); 515 typedef char(*ae_stream_reader)(ae_int_t aux, ae_int_t cnt, char *p_buf); 516 517 typedef struct 518 { 519 ae_int_t mode; 520 ae_int_t entries_needed; 521 ae_int_t entries_saved; 522 ae_int_t bytes_asked; 523 ae_int_t bytes_written; 524 525 #ifdef AE_USE_CPP_SERIALIZATION 526 std::string *out_cppstr; 527 #endif 528 char *out_str; /* pointer to the current position at the output buffer; advanced with each write operation */ 529 const char *in_str; /* pointer to the current position at the input buffer; advanced with each read operation */ 530 ae_int_t stream_aux; 531 ae_stream_writer stream_writer; 532 ae_stream_reader stream_reader; 533 } ae_serializer; 534 535 536 typedef struct ae_vector 537 { 538 /* 539 * Number of elements in array, cnt>=0 540 */ 541 ae_int_t cnt; 542 543 /* 544 * Either DT_BOOL, DT_INT, DT_REAL or DT_COMPLEX 545 */ 546 ae_datatype datatype; 547 548 /* 549 * If ptr points to memory owned and managed by ae_vector itself, 550 * this field is ae_false. If vector was attached to x_vector structure 551 * with ae_vector_init_attach_to_x(), this field is ae_true. 552 */ 553 ae_bool is_attached; 554 555 /* 556 * ae_dyn_block structure which manages data in ptr. This structure 557 * is responsible for automatic deletion of object when its frame 558 * is destroyed. 559 */ 560 ae_dyn_block data; 561 562 /* 563 * Pointer to data. 564 * User usually works with this field. 565 */ 566 union 567 { 568 void *p_ptr; 569 ae_bool *p_bool; 570 ae_int_t *p_int; 571 double *p_double; 572 ae_complex *p_complex; 573 } ptr; 574 } ae_vector; 575 576 typedef struct ae_matrix 577 { 578 ae_int_t rows; 579 ae_int_t cols; 580 ae_int_t stride; 581 ae_datatype datatype; 582 583 /* 584 * If ptr points to memory owned and managed by ae_vector itself, 585 * this field is ae_false. If vector was attached to x_vector structure 586 * with ae_vector_init_attach_to_x(), this field is ae_true. 587 */ 588 ae_bool is_attached; 589 590 ae_dyn_block data; 591 union 592 { 593 void *p_ptr; 594 void **pp_void; 595 ae_bool **pp_bool; 596 ae_int_t **pp_int; 597 double **pp_double; 598 ae_complex **pp_complex; 599 } ptr; 600 } ae_matrix; 601 602 typedef struct ae_smart_ptr 603 { 604 /* pointer to subscriber; all changes in ptr are translated to subscriber */ 605 void **subscriber; 606 607 /* pointer to object */ 608 void *ptr; 609 610 /* whether smart pointer owns ptr */ 611 ae_bool is_owner; 612 613 /* whether object pointed by ptr is dynamic - clearing such object requires BOTH 614 calling destructor function AND calling ae_free for memory occupied by object. */ 615 ae_bool is_dynamic; 616 617 /* destructor function for pointer; clears all dynamically allocated memory */ 618 void (*destroy)(void*); 619 620 /* frame entry; used to ensure automatic deallocation of smart pointer in case of exception/exit */ 621 ae_dyn_block frame_entry; 622 } ae_smart_ptr; 623 624 625 /************************************************************************* 626 Lock. 627 628 This structure provides OS-independent non-reentrant lock: 629 * under Windows/Posix systems it uses system-provided locks 630 * under Boost it uses OS-independent lock provided by Boost package 631 * when no OS is defined, it uses "fake lock" (just stub which is not thread-safe): 632 a) "fake lock" can be in locked or free mode 633 b) "fake lock" can be used only from one thread - one which created lock 634 c) when thread acquires free lock, it immediately returns 635 d) when thread acquires busy lock, program is terminated 636 (because lock is already acquired and no one else can free it) 637 *************************************************************************/ 638 typedef struct 639 { 640 /* 641 * Pointer to _lock structure. This pointer has type void* in order to 642 * make header file OS-independent (lock declaration depends on OS). 643 */ 644 void *lock_ptr; 645 646 /* 647 * For eternal=false this field manages pointer to _lock structure. 648 * 649 * ae_dyn_block structure is responsible for automatic deletion of 650 * the memory allocated for the pointer when its frame is destroyed. 651 */ 652 ae_dyn_block db; 653 654 /* 655 * Whether we have eternal lock object (used by thread pool) or 656 * transient lock. Eternal locks are allocated without using ae_dyn_block 657 * structure and do not allow deallocation. 658 */ 659 ae_bool eternal; 660 } ae_lock; 661 662 663 /************************************************************************* 664 Shared pool: data structure used to provide thread-safe access to pool of 665 temporary variables. 666 *************************************************************************/ 667 typedef struct ae_shared_pool_entry 668 { 669 void * volatile obj; 670 void * volatile next_entry; 671 } ae_shared_pool_entry; 672 673 typedef struct ae_shared_pool 674 { 675 /* lock object which protects pool */ 676 ae_lock pool_lock; 677 678 /* seed object (used to create new instances of temporaries) */ 679 void * volatile seed_object; 680 681 /* 682 * list of recycled OBJECTS: 683 * 1. entries in this list store pointers to recycled objects 684 * 2. every time we retrieve object, we retrieve first entry from this list, 685 * move it to recycled_entries and return its obj field to caller/ 686 */ 687 ae_shared_pool_entry * volatile recycled_objects; 688 689 /* 690 * list of recycled ENTRIES: 691 * 1. this list holds entries which are not used to store recycled objects; 692 * every time recycled object is retrieved, its entry is moved to this list. 693 * 2. every time object is recycled, we try to fetch entry for him from this list 694 * before allocating it with malloc() 695 */ 696 ae_shared_pool_entry * volatile recycled_entries; 697 698 /* enumeration pointer, points to current recycled object*/ 699 ae_shared_pool_entry * volatile enumeration_counter; 700 701 /* size of object; this field is used when we call malloc() for new objects */ 702 ae_int_t size_of_object; 703 704 /* initializer function; accepts pointer to malloc'ed object, initializes its fields */ 705 void (*init)(void* dst, ae_state* state, ae_bool make_automatic); 706 707 /* copy constructor; accepts pointer to malloc'ed, but not initialized object */ 708 void (*init_copy)(void* dst, void* src, ae_state* state, ae_bool make_automatic); 709 710 /* destructor function; */ 711 void (*destroy)(void* ptr); 712 713 /* frame entry; contains pointer to the pool object itself */ 714 ae_dyn_block frame_entry; 715 } ae_shared_pool; 716 717 void ae_never_call_it(); 718 void ae_set_dbg_flag(ae_int64_t flag_id, ae_int64_t flag_val); 719 ae_int64_t ae_get_dbg_value(ae_int64_t id); 720 void ae_set_global_threading(ae_uint64_t flg_value); 721 ae_uint64_t ae_get_global_threading(); 722 723 void ae_set_error_flag(ae_bool *p_flag, ae_bool cond, const char *filename, int lineno, const char *xdesc); 724 const char * ae_get_last_error_file(); 725 int ae_get_last_error_line(); 726 const char * ae_get_last_error_xdesc(); 727 728 ae_int_t ae_misalignment(const void *ptr, size_t alignment); 729 void* ae_align(void *ptr, size_t alignment); 730 ae_int_t ae_get_effective_workers(ae_int_t nworkers); 731 void ae_optional_atomic_add_i(ae_int_t *p, ae_int_t v); 732 void ae_optional_atomic_sub_i(ae_int_t *p, ae_int_t v); 733 734 void* aligned_malloc(size_t size, size_t alignment); 735 void* aligned_extract_ptr(void *block); 736 void aligned_free(void *block); 737 void* eternal_malloc(size_t size); 738 #if AE_MALLOC==AE_BASIC_STATIC_MALLOC 739 void set_memory_pool(void *ptr, size_t size); 740 void memory_pool_stats(ae_int_t *bytes_used, ae_int_t *bytes_free); 741 #endif 742 743 void* ae_malloc(size_t size, ae_state *state); 744 void ae_free(void *p); 745 ae_int_t ae_sizeof(ae_datatype datatype); 746 ae_bool ae_check_zeros(const void *ptr, ae_int_t n); 747 void ae_touch_ptr(void *p); 748 749 void ae_state_init(ae_state *state); 750 void ae_state_clear(ae_state *state); 751 void ae_state_set_break_jump(ae_state *state, jmp_buf *buf); 752 void ae_state_set_flags(ae_state *state, ae_uint64_t flags); 753 void ae_break(ae_state *state, ae_error_type error_type, const char *msg); 754 755 void ae_frame_make(ae_state *state, ae_frame *tmp); 756 void ae_frame_leave(ae_state *state); 757 758 void ae_db_attach(ae_dyn_block *block, ae_state *state); 759 void ae_db_init(ae_dyn_block *block, ae_int_t size, ae_state *state, ae_bool make_automatic); 760 void ae_db_realloc(ae_dyn_block *block, ae_int_t size, ae_state *state); 761 void ae_db_free(ae_dyn_block *block); 762 void ae_db_swap(ae_dyn_block *block1, ae_dyn_block *block2); 763 764 void ae_vector_init(ae_vector *dst, ae_int_t size, ae_datatype datatype, ae_state *state, ae_bool make_automatic); 765 void ae_vector_init_copy(ae_vector *dst, ae_vector *src, ae_state *state, ae_bool make_automatic); 766 void ae_vector_init_from_x(ae_vector *dst, x_vector *src, ae_state *state, ae_bool make_automatic); 767 void ae_vector_init_attach_to_x(ae_vector *dst, x_vector *src, ae_state *state, ae_bool make_automatic); 768 void ae_vector_set_length(ae_vector *dst, ae_int_t newsize, ae_state *state); 769 void ae_vector_clear(ae_vector *dst); 770 void ae_vector_destroy(ae_vector *dst); 771 void ae_swap_vectors(ae_vector *vec1, ae_vector *vec2); 772 773 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); 774 void ae_matrix_init_copy(ae_matrix *dst, ae_matrix *src, ae_state *state, ae_bool make_automatic); 775 void ae_matrix_init_from_x(ae_matrix *dst, x_matrix *src, ae_state *state, ae_bool make_automatic); 776 void ae_matrix_init_attach_to_x(ae_matrix *dst, x_matrix *src, ae_state *state, ae_bool make_automatic); 777 void ae_matrix_set_length(ae_matrix *dst, ae_int_t rows, ae_int_t cols, ae_state *state); 778 void ae_matrix_clear(ae_matrix *dst); 779 void ae_matrix_destroy(ae_matrix *dst); 780 void ae_swap_matrices(ae_matrix *mat1, ae_matrix *mat2); 781 782 void ae_smart_ptr_init(ae_smart_ptr *dst, void **subscriber, ae_state *state, ae_bool make_automatic); 783 void ae_smart_ptr_clear(void *_dst); /* accepts ae_smart_ptr* */ 784 void ae_smart_ptr_destroy(void *_dst); 785 void ae_smart_ptr_assign(ae_smart_ptr *dst, void *new_ptr, ae_bool is_owner, ae_bool is_dynamic, void (*destroy)(void*)); 786 void ae_smart_ptr_release(ae_smart_ptr *dst); 787 788 void ae_yield(); 789 void ae_init_lock(ae_lock *lock, ae_state *state, ae_bool make_automatic); 790 void ae_init_lock_eternal(ae_lock *lock); 791 void ae_acquire_lock(ae_lock *lock); 792 void ae_release_lock(ae_lock *lock); 793 void ae_free_lock(ae_lock *lock); 794 795 void ae_shared_pool_init(void *_dst, ae_state *state, ae_bool make_automatic); 796 void ae_shared_pool_init_copy(void *_dst, void *_src, ae_state *state, ae_bool make_automatic); 797 void ae_shared_pool_clear(void *dst); 798 void ae_shared_pool_destroy(void *dst); 799 ae_bool ae_shared_pool_is_initialized(void *_dst); 800 void ae_shared_pool_set_seed( 801 ae_shared_pool *dst, 802 void *seed_object, 803 ae_int_t size_of_object, 804 void (*init)(void* dst, ae_state* state, ae_bool make_automatic), 805 void (*init_copy)(void* dst, void* src, ae_state* state, ae_bool make_automatic), 806 void (*destroy)(void* ptr), 807 ae_state *state); 808 void ae_shared_pool_retrieve( 809 ae_shared_pool *pool, 810 ae_smart_ptr *pptr, 811 ae_state *state); 812 void ae_shared_pool_recycle( 813 ae_shared_pool *pool, 814 ae_smart_ptr *pptr, 815 ae_state *state); 816 void ae_shared_pool_clear_recycled( 817 ae_shared_pool *pool, 818 ae_state *state); 819 void ae_shared_pool_first_recycled( 820 ae_shared_pool *pool, 821 ae_smart_ptr *pptr, 822 ae_state *state); 823 void ae_shared_pool_next_recycled( 824 ae_shared_pool *pool, 825 ae_smart_ptr *pptr, 826 ae_state *state); 827 void ae_shared_pool_reset( 828 ae_shared_pool *pool, 829 ae_state *state); 830 831 void ae_x_set_vector(x_vector *dst, ae_vector *src, ae_state *state); 832 void ae_x_set_matrix(x_matrix *dst, ae_matrix *src, ae_state *state); 833 void ae_x_attach_to_vector(x_vector *dst, ae_vector *src); 834 void ae_x_attach_to_matrix(x_matrix *dst, ae_matrix *src); 835 836 void x_vector_clear(x_vector *dst); 837 838 ae_bool x_is_symmetric(x_matrix *a); 839 ae_bool x_is_hermitian(x_matrix *a); 840 ae_bool x_force_symmetric(x_matrix *a); 841 ae_bool x_force_hermitian(x_matrix *a); 842 ae_bool ae_is_symmetric(ae_matrix *a); 843 ae_bool ae_is_hermitian(ae_matrix *a); 844 ae_bool ae_force_symmetric(ae_matrix *a); 845 ae_bool ae_force_hermitian(ae_matrix *a); 846 847 void ae_serializer_init(ae_serializer *serializer); 848 void ae_serializer_clear(ae_serializer *serializer); 849 850 void ae_serializer_alloc_start(ae_serializer *serializer); 851 void ae_serializer_alloc_entry(ae_serializer *serializer); 852 ae_int_t ae_serializer_get_alloc_size(ae_serializer *serializer); 853 854 #ifdef AE_USE_CPP_SERIALIZATION 855 void ae_serializer_sstart_str(ae_serializer *serializer, std::string *buf); 856 void ae_serializer_ustart_str(ae_serializer *serializer, const std::string *buf); 857 void ae_serializer_sstart_stream(ae_serializer *serializer, std::ostream *stream); 858 void ae_serializer_ustart_stream(ae_serializer *serializer, const std::istream *stream); 859 #endif 860 void ae_serializer_sstart_str(ae_serializer *serializer, char *buf); 861 void ae_serializer_ustart_str(ae_serializer *serializer, const char *buf); 862 void ae_serializer_sstart_stream(ae_serializer *serializer, ae_stream_writer writer, ae_int_t aux); 863 void ae_serializer_ustart_stream(ae_serializer *serializer, ae_stream_reader reader, ae_int_t aux); 864 865 void ae_serializer_serialize_bool(ae_serializer *serializer, ae_bool v, ae_state *state); 866 void ae_serializer_serialize_int(ae_serializer *serializer, ae_int_t v, ae_state *state); 867 void ae_serializer_serialize_double(ae_serializer *serializer, double v, ae_state *state); 868 void ae_serializer_unserialize_bool(ae_serializer *serializer, ae_bool *v, ae_state *state); 869 void ae_serializer_unserialize_int(ae_serializer *serializer, ae_int_t *v, ae_state *state); 870 void ae_serializer_unserialize_double(ae_serializer *serializer, double *v, ae_state *state); 871 872 void ae_serializer_stop(ae_serializer *serializer, ae_state *state); 873 874 /************************************************************************ 875 Service functions 876 ************************************************************************/ 877 void ae_assert(ae_bool cond, const char *msg, ae_state *state); 878 ae_int_t ae_cpuid(); 879 880 /************************************************************************ 881 Real math functions: 882 * IEEE-compliant floating point comparisons 883 * standard functions 884 ************************************************************************/ 885 ae_bool ae_fp_eq(double v1, double v2); 886 ae_bool ae_fp_neq(double v1, double v2); 887 ae_bool ae_fp_less(double v1, double v2); 888 ae_bool ae_fp_less_eq(double v1, double v2); 889 ae_bool ae_fp_greater(double v1, double v2); 890 ae_bool ae_fp_greater_eq(double v1, double v2); 891 892 ae_bool ae_isfinite_stateless(double x, ae_int_t endianness); 893 ae_bool ae_isnan_stateless(double x, ae_int_t endianness); 894 ae_bool ae_isinf_stateless(double x, ae_int_t endianness); 895 ae_bool ae_isposinf_stateless(double x, ae_int_t endianness); 896 ae_bool ae_isneginf_stateless(double x, ae_int_t endianness); 897 898 ae_int_t ae_get_endianness(); 899 900 ae_bool ae_isfinite(double x,ae_state *state); 901 ae_bool ae_isnan(double x, ae_state *state); 902 ae_bool ae_isinf(double x, ae_state *state); 903 ae_bool ae_isposinf(double x,ae_state *state); 904 ae_bool ae_isneginf(double x,ae_state *state); 905 906 double ae_fabs(double x, ae_state *state); 907 ae_int_t ae_iabs(ae_int_t x, ae_state *state); 908 double ae_sqr(double x, ae_state *state); 909 double ae_sqrt(double x, ae_state *state); 910 911 ae_int_t ae_sign(double x, ae_state *state); 912 ae_int_t ae_round(double x, ae_state *state); 913 ae_int_t ae_trunc(double x, ae_state *state); 914 ae_int_t ae_ifloor(double x, ae_state *state); 915 ae_int_t ae_iceil(double x, ae_state *state); 916 917 ae_int_t ae_maxint(ae_int_t m1, ae_int_t m2, ae_state *state); 918 ae_int_t ae_minint(ae_int_t m1, ae_int_t m2, ae_state *state); 919 double ae_maxreal(double m1, double m2, ae_state *state); 920 double ae_minreal(double m1, double m2, ae_state *state); 921 double ae_randomreal(ae_state *state); 922 ae_int_t ae_randominteger(ae_int_t maxv, ae_state *state); 923 924 double ae_sin(double x, ae_state *state); 925 double ae_cos(double x, ae_state *state); 926 double ae_tan(double x, ae_state *state); 927 double ae_sinh(double x, ae_state *state); 928 double ae_cosh(double x, ae_state *state); 929 double ae_tanh(double x, ae_state *state); 930 double ae_asin(double x, ae_state *state); 931 double ae_acos(double x, ae_state *state); 932 double ae_atan(double x, ae_state *state); 933 double ae_atan2(double y, double x, ae_state *state); 934 935 double ae_log(double x, ae_state *state); 936 double ae_pow(double x, double y, ae_state *state); 937 double ae_exp(double x, ae_state *state); 938 939 /************************************************************************ 940 Complex math functions: 941 * basic arithmetic operations 942 * standard functions 943 ************************************************************************/ 944 ae_complex ae_complex_from_i(ae_int_t v); 945 ae_complex ae_complex_from_d(double v); 946 947 ae_complex ae_c_neg(ae_complex lhs); 948 ae_bool ae_c_eq(ae_complex lhs, ae_complex rhs); 949 ae_bool ae_c_neq(ae_complex lhs, ae_complex rhs); 950 ae_complex ae_c_add(ae_complex lhs, ae_complex rhs); 951 ae_complex ae_c_mul(ae_complex lhs, ae_complex rhs); 952 ae_complex ae_c_sub(ae_complex lhs, ae_complex rhs); 953 ae_complex ae_c_div(ae_complex lhs, ae_complex rhs); 954 ae_bool ae_c_eq_d(ae_complex lhs, double rhs); 955 ae_bool ae_c_neq_d(ae_complex lhs, double rhs); 956 ae_complex ae_c_add_d(ae_complex lhs, double rhs); 957 ae_complex ae_c_mul_d(ae_complex lhs, double rhs); 958 ae_complex ae_c_sub_d(ae_complex lhs, double rhs); 959 ae_complex ae_c_d_sub(double lhs, ae_complex rhs); 960 ae_complex ae_c_div_d(ae_complex lhs, double rhs); 961 ae_complex ae_c_d_div(double lhs, ae_complex rhs); 962 963 ae_complex ae_c_conj(ae_complex lhs, ae_state *state); 964 ae_complex ae_c_sqr(ae_complex lhs, ae_state *state); 965 double ae_c_abs(ae_complex z, ae_state *state); 966 967 /************************************************************************ 968 Complex BLAS operations 969 ************************************************************************/ 970 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); 971 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); 972 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); 973 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); 974 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); 975 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); 976 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); 977 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); 978 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); 979 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); 980 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); 981 void ae_v_cmuld(ae_complex *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 982 void ae_v_cmulc(ae_complex *vdst, ae_int_t stride_dst, ae_int_t n, ae_complex alpha); 983 984 /************************************************************************ 985 Real BLAS operations 986 ************************************************************************/ 987 double ae_v_dotproduct(const double *v0, ae_int_t stride0, const double *v1, ae_int_t stride1, ae_int_t n); 988 void ae_v_move(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 989 void ae_v_moveneg(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 990 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); 991 void ae_v_add(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 992 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); 993 void ae_v_sub(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 994 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); 995 void ae_v_muld(double *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 996 997 /************************************************************************ 998 Other functions 999 ************************************************************************/ 1000 ae_int_t ae_v_len(ae_int_t a, ae_int_t b); 1001 1002 /* 1003 extern const double ae_machineepsilon; 1004 extern const double ae_maxrealnumber; 1005 extern const double ae_minrealnumber; 1006 extern const double ae_pi; 1007 */ 1008 #define ae_machineepsilon 5E-16 1009 #define ae_maxrealnumber 1E300 1010 #define ae_minrealnumber 1E-300 1011 #define ae_pi 3.1415926535897932384626433832795 1012 1013 1014 /************************************************************************ 1015 RComm functions 1016 ************************************************************************/ 1017 typedef struct rcommstate 1018 { 1019 int stage; 1020 ae_vector ia; 1021 ae_vector ba; 1022 ae_vector ra; 1023 ae_vector ca; 1024 } rcommstate; 1025 void _rcommstate_init(rcommstate* p, ae_state *_state, ae_bool make_automatic); 1026 void _rcommstate_init_copy(rcommstate* dst, rcommstate* src, ae_state *_state, ae_bool make_automatic); 1027 void _rcommstate_clear(rcommstate* p); 1028 void _rcommstate_destroy(rcommstate* p); 1029 1030 1031 /************************************************************************ 1032 Allocation counters, inactive by default. 1033 Turned on when needed for debugging purposes. 1034 1035 _alloc_counter is incremented by 1 on malloc(), decremented on free(). 1036 _alloc_counter_total is only incremented by 1. 1037 ************************************************************************/ 1038 extern ae_int_t _alloc_counter; 1039 extern ae_int_t _alloc_counter_total; 1040 extern ae_bool _use_alloc_counter; 1041 1042 1043 /************************************************************************ 1044 Malloc debugging: 1045 1046 * _force_malloc_failure - set this flag to ae_true in order to enforce 1047 failure of ALGLIB malloc(). Useful to debug handling of errors during 1048 memory allocation. As long as this flag is set, ALGLIB malloc will fail. 1049 * _malloc_failure_after - set it to non-zero value in order to enforce 1050 malloc failure as soon as _alloc_counter_total increases above value of 1051 this variable. This value has no effect if _use_alloc_counter is not 1052 set. 1053 ************************************************************************/ 1054 extern ae_bool _force_malloc_failure; 1055 extern ae_int_t _malloc_failure_after; 1056 1057 1058 /************************************************************************ 1059 debug functions (must be turned on by preprocessor definitions): 1060 * tickcount(), which is wrapper around GetTickCount() 1061 * flushconsole(), fluches console 1062 * ae_debugrng(), returns random number generated with high-quality random numbers generator 1063 * ae_set_seed(), sets seed of the debug RNG (NON-THREAD-SAFE!!!) 1064 * ae_get_seed(), returns two seed values of the debug RNG (NON-THREAD-SAFE!!!) 1065 ************************************************************************/ 1066 #ifdef AE_DEBUG4WINDOWS 1067 #define flushconsole(s) fflush(stdout) 1068 #define tickcount(s) _tickcount() 1069 int _tickcount(); 1070 #endif 1071 #ifdef AE_DEBUG4POSIX 1072 #define flushconsole(s) fflush(stdout) 1073 #define tickcount(s) _tickcount() 1074 int _tickcount(); 1075 #endif 1076 1077 1078 } 1079 1080 1081 ///////////////////////////////////////////////////////////////////////// 1082 // 1083 // THIS SECTION CONTAINS DECLARATIONS FOR C++ RELATED FUNCTIONALITY 1084 // 1085 ///////////////////////////////////////////////////////////////////////// 1086 1087 namespace alglib 1088 { 1089 1090 typedef alglib_impl::ae_int_t ae_int_t; 1091 1092 /******************************************************************** 1093 Class forwards 1094 ********************************************************************/ 1095 class complex; 1096 1097 ae_int_t vlen(ae_int_t n1, ae_int_t n2); 1098 1099 /******************************************************************** 1100 Exception class. 1101 ********************************************************************/ 1102 #if !defined(AE_NO_EXCEPTIONS) 1103 class ap_error 1104 { 1105 public: 1106 std::string msg; 1107 1108 ap_error(); 1109 ap_error(const char *s); 1110 static void make_assertion(bool bClause); 1111 static void make_assertion(bool bClause, const char *p_msg); 1112 private: 1113 }; 1114 #endif 1115 1116 /******************************************************************** 1117 Complex number with double precision. 1118 ********************************************************************/ 1119 class complex 1120 { 1121 public: 1122 complex(); 1123 complex(const double &_x); 1124 complex(const double &_x, const double &_y); 1125 complex(const complex &z); 1126 1127 complex& operator= (const double& v); 1128 complex& operator+=(const double& v); 1129 complex& operator-=(const double& v); 1130 complex& operator*=(const double& v); 1131 complex& operator/=(const double& v); 1132 1133 complex& operator= (const complex& z); 1134 complex& operator+=(const complex& z); 1135 complex& operator-=(const complex& z); 1136 complex& operator*=(const complex& z); 1137 complex& operator/=(const complex& z); 1138 1139 alglib_impl::ae_complex* c_ptr(); 1140 const alglib_impl::ae_complex* c_ptr() const; 1141 1142 #if !defined(AE_NO_EXCEPTIONS) 1143 std::string tostring(int dps) const; 1144 #endif 1145 1146 double x, y; 1147 }; 1148 1149 const alglib::complex operator/(const alglib::complex& lhs, const alglib::complex& rhs); 1150 bool operator==(const alglib::complex& lhs, const alglib::complex& rhs); 1151 bool operator!=(const alglib::complex& lhs, const alglib::complex& rhs); 1152 const alglib::complex operator+(const alglib::complex& lhs); 1153 const alglib::complex operator-(const alglib::complex& lhs); 1154 const alglib::complex operator+(const alglib::complex& lhs, const alglib::complex& rhs); 1155 const alglib::complex operator+(const alglib::complex& lhs, const double& rhs); 1156 const alglib::complex operator+(const double& lhs, const alglib::complex& rhs); 1157 const alglib::complex operator-(const alglib::complex& lhs, const alglib::complex& rhs); 1158 const alglib::complex operator-(const alglib::complex& lhs, const double& rhs); 1159 const alglib::complex operator-(const double& lhs, const alglib::complex& rhs); 1160 const alglib::complex operator*(const alglib::complex& lhs, const alglib::complex& rhs); 1161 const alglib::complex operator*(const alglib::complex& lhs, const double& rhs); 1162 const alglib::complex operator*(const double& lhs, const alglib::complex& rhs); 1163 const alglib::complex operator/(const alglib::complex& lhs, const alglib::complex& rhs); 1164 const alglib::complex operator/(const double& lhs, const alglib::complex& rhs); 1165 const alglib::complex operator/(const alglib::complex& lhs, const double& rhs); 1166 double abscomplex(const alglib::complex &z); 1167 alglib::complex conj(const alglib::complex &z); 1168 alglib::complex csqr(const alglib::complex &z); 1169 1170 /******************************************************************** 1171 Level 1 BLAS functions 1172 1173 NOTES: 1174 * destination and source should NOT overlap 1175 * stride is assumed to be positive, but it is not 1176 assert'ed within function 1177 * conj_src parameter specifies whether complex source is conjugated 1178 before processing or not. Pass string which starts with 'N' or 'n' 1179 ("No conj", for example) to use unmodified parameter. All other 1180 values will result in conjugation of input, but it is recommended 1181 to use "Conj" in such cases. 1182 ********************************************************************/ 1183 double vdotproduct(const double *v0, ae_int_t stride0, const double *v1, ae_int_t stride1, ae_int_t n); 1184 double vdotproduct(const double *v1, const double *v2, ae_int_t N); 1185 1186 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); 1187 alglib::complex vdotproduct(const alglib::complex *v1, const alglib::complex *v2, ae_int_t N); 1188 1189 void vmove(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 1190 void vmove(double *vdst, const double* vsrc, ae_int_t N); 1191 1192 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); 1193 void vmove(alglib::complex *vdst, const alglib::complex* vsrc, ae_int_t N); 1194 1195 void vmoveneg(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n); 1196 void vmoveneg(double *vdst, const double *vsrc, ae_int_t N); 1197 1198 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); 1199 void vmoveneg(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N); 1200 1201 void vmove(double *vdst, ae_int_t stride_dst, const double* vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1202 void vmove(double *vdst, const double *vsrc, ae_int_t N, double alpha); 1203 1204 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); 1205 void vmove(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, double alpha); 1206 1207 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); 1208 void vmove(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, alglib::complex alpha); 1209 1210 void vadd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 1211 void vadd(double *vdst, const double *vsrc, ae_int_t N); 1212 1213 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); 1214 void vadd(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N); 1215 1216 void vadd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1217 void vadd(double *vdst, const double *vsrc, ae_int_t N, double alpha); 1218 1219 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); 1220 void vadd(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, double alpha); 1221 1222 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); 1223 void vadd(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, alglib::complex alpha); 1224 1225 void vsub(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n); 1226 void vsub(double *vdst, const double *vsrc, ae_int_t N); 1227 1228 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); 1229 void vsub(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N); 1230 1231 void vsub(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha); 1232 void vsub(double *vdst, const double *vsrc, ae_int_t N, double alpha); 1233 1234 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); 1235 void vsub(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, double alpha); 1236 1237 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); 1238 void vsub(alglib::complex *vdst, const alglib::complex *vsrc, ae_int_t N, alglib::complex alpha); 1239 1240 void vmul(double *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 1241 void vmul(double *vdst, ae_int_t N, double alpha); 1242 1243 void vmul(alglib::complex *vdst, ae_int_t stride_dst, ae_int_t n, double alpha); 1244 void vmul(alglib::complex *vdst, ae_int_t N, double alpha); 1245 1246 void vmul(alglib::complex *vdst, ae_int_t stride_dst, ae_int_t n, alglib::complex alpha); 1247 void vmul(alglib::complex *vdst, ae_int_t N, alglib::complex alpha); 1248 1249 1250 /******************************************************************** 1251 xparams type and several predefined constants 1252 ********************************************************************/ 1253 struct xparams 1254 { 1255 alglib_impl::ae_uint64_t flags; 1256 }; 1257 1258 extern const xparams &xdefault; 1259 extern const xparams &serial; 1260 extern const xparams ∥ 1261 1262 /******************************************************************** 1263 Threading functions 1264 ********************************************************************/ 1265 // nworkers can be 1, 2, ... ; or 0 for auto; or -1/-2/... for all except for one/two/... 1266 void setnworkers(alglib::ae_int_t nworkers); 1267 1268 // sets global threading settings to alglib::serial or alglib::parallel 1269 void setglobalthreading(const xparams settings); 1270 1271 // nworkers can be 1, 2, ... ; or 0 for auto; or -1/-2/... for all except for one/two/... 1272 alglib::ae_int_t getnworkers(); 1273 1274 /******************************************************************** 1275 internal functions used by test_x.cpp, interfaces for functions present 1276 in commercial ALGLIB but lacking in free edition. 1277 ********************************************************************/ 1278 ae_int_t _ae_cores_count(); 1279 void _ae_set_global_threading(alglib_impl::ae_uint64_t flg_value); 1280 alglib_impl::ae_uint64_t _ae_get_global_threading(); 1281 1282 /******************************************************************** 1283 1- and 2-dimensional arrays 1284 ********************************************************************/ 1285 class ae_vector_wrapper 1286 { 1287 public: 1288 // 1289 // Creates object attached to external ae_vector structure. 1290 // 1291 // NOTE: this function also checks that source ae_vector* has 1292 // required datatype. An exception is generated otherwise. 1293 // 1294 ae_vector_wrapper(alglib_impl::ae_vector *e_ptr, alglib_impl::ae_datatype datatype); 1295 1296 // 1297 // Creates zero-size vector of specific datatype 1298 // 1299 ae_vector_wrapper(alglib_impl::ae_datatype datatype); 1300 1301 // 1302 // Creates a copy of another vector (can be reference to one of the derived classes) 1303 // 1304 // NOTE: this function also checks that source ae_vector* has 1305 // required datatype. An exception is generated otherwise. 1306 // 1307 ae_vector_wrapper(const ae_vector_wrapper &rhs, alglib_impl::ae_datatype datatype); 1308 1309 // 1310 // Well, it is destructor... 1311 // 1312 virtual ~ae_vector_wrapper(); 1313 1314 // 1315 // For wrapper object allocated with allocate_own() this function 1316 // changes length, completely dropping previous contents. 1317 // 1318 // It does not work (throws exception) for frozen proxy objects. 1319 // 1320 void setlength(ae_int_t iLen); 1321 1322 // 1323 // Element count 1324 // 1325 ae_int_t length() const; 1326 1327 // 1328 // Access to internal C-structure used by C-core. 1329 // Not intended for external use. 1330 // 1331 const alglib_impl::ae_vector* c_ptr() const; 1332 alglib_impl::ae_vector* c_ptr(); 1333 private: 1334 ae_vector_wrapper(); 1335 ae_vector_wrapper(const ae_vector_wrapper &rhs); 1336 const ae_vector_wrapper& operator=(const ae_vector_wrapper &rhs); 1337 protected: 1338 #if !defined(AE_NO_EXCEPTIONS) 1339 // 1340 // Copies array given by string into current object. Additional 1341 // parameter DATATYPE contains information about type of the data 1342 // in S and type of the array to create. 1343 // 1344 // NOTE: this function is not supported in exception-free mode. 1345 // 1346 ae_vector_wrapper(const char *s, alglib_impl::ae_datatype datatype); 1347 #endif 1348 1349 // 1350 // This function attaches wrapper object to external x_vector structure; 1351 // "frozen proxy" mode is activated (you can read/write, but can not reallocate 1352 // and do not own memory of the vector). 1353 // 1354 // NOTE: initial state of wrapper object is assumed to be initialized; 1355 // all previously allocated memory is properly deallocated. 1356 // 1357 // NOTE: x_vector structure pointed by new_ptr is used only once; after 1358 // we fetch pointer to memory and its size, this structure is ignored 1359 // and not referenced anymore. So, you can pass pointers to temporary 1360 // x-structures which are deallocated immediately after you call attach_to() 1361 // 1362 // NOTE: state structure is used for error reporting purposes (longjmp on errors). 1363 // 1364 void attach_to(alglib_impl::x_vector *new_ptr, alglib_impl::ae_state *_state); 1365 1366 // 1367 // Assigns RHS to current object. Returns *this. 1368 // 1369 // It has several branches depending on target object status: 1370 // * in case it is proxy object, data are copied into memory pointed by 1371 // proxy. Function checks that source has exactly same size as target 1372 // (exception is thrown on failure). 1373 // * in case it is non-proxy object, data allocated by object are cleared 1374 // and a copy of RHS is created in target. 1375 // 1376 // NOTE: this function correctly handles assignments of the object to itself. 1377 // 1378 const ae_vector_wrapper& assign(const ae_vector_wrapper &rhs); 1379 1380 // 1381 // Pointer to ae_vector structure: 1382 // * ptr==&inner_vec means that wrapper object owns ae_vector structure and 1383 // is responsible for proper deallocation of its memory 1384 // * ptr!=&inner_vec means that wrapper object works with someone's other 1385 // ae_vector record and is not responsible for its memory; in this case 1386 // inner_vec is assumed to be uninitialized. 1387 // 1388 alglib_impl::ae_vector *ptr; 1389 1390 // 1391 // Inner ae_vector record. 1392 // Ignored for ptr!=&inner_rec. 1393 // 1394 alglib_impl::ae_vector inner_vec; 1395 1396 // 1397 // Whether this wrapper object is frozen proxy (you may read array, may 1398 // modify its value, but can not deallocate its memory or resize it) or not. 1399 // 1400 // If is_frozen_proxy==true and if: 1401 // * ptr==&inner_vec, it means that wrapper works with its own ae_vector 1402 // structure, but this structure points to externally allocated memory. 1403 // This memory is NOT owned by ae_vector object. 1404 // * ptr!=&inner_vec, it means that wrapper works with externally allocated 1405 // and managed ae_vector structure. Both memory pointed by ae_vector and 1406 // ae_vector structure itself are not owned by wrapper object. 1407 // 1408 bool is_frozen_proxy; 1409 }; 1410 1411 class boolean_1d_array : public ae_vector_wrapper 1412 { 1413 public: 1414 boolean_1d_array(); 1415 boolean_1d_array(const boolean_1d_array &rhs); 1416 boolean_1d_array(alglib_impl::ae_vector *p); 1417 const boolean_1d_array& operator=(const boolean_1d_array &rhs); 1418 virtual ~boolean_1d_array() ; 1419 1420 const ae_bool& operator()(ae_int_t i) const; 1421 ae_bool& operator()(ae_int_t i); 1422 1423 const ae_bool& operator[](ae_int_t i) const; 1424 ae_bool& operator[](ae_int_t i); 1425 1426 // 1427 // This function allocates array[iLen] and copies data 1428 // pointed by pContent to its memory. Completely independent 1429 // copy of data is created. 1430 // 1431 void setcontent(ae_int_t iLen, const bool *pContent ); 1432 1433 // 1434 // This function returns pointer to internal memory 1435 // 1436 ae_bool* getcontent(); 1437 const ae_bool* getcontent() const; 1438 1439 #if !defined(AE_NO_EXCEPTIONS) 1440 boolean_1d_array(const char *s); 1441 std::string tostring() const; 1442 #endif 1443 }; 1444 1445 class integer_1d_array : public ae_vector_wrapper 1446 { 1447 public: 1448 integer_1d_array(); 1449 integer_1d_array(const integer_1d_array &rhs); 1450 integer_1d_array(alglib_impl::ae_vector *p); 1451 const integer_1d_array& operator=(const integer_1d_array &rhs); 1452 virtual ~integer_1d_array(); 1453 1454 const ae_int_t& operator()(ae_int_t i) const; 1455 ae_int_t& operator()(ae_int_t i); 1456 1457 const ae_int_t& operator[](ae_int_t i) const; 1458 ae_int_t& operator[](ae_int_t i); 1459 1460 // 1461 // This function allocates array[iLen] and copies data 1462 // pointed by pContent to its memory. Completely independent 1463 // copy of data is created. 1464 // 1465 void setcontent(ae_int_t iLen, const ae_int_t *pContent ); 1466 1467 // 1468 // This function returns pointer to internal memory 1469 // 1470 ae_int_t* getcontent(); 1471 const ae_int_t* getcontent() const; 1472 1473 #if !defined(AE_NO_EXCEPTIONS) 1474 integer_1d_array(const char *s); 1475 std::string tostring() const; 1476 #endif 1477 }; 1478 1479 class real_1d_array : public ae_vector_wrapper 1480 { 1481 public: 1482 real_1d_array(); 1483 real_1d_array(const real_1d_array &rhs); 1484 real_1d_array(alglib_impl::ae_vector *p); 1485 const real_1d_array& operator=(const real_1d_array &rhs); 1486 virtual ~real_1d_array(); 1487 1488 const double& operator()(ae_int_t i) const; 1489 double& operator()(ae_int_t i); 1490 1491 const double& operator[](ae_int_t i) const; 1492 double& operator[](ae_int_t i); 1493 1494 // 1495 // This function allocates array[iLen] and copies data 1496 // pointed by pContent to its memory. Completely independent 1497 // copy of data is created. 1498 // 1499 void setcontent(ae_int_t iLen, const double *pContent); 1500 1501 // 1502 // This function attaches array to memory pointed by pContent. 1503 // No own memory is allocated, no copying of data is performed, 1504 // so pContent pointer should be valid as long as we work with 1505 // array. 1506 // 1507 // After you attach array object to external memory, it becomes 1508 // "frozen": it is possible to read/write array elements, but 1509 // it is not allowed to resize it (no setlength() calls). 1510 // 1511 void attach_to_ptr(ae_int_t iLen, double *pContent); 1512 1513 // 1514 // This function returns pointer to internal memory 1515 // 1516 double* getcontent(); 1517 const double* getcontent() const; 1518 1519 #if !defined(AE_NO_EXCEPTIONS) 1520 real_1d_array(const char *s); 1521 std::string tostring(int dps) const; 1522 #endif 1523 }; 1524 1525 class complex_1d_array : public ae_vector_wrapper 1526 { 1527 public: 1528 complex_1d_array(); 1529 complex_1d_array(const complex_1d_array &rhs); 1530 complex_1d_array(alglib_impl::ae_vector *p); 1531 const complex_1d_array& operator=(const complex_1d_array &rhs); 1532 virtual ~complex_1d_array(); 1533 1534 const alglib::complex& operator()(ae_int_t i) const; 1535 alglib::complex& operator()(ae_int_t i); 1536 1537 const alglib::complex& operator[](ae_int_t i) const; 1538 alglib::complex& operator[](ae_int_t i); 1539 1540 // 1541 // This function allocates array[iLen] and copies data 1542 // pointed by pContent to its memory. Completely independent 1543 // copy of data is created. 1544 // 1545 void setcontent(ae_int_t iLen, const alglib::complex *pContent ); 1546 alglib::complex* getcontent(); 1547 const alglib::complex* getcontent() const; 1548 1549 #if !defined(AE_NO_EXCEPTIONS) 1550 complex_1d_array(const char *s); 1551 std::string tostring(int dps) const; 1552 #endif 1553 }; 1554 1555 class ae_matrix_wrapper 1556 { 1557 public: 1558 // 1559 // Creates object attached to external ae_vector structure, with additional 1560 // check for matching datatypes (e_ptr->datatype==datatype is required). 1561 // 1562 ae_matrix_wrapper(alglib_impl::ae_matrix *e_ptr, alglib_impl::ae_datatype datatype); 1563 1564 // 1565 // Creates zero-sized matrix of specified datatype. 1566 // 1567 ae_matrix_wrapper(alglib_impl::ae_datatype datatype); 1568 1569 // 1570 // Creates copy of rhs, with additional check for matching datatypes 1571 // (rhs.datatype==datatype is required). 1572 // 1573 ae_matrix_wrapper(const ae_matrix_wrapper &rhs, alglib_impl::ae_datatype datatype); 1574 1575 // 1576 // Destructor 1577 // 1578 virtual ~ae_matrix_wrapper(); 1579 1580 1581 void setlength(ae_int_t rows, ae_int_t cols); 1582 ae_int_t rows() const; 1583 ae_int_t cols() const; 1584 bool isempty() const; 1585 ae_int_t getstride() const; 1586 1587 const alglib_impl::ae_matrix* c_ptr() const; 1588 alglib_impl::ae_matrix* c_ptr(); 1589 private: 1590 ae_matrix_wrapper(); 1591 ae_matrix_wrapper(const ae_matrix_wrapper &rhs); 1592 const ae_matrix_wrapper& operator=(const ae_matrix_wrapper &rhs); 1593 protected: 1594 #if !defined(AE_NO_EXCEPTIONS) 1595 // 1596 // Copies array given by string into current object. Additional 1597 // parameter DATATYPE contains information about type of the data 1598 // in S and type of the array to create. 1599 // 1600 // Current object is considered empty (this function should be 1601 // called from copy constructor). 1602 // 1603 ae_matrix_wrapper(const char *s, alglib_impl::ae_datatype datatype); 1604 #endif 1605 1606 // 1607 // This function attaches wrapper object to external x_vector structure; 1608 // "frozen proxy" mode is activated (you can read/write, but can not reallocate 1609 // and do not own memory of the vector). 1610 // 1611 // NOTE: initial state of wrapper object is assumed to be initialized; 1612 // all previously allocated memory is properly deallocated. 1613 // 1614 // NOTE: x_vector structure pointed by new_ptr is used only once; after 1615 // we fetch pointer to memory and its size, this structure is ignored 1616 // and not referenced anymore. So, you can pass pointers to temporary 1617 // x-structures which are deallocated immediately after you call attach_to() 1618 // 1619 // NOTE: state structure is used for error-handling (a longjmp is performed 1620 // on allocation error). All previously allocated memory is correctly 1621 // freed on error. 1622 // 1623 void attach_to(alglib_impl::x_matrix *new_ptr, alglib_impl::ae_state *_state); 1624 1625 // 1626 // This function initializes matrix and allocates own memory storage. 1627 // 1628 // NOTE: initial state of wrapper object is assumed to be uninitialized; 1629 // if ptr!=NULL on entry, it is considered critical error (abort is called). 1630 // 1631 void init(ae_int_t rows, ae_int_t cols, alglib_impl::ae_datatype datatype, alglib_impl::ae_state *_state); 1632 1633 // 1634 // Assigns RHS to current object. 1635 // 1636 // It has several branches depending on target object status: 1637 // * in case it is proxy object, data are copied into memory pointed by 1638 // proxy. Function checks that source has exactly same size as target 1639 // (exception is thrown on failure). 1640 // * in case it is non-proxy object, data allocated by object are cleared 1641 // and a copy of RHS is created in target. 1642 // 1643 // NOTE: this function correctly handles assignments of the object to itself. 1644 // 1645 const ae_matrix_wrapper & assign(const ae_matrix_wrapper &rhs); 1646 1647 1648 // 1649 // Pointer to ae_matrix structure: 1650 // * ptr==&inner_mat means that wrapper object owns ae_matrix structure and 1651 // is responsible for proper deallocation of its memory 1652 // * ptr!=&inner_mat means that wrapper object works with someone's other 1653 // ae_matrix record and is not responsible for its memory; in this case 1654 // inner_mat is assumed to be uninitialized. 1655 // 1656 alglib_impl::ae_matrix *ptr; 1657 1658 // 1659 // Inner ae_matrix record. 1660 // Ignored for ptr!=&inner_mat. 1661 // 1662 alglib_impl::ae_matrix inner_mat; 1663 1664 // 1665 // Whether this wrapper object is frozen proxy (you may read array, may 1666 // modify its value, but can not deallocate its memory or resize it) or not. 1667 // 1668 // If is_frozen_proxy==true and if: 1669 // * ptr==&inner_vec, it means that wrapper works with its own ae_vector 1670 // structure, but this structure points to externally allocated memory. 1671 // This memory is NOT owned by ae_vector object. 1672 // * ptr!=&inner_vec, it means that wrapper works with externally allocated 1673 // and managed ae_vector structure. Both memory pointed by ae_vector and 1674 // ae_vector structure itself are not owned by wrapper object. 1675 // 1676 bool is_frozen_proxy; 1677 }; 1678 1679 class boolean_2d_array : public ae_matrix_wrapper 1680 { 1681 public: 1682 boolean_2d_array(); 1683 boolean_2d_array(const boolean_2d_array &rhs); 1684 boolean_2d_array(alglib_impl::ae_matrix *p); 1685 virtual ~boolean_2d_array(); 1686 1687 const boolean_2d_array& operator=(const boolean_2d_array &rhs); 1688 1689 const ae_bool& operator()(ae_int_t i, ae_int_t j) const; 1690 ae_bool& operator()(ae_int_t i, ae_int_t j); 1691 1692 const ae_bool* operator[](ae_int_t i) const; 1693 ae_bool* operator[](ae_int_t i); 1694 1695 // 1696 // This function allocates array[irows,icols] and copies data 1697 // pointed by pContent to its memory. Completely independent 1698 // copy of data is created. 1699 // 1700 void setcontent(ae_int_t irows, ae_int_t icols, const bool *pContent ); 1701 1702 #if !defined(AE_NO_EXCEPTIONS) 1703 boolean_2d_array(const char *s); 1704 std::string tostring() const ; 1705 #endif 1706 }; 1707 1708 class integer_2d_array : public ae_matrix_wrapper 1709 { 1710 public: 1711 integer_2d_array(); 1712 integer_2d_array(const integer_2d_array &rhs); 1713 integer_2d_array(alglib_impl::ae_matrix *p); 1714 virtual ~integer_2d_array(); 1715 1716 const integer_2d_array& operator=(const integer_2d_array &rhs); 1717 1718 const ae_int_t& operator()(ae_int_t i, ae_int_t j) const; 1719 ae_int_t& operator()(ae_int_t i, ae_int_t j); 1720 1721 const ae_int_t* operator[](ae_int_t i) const; 1722 ae_int_t* operator[](ae_int_t i); 1723 1724 // 1725 // This function allocates array[irows,icols] and copies data 1726 // pointed by pContent to its memory. Completely independent 1727 // copy of data is created. 1728 // 1729 void setcontent(ae_int_t irows, ae_int_t icols, const ae_int_t *pContent ); 1730 1731 1732 #if !defined(AE_NO_EXCEPTIONS) 1733 integer_2d_array(const char *s); 1734 std::string tostring() const; 1735 #endif 1736 }; 1737 1738 class real_2d_array : public ae_matrix_wrapper 1739 { 1740 public: 1741 real_2d_array(); 1742 real_2d_array(const real_2d_array &rhs); 1743 real_2d_array(alglib_impl::ae_matrix *p); 1744 virtual ~real_2d_array(); 1745 1746 const real_2d_array& operator=(const real_2d_array &rhs); 1747 1748 const double& operator()(ae_int_t i, ae_int_t j) const; 1749 double& operator()(ae_int_t i, ae_int_t j); 1750 1751 const double* operator[](ae_int_t i) const; 1752 double* operator[](ae_int_t i); 1753 1754 // 1755 // This function allocates array[irows,icols] and copies data 1756 // pointed by pContent to its memory. Completely independent 1757 // copy of data is created. 1758 // 1759 void setcontent(ae_int_t irows, ae_int_t icols, const double *pContent); 1760 1761 // 1762 // This function attaches array to memory pointed by pContent: 1763 // * only minor amount of own memory is allocated - O(irows) bytes to 1764 // store precomputed pointers; but no costly copying of O(rows*cols) 1765 // data is performed. 1766 // * pContent pointer should be valid as long as we work with array 1767 // 1768 // After you attach array object to external memory, it becomes 1769 // "frozen": it is possible to read/write array elements, but 1770 // it is not allowed to resize it (no setlength() calls). 1771 // 1772 void attach_to_ptr(ae_int_t irows, ae_int_t icols, double *pContent); 1773 1774 #if !defined(AE_NO_EXCEPTIONS) 1775 real_2d_array(const char *s); 1776 std::string tostring(int dps) const; 1777 #endif 1778 }; 1779 1780 class complex_2d_array : public ae_matrix_wrapper 1781 { 1782 public: 1783 complex_2d_array(); 1784 complex_2d_array(const complex_2d_array &rhs); 1785 complex_2d_array(alglib_impl::ae_matrix *p); 1786 virtual ~complex_2d_array(); 1787 1788 const complex_2d_array& operator=(const complex_2d_array &rhs); 1789 1790 const alglib::complex& operator()(ae_int_t i, ae_int_t j) const; 1791 alglib::complex& operator()(ae_int_t i, ae_int_t j); 1792 1793 const alglib::complex* operator[](ae_int_t i) const; 1794 alglib::complex* operator[](ae_int_t i); 1795 1796 // 1797 // This function allocates array[irows,icols] and copies data 1798 // pointed by pContent to its memory. Completely independent 1799 // copy of data is created. 1800 // 1801 void setcontent(ae_int_t irows, ae_int_t icols, const alglib::complex *pContent ); 1802 1803 #if !defined(AE_NO_EXCEPTIONS) 1804 complex_2d_array(const char *s); 1805 std::string tostring(int dps) const; 1806 #endif 1807 }; 1808 1809 /******************************************************************** 1810 CSV operations: reading CSV file to real matrix. 1811 1812 This function reads CSV file and stores its contents to double 1813 precision 2D array. Format of the data file must conform to RFC 4180 1814 specification, with additional notes: 1815 * file size should be less than 2GB 1816 * ASCI encoding, UTF-8 without BOM (in header names) are supported 1817 * any character (comma/tab/space) may be used as field separator, as 1818 long as it is distinct from one used for decimal point 1819 * multiple subsequent field separators (say, two spaces) are treated 1820 as MULTIPLE separators, not one big separator 1821 * both comma and full stop may be used as decimal point. Parser will 1822 automatically determine specific character being used. Both fixed 1823 and exponential number formats are allowed. Thousand separators 1824 are NOT allowed. 1825 * line may end with \n (Unix style) or \r\n (Windows style), parser 1826 will automatically adapt to chosen convention 1827 * escaped fields (ones in double quotes) are not supported 1828 1829 INPUT PARAMETERS: 1830 filename relative/absolute path 1831 separator character used to separate fields. May be ' ', 1832 ',', '\t'. Other separators are possible too. 1833 flags several values combined with bitwise OR: 1834 * alglib::CSV_SKIP_HEADERS - if present, first row 1835 contains headers and will be skipped. Its 1836 contents is used to determine fields count, and 1837 that's all. 1838 If no flags are specified, default value 0x0 (or 1839 alglib::CSV_DEFAULT, which is same) should be used. 1840 1841 OUTPUT PARAMETERS: 1842 out 2D matrix, CSV file parsed with atof() 1843 1844 HANDLING OF SPECIAL CASES: 1845 * file does not exist - alglib::ap_error exception is thrown 1846 * empty file - empty array is returned (no exception) 1847 * skip_first_row=true, only one row in file - empty array is returned 1848 * field contents is not recognized by atof() - field value is replaced 1849 by 0.0 1850 ********************************************************************/ 1851 #if !defined(AE_NO_EXCEPTIONS) 1852 void read_csv(const char *filename, char separator, int flags, alglib::real_2d_array &out); 1853 #endif 1854 1855 1856 /******************************************************************** 1857 Constants and functions introduced for compatibility with AlgoPascal 1858 ********************************************************************/ 1859 extern const double machineepsilon; 1860 extern const double maxrealnumber; 1861 extern const double minrealnumber; 1862 extern const double fp_nan; 1863 extern const double fp_posinf; 1864 extern const double fp_neginf; 1865 extern const ae_int_t endianness; 1866 static const int CSV_DEFAULT = 0x0; 1867 static const int CSV_SKIP_HEADERS = 0x1; 1868 1869 int sign(double x); 1870 double randomreal(); 1871 ae_int_t randominteger(ae_int_t maxv); 1872 int round(double x); 1873 int trunc(double x); 1874 int ifloor(double x); 1875 int iceil(double x); 1876 double pi(); 1877 double sqr(double x); 1878 int maxint(int m1, int m2); 1879 int minint(int m1, int m2); 1880 double maxreal(double m1, double m2); 1881 double minreal(double m1, double m2); 1882 1883 bool fp_eq(double v1, double v2); 1884 bool fp_neq(double v1, double v2); 1885 bool fp_less(double v1, double v2); 1886 bool fp_less_eq(double v1, double v2); 1887 bool fp_greater(double v1, double v2); 1888 bool fp_greater_eq(double v1, double v2); 1889 1890 bool fp_isnan(double x); 1891 bool fp_isposinf(double x); 1892 bool fp_isneginf(double x); 1893 bool fp_isinf(double x); 1894 bool fp_isfinite(double x); 1895 1896 /******************************************************************** 1897 Exception handling macros 1898 ********************************************************************/ 1899 #if !defined(AE_NO_EXCEPTIONS) 1900 /////////////////////////////////////// 1901 // exception-based code 1902 ////////////////////////////// 1903 #define _ALGLIB_CPP_EXCEPTION(msg) throw alglib::ap_error(msg) 1904 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_BEGIN try{ 1905 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_END }catch(...){ goto lbl_user_exception; } 1906 1907 #else 1908 1909 /////////////////////////////////////// 1910 // Exception-free version 1911 ////////////////////////////// 1912 #if AE_OS!=AE_UNKNOWN 1913 #error Exception-free mode can not be combined with AE_OS definition 1914 #endif 1915 #if AE_THREADING!=AE_SERIAL_UNSAFE 1916 #error Exception-free mode is thread-unsafe; define AE_THREADING=AE_SERIAL_UNSAFE to prove that you know it 1917 #endif 1918 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_BEGIN 1919 #define _ALGLIB_CALLBACK_EXCEPTION_GUARD_END 1920 #define _ALGLIB_SET_ERROR_FLAG(s) set_error_flag(s) 1921 1922 // sets eror flag and (optionally) sets error message 1923 void set_error_flag(const char *s = NULL); 1924 1925 // returns error flag and optionally returns error message (loaded to *p_msg); 1926 // if error flag is not set (or p_msg is NULL) *p_msg is not changed. 1927 bool get_error_flag(const char **p_msg = NULL); 1928 1929 // clears error flag (it is not cleared until explicit call to this function) 1930 void clear_error_flag(); 1931 #endif 1932 1933 }//namespace alglib 1934 1935 1936 1937 ///////////////////////////////////////////////////////////////////////// 1938 // 1939 // THIS SECTIONS CONTAINS DECLARATIONS FOR OPTIMIZED LINEAR ALGEBRA CODES 1940 // IT IS SHARED BETWEEN C++ AND PURE C LIBRARIES 1941 // 1942 ///////////////////////////////////////////////////////////////////////// 1943 1944 namespace alglib_impl 1945 { 1946 #define ALGLIB_INTERCEPTS_ABLAS 1947 void _ialglib_vzero(ae_int_t n, double *p, ae_int_t stride); 1948 void _ialglib_vzero_complex(ae_int_t n, ae_complex *p, ae_int_t stride); 1949 void _ialglib_vcopy(ae_int_t n, const double *a, ae_int_t stridea, double *b, ae_int_t strideb); 1950 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); 1951 void _ialglib_vcopy_dcomplex(ae_int_t n, const double *a, ae_int_t stridea, double *b, ae_int_t strideb, const char *conj); 1952 void _ialglib_mcopyblock(ae_int_t m, ae_int_t n, const double *a, ae_int_t op, ae_int_t stride, double *b); 1953 void _ialglib_mcopyunblock(ae_int_t m, ae_int_t n, const double *a, ae_int_t op, double *b, ae_int_t stride); 1954 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); 1955 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); 1956 1957 ae_bool _ialglib_i_rmatrixgemmf(ae_int_t m, 1958 ae_int_t n, 1959 ae_int_t k, 1960 double alpha, 1961 ae_matrix *a, 1962 ae_int_t ia, 1963 ae_int_t ja, 1964 ae_int_t optypea, 1965 ae_matrix *b, 1966 ae_int_t ib, 1967 ae_int_t jb, 1968 ae_int_t optypeb, 1969 double beta, 1970 ae_matrix *c, 1971 ae_int_t ic, 1972 ae_int_t jc); 1973 ae_bool _ialglib_i_cmatrixgemmf(ae_int_t m, 1974 ae_int_t n, 1975 ae_int_t k, 1976 ae_complex alpha, 1977 ae_matrix *a, 1978 ae_int_t ia, 1979 ae_int_t ja, 1980 ae_int_t optypea, 1981 ae_matrix *b, 1982 ae_int_t ib, 1983 ae_int_t jb, 1984 ae_int_t optypeb, 1985 ae_complex beta, 1986 ae_matrix *c, 1987 ae_int_t ic, 1988 ae_int_t jc); 1989 ae_bool _ialglib_i_cmatrixrighttrsmf(ae_int_t m, 1990 ae_int_t n, 1991 ae_matrix *a, 1992 ae_int_t i1, 1993 ae_int_t j1, 1994 ae_bool isupper, 1995 ae_bool isunit, 1996 ae_int_t optype, 1997 ae_matrix *x, 1998 ae_int_t i2, 1999 ae_int_t j2); 2000 ae_bool _ialglib_i_rmatrixrighttrsmf(ae_int_t m, 2001 ae_int_t n, 2002 ae_matrix *a, 2003 ae_int_t i1, 2004 ae_int_t j1, 2005 ae_bool isupper, 2006 ae_bool isunit, 2007 ae_int_t optype, 2008 ae_matrix *x, 2009 ae_int_t i2, 2010 ae_int_t j2); 2011 ae_bool _ialglib_i_cmatrixlefttrsmf(ae_int_t m, 2012 ae_int_t n, 2013 ae_matrix *a, 2014 ae_int_t i1, 2015 ae_int_t j1, 2016 ae_bool isupper, 2017 ae_bool isunit, 2018 ae_int_t optype, 2019 ae_matrix *x, 2020 ae_int_t i2, 2021 ae_int_t j2); 2022 ae_bool _ialglib_i_rmatrixlefttrsmf(ae_int_t m, 2023 ae_int_t n, 2024 ae_matrix *a, 2025 ae_int_t i1, 2026 ae_int_t j1, 2027 ae_bool isupper, 2028 ae_bool isunit, 2029 ae_int_t optype, 2030 ae_matrix *x, 2031 ae_int_t i2, 2032 ae_int_t j2); 2033 ae_bool _ialglib_i_cmatrixherkf(ae_int_t n, 2034 ae_int_t k, 2035 double alpha, 2036 ae_matrix *a, 2037 ae_int_t ia, 2038 ae_int_t ja, 2039 ae_int_t optypea, 2040 double beta, 2041 ae_matrix *c, 2042 ae_int_t ic, 2043 ae_int_t jc, 2044 ae_bool isupper); 2045 ae_bool _ialglib_i_rmatrixsyrkf(ae_int_t n, 2046 ae_int_t k, 2047 double alpha, 2048 ae_matrix *a, 2049 ae_int_t ia, 2050 ae_int_t ja, 2051 ae_int_t optypea, 2052 double beta, 2053 ae_matrix *c, 2054 ae_int_t ic, 2055 ae_int_t jc, 2056 ae_bool isupper); 2057 ae_bool _ialglib_i_cmatrixrank1f(ae_int_t m, 2058 ae_int_t n, 2059 ae_matrix *a, 2060 ae_int_t ia, 2061 ae_int_t ja, 2062 ae_vector *u, 2063 ae_int_t uoffs, 2064 ae_vector *v, 2065 ae_int_t voffs); 2066 ae_bool _ialglib_i_rmatrixrank1f(ae_int_t m, 2067 ae_int_t n, 2068 ae_matrix *a, 2069 ae_int_t ia, 2070 ae_int_t ja, 2071 ae_vector *u, 2072 ae_int_t uoffs, 2073 ae_vector *v, 2074 ae_int_t voffs); 2075 ae_bool _ialglib_i_rmatrixgerf(ae_int_t m, 2076 ae_int_t n, 2077 ae_matrix *a, 2078 ae_int_t ia, 2079 ae_int_t ja, 2080 double alpha, 2081 ae_vector *u, 2082 ae_int_t uoffs, 2083 ae_vector *v, 2084 ae_int_t voffs); 2085 2086 2087 2088 } 2089 2090 2091 ///////////////////////////////////////////////////////////////////////// 2092 // 2093 // THIS SECTION CONTAINS PARALLEL SUBROUTINES 2094 // 2095 ///////////////////////////////////////////////////////////////////////// 2096 2097 namespace alglib_impl 2098 { 2099 2100 } 2101 2102 2103 ///////////////////////////////////////////////////////////////////////// 2104 // 2105 // THIS SECTION CONTAINS DEFINITIONS FOR PARTIAL COMPILATION 2106 // 2107 ///////////////////////////////////////////////////////////////////////// 2108 #ifdef AE_COMPILE_SCODES 2109 #define AE_PARTIAL_BUILD 2110 #endif 2111 2112 #ifdef AE_COMPILE_APSERV 2113 #define AE_PARTIAL_BUILD 2114 #endif 2115 2116 #ifdef AE_COMPILE_TSORT 2117 #define AE_PARTIAL_BUILD 2118 #define AE_COMPILE_APSERV 2119 #endif 2120 2121 #ifdef AE_COMPILE_NEARESTNEIGHBOR 2122 #define AE_PARTIAL_BUILD 2123 #define AE_COMPILE_SCODES 2124 #define AE_COMPILE_APSERV 2125 #define AE_COMPILE_TSORT 2126 #endif 2127 2128 #ifdef AE_COMPILE_HQRND 2129 #define AE_PARTIAL_BUILD 2130 #define AE_COMPILE_APSERV 2131 #endif 2132 2133 #ifdef AE_COMPILE_XDEBUG 2134 #define AE_PARTIAL_BUILD 2135 #endif 2136 2137 #ifdef AE_COMPILE_ODESOLVER 2138 #define AE_PARTIAL_BUILD 2139 #define AE_COMPILE_APSERV 2140 #endif 2141 2142 #ifdef AE_COMPILE_ABLASMKL 2143 #define AE_PARTIAL_BUILD 2144 #endif 2145 2146 #ifdef AE_COMPILE_SPARSE 2147 #define AE_PARTIAL_BUILD 2148 #define AE_COMPILE_APSERV 2149 #define AE_COMPILE_ABLASMKL 2150 #define AE_COMPILE_HQRND 2151 #define AE_COMPILE_TSORT 2152 #endif 2153 2154 #ifdef AE_COMPILE_ABLASF 2155 #define AE_PARTIAL_BUILD 2156 #endif 2157 2158 #ifdef AE_COMPILE_ABLAS 2159 #define AE_PARTIAL_BUILD 2160 #define AE_COMPILE_APSERV 2161 #define AE_COMPILE_ABLASF 2162 #define AE_COMPILE_ABLASMKL 2163 #endif 2164 2165 #ifdef AE_COMPILE_DLU 2166 #define AE_PARTIAL_BUILD 2167 #define AE_COMPILE_APSERV 2168 #define AE_COMPILE_ABLASF 2169 #define AE_COMPILE_ABLASMKL 2170 #define AE_COMPILE_ABLAS 2171 #endif 2172 2173 #ifdef AE_COMPILE_SPTRF 2174 #define AE_PARTIAL_BUILD 2175 #define AE_COMPILE_APSERV 2176 #define AE_COMPILE_ABLASF 2177 #define AE_COMPILE_ABLASMKL 2178 #define AE_COMPILE_ABLAS 2179 #define AE_COMPILE_HQRND 2180 #define AE_COMPILE_TSORT 2181 #define AE_COMPILE_SPARSE 2182 #define AE_COMPILE_DLU 2183 #endif 2184 2185 #ifdef AE_COMPILE_CREFLECTIONS 2186 #define AE_PARTIAL_BUILD 2187 #endif 2188 2189 #ifdef AE_COMPILE_MATGEN 2190 #define AE_PARTIAL_BUILD 2191 #define AE_COMPILE_APSERV 2192 #define AE_COMPILE_ABLASF 2193 #define AE_COMPILE_ABLASMKL 2194 #define AE_COMPILE_ABLAS 2195 #define AE_COMPILE_CREFLECTIONS 2196 #define AE_COMPILE_HQRND 2197 #endif 2198 2199 #ifdef AE_COMPILE_ROTATIONS 2200 #define AE_PARTIAL_BUILD 2201 #endif 2202 2203 #ifdef AE_COMPILE_TRFAC 2204 #define AE_PARTIAL_BUILD 2205 #define AE_COMPILE_APSERV 2206 #define AE_COMPILE_ABLASF 2207 #define AE_COMPILE_ABLASMKL 2208 #define AE_COMPILE_ABLAS 2209 #define AE_COMPILE_HQRND 2210 #define AE_COMPILE_TSORT 2211 #define AE_COMPILE_SPARSE 2212 #define AE_COMPILE_DLU 2213 #define AE_COMPILE_SPTRF 2214 #define AE_COMPILE_CREFLECTIONS 2215 #define AE_COMPILE_MATGEN 2216 #define AE_COMPILE_ROTATIONS 2217 #endif 2218 2219 #ifdef AE_COMPILE_TRLINSOLVE 2220 #define AE_PARTIAL_BUILD 2221 #endif 2222 2223 #ifdef AE_COMPILE_SAFESOLVE 2224 #define AE_PARTIAL_BUILD 2225 #endif 2226 2227 #ifdef AE_COMPILE_RCOND 2228 #define AE_PARTIAL_BUILD 2229 #define AE_COMPILE_APSERV 2230 #define AE_COMPILE_ABLASF 2231 #define AE_COMPILE_ABLASMKL 2232 #define AE_COMPILE_ABLAS 2233 #define AE_COMPILE_HQRND 2234 #define AE_COMPILE_TSORT 2235 #define AE_COMPILE_SPARSE 2236 #define AE_COMPILE_DLU 2237 #define AE_COMPILE_SPTRF 2238 #define AE_COMPILE_CREFLECTIONS 2239 #define AE_COMPILE_MATGEN 2240 #define AE_COMPILE_ROTATIONS 2241 #define AE_COMPILE_TRFAC 2242 #define AE_COMPILE_TRLINSOLVE 2243 #define AE_COMPILE_SAFESOLVE 2244 #endif 2245 2246 #ifdef AE_COMPILE_MATINV 2247 #define AE_PARTIAL_BUILD 2248 #define AE_COMPILE_APSERV 2249 #define AE_COMPILE_ABLASF 2250 #define AE_COMPILE_ABLASMKL 2251 #define AE_COMPILE_ABLAS 2252 #define AE_COMPILE_HQRND 2253 #define AE_COMPILE_TSORT 2254 #define AE_COMPILE_SPARSE 2255 #define AE_COMPILE_DLU 2256 #define AE_COMPILE_SPTRF 2257 #define AE_COMPILE_CREFLECTIONS 2258 #define AE_COMPILE_MATGEN 2259 #define AE_COMPILE_ROTATIONS 2260 #define AE_COMPILE_TRFAC 2261 #define AE_COMPILE_TRLINSOLVE 2262 #define AE_COMPILE_SAFESOLVE 2263 #define AE_COMPILE_RCOND 2264 #endif 2265 2266 #ifdef AE_COMPILE_HBLAS 2267 #define AE_PARTIAL_BUILD 2268 #endif 2269 2270 #ifdef AE_COMPILE_SBLAS 2271 #define AE_PARTIAL_BUILD 2272 #define AE_COMPILE_APSERV 2273 #endif 2274 2275 #ifdef AE_COMPILE_ORTFAC 2276 #define AE_PARTIAL_BUILD 2277 #define AE_COMPILE_APSERV 2278 #define AE_COMPILE_HQRND 2279 #define AE_COMPILE_HBLAS 2280 #define AE_COMPILE_CREFLECTIONS 2281 #define AE_COMPILE_SBLAS 2282 #define AE_COMPILE_ABLASF 2283 #define AE_COMPILE_ABLASMKL 2284 #define AE_COMPILE_ABLAS 2285 #endif 2286 2287 #ifdef AE_COMPILE_FBLS 2288 #define AE_PARTIAL_BUILD 2289 #define AE_COMPILE_APSERV 2290 #define AE_COMPILE_ABLASF 2291 #define AE_COMPILE_ABLASMKL 2292 #define AE_COMPILE_ABLAS 2293 #define AE_COMPILE_HQRND 2294 #define AE_COMPILE_HBLAS 2295 #define AE_COMPILE_CREFLECTIONS 2296 #define AE_COMPILE_SBLAS 2297 #define AE_COMPILE_ORTFAC 2298 #endif 2299 2300 #ifdef AE_COMPILE_CQMODELS 2301 #define AE_PARTIAL_BUILD 2302 #define AE_COMPILE_APSERV 2303 #define AE_COMPILE_ABLASF 2304 #define AE_COMPILE_ABLASMKL 2305 #define AE_COMPILE_ABLAS 2306 #define AE_COMPILE_HQRND 2307 #define AE_COMPILE_TSORT 2308 #define AE_COMPILE_SPARSE 2309 #define AE_COMPILE_DLU 2310 #define AE_COMPILE_SPTRF 2311 #define AE_COMPILE_CREFLECTIONS 2312 #define AE_COMPILE_MATGEN 2313 #define AE_COMPILE_ROTATIONS 2314 #define AE_COMPILE_TRFAC 2315 #define AE_COMPILE_HBLAS 2316 #define AE_COMPILE_SBLAS 2317 #define AE_COMPILE_ORTFAC 2318 #define AE_COMPILE_FBLS 2319 #endif 2320 2321 #ifdef AE_COMPILE_OPTGUARDAPI 2322 #define AE_PARTIAL_BUILD 2323 #define AE_COMPILE_APSERV 2324 #endif 2325 2326 #ifdef AE_COMPILE_BLAS 2327 #define AE_PARTIAL_BUILD 2328 #endif 2329 2330 #ifdef AE_COMPILE_BDSVD 2331 #define AE_PARTIAL_BUILD 2332 #define AE_COMPILE_ROTATIONS 2333 #define AE_COMPILE_ABLASMKL 2334 #define AE_COMPILE_APSERV 2335 #define AE_COMPILE_ABLASF 2336 #define AE_COMPILE_ABLAS 2337 #define AE_COMPILE_HQRND 2338 #endif 2339 2340 #ifdef AE_COMPILE_SVD 2341 #define AE_PARTIAL_BUILD 2342 #define AE_COMPILE_APSERV 2343 #define AE_COMPILE_HQRND 2344 #define AE_COMPILE_HBLAS 2345 #define AE_COMPILE_CREFLECTIONS 2346 #define AE_COMPILE_SBLAS 2347 #define AE_COMPILE_ABLASF 2348 #define AE_COMPILE_ABLASMKL 2349 #define AE_COMPILE_ABLAS 2350 #define AE_COMPILE_ORTFAC 2351 #define AE_COMPILE_BLAS 2352 #define AE_COMPILE_ROTATIONS 2353 #define AE_COMPILE_BDSVD 2354 #endif 2355 2356 #ifdef AE_COMPILE_OPTSERV 2357 #define AE_PARTIAL_BUILD 2358 #define AE_COMPILE_APSERV 2359 #define AE_COMPILE_TSORT 2360 #define AE_COMPILE_OPTGUARDAPI 2361 #define AE_COMPILE_ABLASF 2362 #define AE_COMPILE_ABLASMKL 2363 #define AE_COMPILE_ABLAS 2364 #define AE_COMPILE_CREFLECTIONS 2365 #define AE_COMPILE_HQRND 2366 #define AE_COMPILE_MATGEN 2367 #define AE_COMPILE_SPARSE 2368 #define AE_COMPILE_DLU 2369 #define AE_COMPILE_SPTRF 2370 #define AE_COMPILE_ROTATIONS 2371 #define AE_COMPILE_TRFAC 2372 #define AE_COMPILE_TRLINSOLVE 2373 #define AE_COMPILE_SAFESOLVE 2374 #define AE_COMPILE_RCOND 2375 #define AE_COMPILE_MATINV 2376 #define AE_COMPILE_HBLAS 2377 #define AE_COMPILE_SBLAS 2378 #define AE_COMPILE_ORTFAC 2379 #define AE_COMPILE_BLAS 2380 #define AE_COMPILE_BDSVD 2381 #define AE_COMPILE_SVD 2382 #endif 2383 2384 #ifdef AE_COMPILE_SNNLS 2385 #define AE_PARTIAL_BUILD 2386 #define AE_COMPILE_APSERV 2387 #define AE_COMPILE_ABLASF 2388 #define AE_COMPILE_ABLASMKL 2389 #define AE_COMPILE_ABLAS 2390 #define AE_COMPILE_HQRND 2391 #define AE_COMPILE_TSORT 2392 #define AE_COMPILE_SPARSE 2393 #define AE_COMPILE_DLU 2394 #define AE_COMPILE_SPTRF 2395 #define AE_COMPILE_CREFLECTIONS 2396 #define AE_COMPILE_MATGEN 2397 #define AE_COMPILE_ROTATIONS 2398 #define AE_COMPILE_TRFAC 2399 #define AE_COMPILE_HBLAS 2400 #define AE_COMPILE_SBLAS 2401 #define AE_COMPILE_ORTFAC 2402 #define AE_COMPILE_FBLS 2403 #endif 2404 2405 #ifdef AE_COMPILE_SACTIVESETS 2406 #define AE_PARTIAL_BUILD 2407 #define AE_COMPILE_APSERV 2408 #define AE_COMPILE_ABLASF 2409 #define AE_COMPILE_ABLASMKL 2410 #define AE_COMPILE_ABLAS 2411 #define AE_COMPILE_HQRND 2412 #define AE_COMPILE_TSORT 2413 #define AE_COMPILE_SPARSE 2414 #define AE_COMPILE_DLU 2415 #define AE_COMPILE_SPTRF 2416 #define AE_COMPILE_CREFLECTIONS 2417 #define AE_COMPILE_MATGEN 2418 #define AE_COMPILE_ROTATIONS 2419 #define AE_COMPILE_TRFAC 2420 #define AE_COMPILE_HBLAS 2421 #define AE_COMPILE_SBLAS 2422 #define AE_COMPILE_ORTFAC 2423 #define AE_COMPILE_FBLS 2424 #define AE_COMPILE_SNNLS 2425 #define AE_COMPILE_OPTGUARDAPI 2426 #define AE_COMPILE_TRLINSOLVE 2427 #define AE_COMPILE_SAFESOLVE 2428 #define AE_COMPILE_RCOND 2429 #define AE_COMPILE_MATINV 2430 #define AE_COMPILE_BLAS 2431 #define AE_COMPILE_BDSVD 2432 #define AE_COMPILE_SVD 2433 #define AE_COMPILE_OPTSERV 2434 #endif 2435 2436 #ifdef AE_COMPILE_QQPSOLVER 2437 #define AE_PARTIAL_BUILD 2438 #define AE_COMPILE_APSERV 2439 #define AE_COMPILE_ABLASMKL 2440 #define AE_COMPILE_HQRND 2441 #define AE_COMPILE_TSORT 2442 #define AE_COMPILE_SPARSE 2443 #define AE_COMPILE_ABLASF 2444 #define AE_COMPILE_ABLAS 2445 #define AE_COMPILE_DLU 2446 #define AE_COMPILE_SPTRF 2447 #define AE_COMPILE_CREFLECTIONS 2448 #define AE_COMPILE_MATGEN 2449 #define AE_COMPILE_ROTATIONS 2450 #define AE_COMPILE_TRFAC 2451 #define AE_COMPILE_TRLINSOLVE 2452 #define AE_COMPILE_SAFESOLVE 2453 #define AE_COMPILE_RCOND 2454 #define AE_COMPILE_MATINV 2455 #define AE_COMPILE_HBLAS 2456 #define AE_COMPILE_SBLAS 2457 #define AE_COMPILE_ORTFAC 2458 #define AE_COMPILE_FBLS 2459 #define AE_COMPILE_CQMODELS 2460 #define AE_COMPILE_OPTGUARDAPI 2461 #define AE_COMPILE_BLAS 2462 #define AE_COMPILE_BDSVD 2463 #define AE_COMPILE_SVD 2464 #define AE_COMPILE_OPTSERV 2465 #define AE_COMPILE_SNNLS 2466 #define AE_COMPILE_SACTIVESETS 2467 #endif 2468 2469 #ifdef AE_COMPILE_LINMIN 2470 #define AE_PARTIAL_BUILD 2471 #endif 2472 2473 #ifdef AE_COMPILE_MINLBFGS 2474 #define AE_PARTIAL_BUILD 2475 #define AE_COMPILE_LINMIN 2476 #define AE_COMPILE_APSERV 2477 #define AE_COMPILE_TSORT 2478 #define AE_COMPILE_OPTGUARDAPI 2479 #define AE_COMPILE_ABLASF 2480 #define AE_COMPILE_ABLASMKL 2481 #define AE_COMPILE_ABLAS 2482 #define AE_COMPILE_CREFLECTIONS 2483 #define AE_COMPILE_HQRND 2484 #define AE_COMPILE_MATGEN 2485 #define AE_COMPILE_SPARSE 2486 #define AE_COMPILE_DLU 2487 #define AE_COMPILE_SPTRF 2488 #define AE_COMPILE_ROTATIONS 2489 #define AE_COMPILE_TRFAC 2490 #define AE_COMPILE_TRLINSOLVE 2491 #define AE_COMPILE_SAFESOLVE 2492 #define AE_COMPILE_RCOND 2493 #define AE_COMPILE_MATINV 2494 #define AE_COMPILE_HBLAS 2495 #define AE_COMPILE_SBLAS 2496 #define AE_COMPILE_ORTFAC 2497 #define AE_COMPILE_BLAS 2498 #define AE_COMPILE_BDSVD 2499 #define AE_COMPILE_SVD 2500 #define AE_COMPILE_OPTSERV 2501 #define AE_COMPILE_FBLS 2502 #endif 2503 2504 #ifdef AE_COMPILE_XBLAS 2505 #define AE_PARTIAL_BUILD 2506 #endif 2507 2508 #ifdef AE_COMPILE_DIRECTDENSESOLVERS 2509 #define AE_PARTIAL_BUILD 2510 #define AE_COMPILE_APSERV 2511 #define AE_COMPILE_HQRND 2512 #define AE_COMPILE_HBLAS 2513 #define AE_COMPILE_CREFLECTIONS 2514 #define AE_COMPILE_SBLAS 2515 #define AE_COMPILE_ABLASF 2516 #define AE_COMPILE_ABLASMKL 2517 #define AE_COMPILE_ABLAS 2518 #define AE_COMPILE_ORTFAC 2519 #define AE_COMPILE_BLAS 2520 #define AE_COMPILE_ROTATIONS 2521 #define AE_COMPILE_BDSVD 2522 #define AE_COMPILE_SVD 2523 #define AE_COMPILE_TSORT 2524 #define AE_COMPILE_SPARSE 2525 #define AE_COMPILE_DLU 2526 #define AE_COMPILE_SPTRF 2527 #define AE_COMPILE_MATGEN 2528 #define AE_COMPILE_TRFAC 2529 #define AE_COMPILE_TRLINSOLVE 2530 #define AE_COMPILE_SAFESOLVE 2531 #define AE_COMPILE_RCOND 2532 #define AE_COMPILE_XBLAS 2533 #endif 2534 2535 #ifdef AE_COMPILE_NORMESTIMATOR 2536 #define AE_PARTIAL_BUILD 2537 #define AE_COMPILE_APSERV 2538 #define AE_COMPILE_HQRND 2539 #define AE_COMPILE_ABLASMKL 2540 #define AE_COMPILE_TSORT 2541 #define AE_COMPILE_SPARSE 2542 #define AE_COMPILE_ABLASF 2543 #define AE_COMPILE_ABLAS 2544 #define AE_COMPILE_CREFLECTIONS 2545 #define AE_COMPILE_MATGEN 2546 #endif 2547 2548 #ifdef AE_COMPILE_LINLSQR 2549 #define AE_PARTIAL_BUILD 2550 #define AE_COMPILE_APSERV 2551 #define AE_COMPILE_ABLASF 2552 #define AE_COMPILE_ABLASMKL 2553 #define AE_COMPILE_ABLAS 2554 #define AE_COMPILE_CREFLECTIONS 2555 #define AE_COMPILE_HQRND 2556 #define AE_COMPILE_MATGEN 2557 #define AE_COMPILE_TSORT 2558 #define AE_COMPILE_SPARSE 2559 #define AE_COMPILE_NORMESTIMATOR 2560 #define AE_COMPILE_HBLAS 2561 #define AE_COMPILE_SBLAS 2562 #define AE_COMPILE_ORTFAC 2563 #define AE_COMPILE_BLAS 2564 #define AE_COMPILE_ROTATIONS 2565 #define AE_COMPILE_BDSVD 2566 #define AE_COMPILE_SVD 2567 #endif 2568 2569 #ifdef AE_COMPILE_QPDENSEAULSOLVER 2570 #define AE_PARTIAL_BUILD 2571 #define AE_COMPILE_APSERV 2572 #define AE_COMPILE_ABLASMKL 2573 #define AE_COMPILE_HQRND 2574 #define AE_COMPILE_TSORT 2575 #define AE_COMPILE_SPARSE 2576 #define AE_COMPILE_ABLASF 2577 #define AE_COMPILE_ABLAS 2578 #define AE_COMPILE_DLU 2579 #define AE_COMPILE_SPTRF 2580 #define AE_COMPILE_CREFLECTIONS 2581 #define AE_COMPILE_MATGEN 2582 #define AE_COMPILE_ROTATIONS 2583 #define AE_COMPILE_TRFAC 2584 #define AE_COMPILE_TRLINSOLVE 2585 #define AE_COMPILE_SAFESOLVE 2586 #define AE_COMPILE_RCOND 2587 #define AE_COMPILE_MATINV 2588 #define AE_COMPILE_HBLAS 2589 #define AE_COMPILE_SBLAS 2590 #define AE_COMPILE_ORTFAC 2591 #define AE_COMPILE_BLAS 2592 #define AE_COMPILE_BDSVD 2593 #define AE_COMPILE_SVD 2594 #define AE_COMPILE_XBLAS 2595 #define AE_COMPILE_DIRECTDENSESOLVERS 2596 #define AE_COMPILE_NORMESTIMATOR 2597 #define AE_COMPILE_LINLSQR 2598 #define AE_COMPILE_LINMIN 2599 #define AE_COMPILE_OPTGUARDAPI 2600 #define AE_COMPILE_OPTSERV 2601 #define AE_COMPILE_FBLS 2602 #define AE_COMPILE_MINLBFGS 2603 #define AE_COMPILE_CQMODELS 2604 #define AE_COMPILE_SNNLS 2605 #define AE_COMPILE_SACTIVESETS 2606 #define AE_COMPILE_QQPSOLVER 2607 #endif 2608 2609 #ifdef AE_COMPILE_MINBLEIC 2610 #define AE_PARTIAL_BUILD 2611 #define AE_COMPILE_LINMIN 2612 #define AE_COMPILE_APSERV 2613 #define AE_COMPILE_TSORT 2614 #define AE_COMPILE_OPTGUARDAPI 2615 #define AE_COMPILE_ABLASF 2616 #define AE_COMPILE_ABLASMKL 2617 #define AE_COMPILE_ABLAS 2618 #define AE_COMPILE_CREFLECTIONS 2619 #define AE_COMPILE_HQRND 2620 #define AE_COMPILE_MATGEN 2621 #define AE_COMPILE_SPARSE 2622 #define AE_COMPILE_DLU 2623 #define AE_COMPILE_SPTRF 2624 #define AE_COMPILE_ROTATIONS 2625 #define AE_COMPILE_TRFAC 2626 #define AE_COMPILE_TRLINSOLVE 2627 #define AE_COMPILE_SAFESOLVE 2628 #define AE_COMPILE_RCOND 2629 #define AE_COMPILE_MATINV 2630 #define AE_COMPILE_HBLAS 2631 #define AE_COMPILE_SBLAS 2632 #define AE_COMPILE_ORTFAC 2633 #define AE_COMPILE_BLAS 2634 #define AE_COMPILE_BDSVD 2635 #define AE_COMPILE_SVD 2636 #define AE_COMPILE_OPTSERV 2637 #define AE_COMPILE_FBLS 2638 #define AE_COMPILE_CQMODELS 2639 #define AE_COMPILE_SNNLS 2640 #define AE_COMPILE_SACTIVESETS 2641 #endif 2642 2643 #ifdef AE_COMPILE_QPBLEICSOLVER 2644 #define AE_PARTIAL_BUILD 2645 #define AE_COMPILE_APSERV 2646 #define AE_COMPILE_ABLASMKL 2647 #define AE_COMPILE_HQRND 2648 #define AE_COMPILE_TSORT 2649 #define AE_COMPILE_SPARSE 2650 #define AE_COMPILE_ABLASF 2651 #define AE_COMPILE_ABLAS 2652 #define AE_COMPILE_DLU 2653 #define AE_COMPILE_SPTRF 2654 #define AE_COMPILE_CREFLECTIONS 2655 #define AE_COMPILE_MATGEN 2656 #define AE_COMPILE_ROTATIONS 2657 #define AE_COMPILE_TRFAC 2658 #define AE_COMPILE_TRLINSOLVE 2659 #define AE_COMPILE_SAFESOLVE 2660 #define AE_COMPILE_RCOND 2661 #define AE_COMPILE_MATINV 2662 #define AE_COMPILE_LINMIN 2663 #define AE_COMPILE_OPTGUARDAPI 2664 #define AE_COMPILE_HBLAS 2665 #define AE_COMPILE_SBLAS 2666 #define AE_COMPILE_ORTFAC 2667 #define AE_COMPILE_BLAS 2668 #define AE_COMPILE_BDSVD 2669 #define AE_COMPILE_SVD 2670 #define AE_COMPILE_OPTSERV 2671 #define AE_COMPILE_FBLS 2672 #define AE_COMPILE_CQMODELS 2673 #define AE_COMPILE_SNNLS 2674 #define AE_COMPILE_SACTIVESETS 2675 #define AE_COMPILE_MINBLEIC 2676 #endif 2677 2678 #ifdef AE_COMPILE_MINQP 2679 #define AE_PARTIAL_BUILD 2680 #define AE_COMPILE_APSERV 2681 #define AE_COMPILE_ABLASMKL 2682 #define AE_COMPILE_HQRND 2683 #define AE_COMPILE_TSORT 2684 #define AE_COMPILE_SPARSE 2685 #define AE_COMPILE_ABLASF 2686 #define AE_COMPILE_ABLAS 2687 #define AE_COMPILE_DLU 2688 #define AE_COMPILE_SPTRF 2689 #define AE_COMPILE_CREFLECTIONS 2690 #define AE_COMPILE_MATGEN 2691 #define AE_COMPILE_ROTATIONS 2692 #define AE_COMPILE_TRFAC 2693 #define AE_COMPILE_TRLINSOLVE 2694 #define AE_COMPILE_SAFESOLVE 2695 #define AE_COMPILE_RCOND 2696 #define AE_COMPILE_MATINV 2697 #define AE_COMPILE_HBLAS 2698 #define AE_COMPILE_SBLAS 2699 #define AE_COMPILE_ORTFAC 2700 #define AE_COMPILE_BLAS 2701 #define AE_COMPILE_BDSVD 2702 #define AE_COMPILE_SVD 2703 #define AE_COMPILE_XBLAS 2704 #define AE_COMPILE_DIRECTDENSESOLVERS 2705 #define AE_COMPILE_NORMESTIMATOR 2706 #define AE_COMPILE_LINLSQR 2707 #define AE_COMPILE_LINMIN 2708 #define AE_COMPILE_OPTGUARDAPI 2709 #define AE_COMPILE_OPTSERV 2710 #define AE_COMPILE_FBLS 2711 #define AE_COMPILE_MINLBFGS 2712 #define AE_COMPILE_CQMODELS 2713 #define AE_COMPILE_SNNLS 2714 #define AE_COMPILE_SACTIVESETS 2715 #define AE_COMPILE_QQPSOLVER 2716 #define AE_COMPILE_QPDENSEAULSOLVER 2717 #define AE_COMPILE_MINBLEIC 2718 #define AE_COMPILE_QPBLEICSOLVER 2719 #endif 2720 2721 #ifdef AE_COMPILE_REVISEDDUALSIMPLEX 2722 #define AE_PARTIAL_BUILD 2723 #define AE_COMPILE_APSERV 2724 #define AE_COMPILE_ABLASF 2725 #define AE_COMPILE_ABLASMKL 2726 #define AE_COMPILE_ABLAS 2727 #define AE_COMPILE_HQRND 2728 #define AE_COMPILE_TSORT 2729 #define AE_COMPILE_SPARSE 2730 #define AE_COMPILE_DLU 2731 #define AE_COMPILE_SPTRF 2732 #define AE_COMPILE_CREFLECTIONS 2733 #define AE_COMPILE_MATGEN 2734 #define AE_COMPILE_ROTATIONS 2735 #define AE_COMPILE_TRFAC 2736 #endif 2737 2738 #ifdef AE_COMPILE_MINLP 2739 #define AE_PARTIAL_BUILD 2740 #define AE_COMPILE_APSERV 2741 #define AE_COMPILE_ABLASMKL 2742 #define AE_COMPILE_HQRND 2743 #define AE_COMPILE_TSORT 2744 #define AE_COMPILE_SPARSE 2745 #define AE_COMPILE_ABLASF 2746 #define AE_COMPILE_ABLAS 2747 #define AE_COMPILE_DLU 2748 #define AE_COMPILE_SPTRF 2749 #define AE_COMPILE_CREFLECTIONS 2750 #define AE_COMPILE_MATGEN 2751 #define AE_COMPILE_ROTATIONS 2752 #define AE_COMPILE_TRFAC 2753 #define AE_COMPILE_REVISEDDUALSIMPLEX 2754 #endif 2755 2756 #ifdef AE_COMPILE_NLCSLP 2757 #define AE_PARTIAL_BUILD 2758 #define AE_COMPILE_LINMIN 2759 #define AE_COMPILE_APSERV 2760 #define AE_COMPILE_TSORT 2761 #define AE_COMPILE_OPTGUARDAPI 2762 #define AE_COMPILE_ABLASF 2763 #define AE_COMPILE_ABLASMKL 2764 #define AE_COMPILE_ABLAS 2765 #define AE_COMPILE_CREFLECTIONS 2766 #define AE_COMPILE_HQRND 2767 #define AE_COMPILE_MATGEN 2768 #define AE_COMPILE_SPARSE 2769 #define AE_COMPILE_DLU 2770 #define AE_COMPILE_SPTRF 2771 #define AE_COMPILE_ROTATIONS 2772 #define AE_COMPILE_TRFAC 2773 #define AE_COMPILE_TRLINSOLVE 2774 #define AE_COMPILE_SAFESOLVE 2775 #define AE_COMPILE_RCOND 2776 #define AE_COMPILE_MATINV 2777 #define AE_COMPILE_HBLAS 2778 #define AE_COMPILE_SBLAS 2779 #define AE_COMPILE_ORTFAC 2780 #define AE_COMPILE_BLAS 2781 #define AE_COMPILE_BDSVD 2782 #define AE_COMPILE_SVD 2783 #define AE_COMPILE_OPTSERV 2784 #define AE_COMPILE_REVISEDDUALSIMPLEX 2785 #endif 2786 2787 #ifdef AE_COMPILE_MINNLC 2788 #define AE_PARTIAL_BUILD 2789 #define AE_COMPILE_LINMIN 2790 #define AE_COMPILE_APSERV 2791 #define AE_COMPILE_TSORT 2792 #define AE_COMPILE_OPTGUARDAPI 2793 #define AE_COMPILE_ABLASF 2794 #define AE_COMPILE_ABLASMKL 2795 #define AE_COMPILE_ABLAS 2796 #define AE_COMPILE_CREFLECTIONS 2797 #define AE_COMPILE_HQRND 2798 #define AE_COMPILE_MATGEN 2799 #define AE_COMPILE_SPARSE 2800 #define AE_COMPILE_DLU 2801 #define AE_COMPILE_SPTRF 2802 #define AE_COMPILE_ROTATIONS 2803 #define AE_COMPILE_TRFAC 2804 #define AE_COMPILE_TRLINSOLVE 2805 #define AE_COMPILE_SAFESOLVE 2806 #define AE_COMPILE_RCOND 2807 #define AE_COMPILE_MATINV 2808 #define AE_COMPILE_HBLAS 2809 #define AE_COMPILE_SBLAS 2810 #define AE_COMPILE_ORTFAC 2811 #define AE_COMPILE_BLAS 2812 #define AE_COMPILE_BDSVD 2813 #define AE_COMPILE_SVD 2814 #define AE_COMPILE_OPTSERV 2815 #define AE_COMPILE_FBLS 2816 #define AE_COMPILE_SNNLS 2817 #define AE_COMPILE_MINLBFGS 2818 #define AE_COMPILE_CQMODELS 2819 #define AE_COMPILE_SACTIVESETS 2820 #define AE_COMPILE_MINBLEIC 2821 #define AE_COMPILE_REVISEDDUALSIMPLEX 2822 #define AE_COMPILE_NLCSLP 2823 #endif 2824 2825 #ifdef AE_COMPILE_MINBC 2826 #define AE_PARTIAL_BUILD 2827 #define AE_COMPILE_LINMIN 2828 #define AE_COMPILE_APSERV 2829 #define AE_COMPILE_TSORT 2830 #define AE_COMPILE_OPTGUARDAPI 2831 #define AE_COMPILE_ABLASF 2832 #define AE_COMPILE_ABLASMKL 2833 #define AE_COMPILE_ABLAS 2834 #define AE_COMPILE_CREFLECTIONS 2835 #define AE_COMPILE_HQRND 2836 #define AE_COMPILE_MATGEN 2837 #define AE_COMPILE_SPARSE 2838 #define AE_COMPILE_DLU 2839 #define AE_COMPILE_SPTRF 2840 #define AE_COMPILE_ROTATIONS 2841 #define AE_COMPILE_TRFAC 2842 #define AE_COMPILE_TRLINSOLVE 2843 #define AE_COMPILE_SAFESOLVE 2844 #define AE_COMPILE_RCOND 2845 #define AE_COMPILE_MATINV 2846 #define AE_COMPILE_HBLAS 2847 #define AE_COMPILE_SBLAS 2848 #define AE_COMPILE_ORTFAC 2849 #define AE_COMPILE_BLAS 2850 #define AE_COMPILE_BDSVD 2851 #define AE_COMPILE_SVD 2852 #define AE_COMPILE_OPTSERV 2853 #endif 2854 2855 #ifdef AE_COMPILE_MINNS 2856 #define AE_PARTIAL_BUILD 2857 #define AE_COMPILE_LINMIN 2858 #define AE_COMPILE_APSERV 2859 #define AE_COMPILE_TSORT 2860 #define AE_COMPILE_OPTGUARDAPI 2861 #define AE_COMPILE_ABLASF 2862 #define AE_COMPILE_ABLASMKL 2863 #define AE_COMPILE_ABLAS 2864 #define AE_COMPILE_CREFLECTIONS 2865 #define AE_COMPILE_HQRND 2866 #define AE_COMPILE_MATGEN 2867 #define AE_COMPILE_SPARSE 2868 #define AE_COMPILE_DLU 2869 #define AE_COMPILE_SPTRF 2870 #define AE_COMPILE_ROTATIONS 2871 #define AE_COMPILE_TRFAC 2872 #define AE_COMPILE_TRLINSOLVE 2873 #define AE_COMPILE_SAFESOLVE 2874 #define AE_COMPILE_RCOND 2875 #define AE_COMPILE_MATINV 2876 #define AE_COMPILE_HBLAS 2877 #define AE_COMPILE_SBLAS 2878 #define AE_COMPILE_ORTFAC 2879 #define AE_COMPILE_BLAS 2880 #define AE_COMPILE_BDSVD 2881 #define AE_COMPILE_SVD 2882 #define AE_COMPILE_OPTSERV 2883 #define AE_COMPILE_FBLS 2884 #define AE_COMPILE_SNNLS 2885 #define AE_COMPILE_CQMODELS 2886 #define AE_COMPILE_SACTIVESETS 2887 #define AE_COMPILE_MINBLEIC 2888 #endif 2889 2890 #ifdef AE_COMPILE_MINCOMP 2891 #define AE_PARTIAL_BUILD 2892 #define AE_COMPILE_LINMIN 2893 #define AE_COMPILE_APSERV 2894 #define AE_COMPILE_TSORT 2895 #define AE_COMPILE_OPTGUARDAPI 2896 #define AE_COMPILE_ABLASF 2897 #define AE_COMPILE_ABLASMKL 2898 #define AE_COMPILE_ABLAS 2899 #define AE_COMPILE_CREFLECTIONS 2900 #define AE_COMPILE_HQRND 2901 #define AE_COMPILE_MATGEN 2902 #define AE_COMPILE_SPARSE 2903 #define AE_COMPILE_DLU 2904 #define AE_COMPILE_SPTRF 2905 #define AE_COMPILE_ROTATIONS 2906 #define AE_COMPILE_TRFAC 2907 #define AE_COMPILE_TRLINSOLVE 2908 #define AE_COMPILE_SAFESOLVE 2909 #define AE_COMPILE_RCOND 2910 #define AE_COMPILE_MATINV 2911 #define AE_COMPILE_HBLAS 2912 #define AE_COMPILE_SBLAS 2913 #define AE_COMPILE_ORTFAC 2914 #define AE_COMPILE_BLAS 2915 #define AE_COMPILE_BDSVD 2916 #define AE_COMPILE_SVD 2917 #define AE_COMPILE_OPTSERV 2918 #define AE_COMPILE_FBLS 2919 #define AE_COMPILE_MINLBFGS 2920 #define AE_COMPILE_CQMODELS 2921 #define AE_COMPILE_SNNLS 2922 #define AE_COMPILE_SACTIVESETS 2923 #define AE_COMPILE_MINBLEIC 2924 #endif 2925 2926 #ifdef AE_COMPILE_MINCG 2927 #define AE_PARTIAL_BUILD 2928 #define AE_COMPILE_LINMIN 2929 #define AE_COMPILE_APSERV 2930 #define AE_COMPILE_TSORT 2931 #define AE_COMPILE_OPTGUARDAPI 2932 #define AE_COMPILE_ABLASF 2933 #define AE_COMPILE_ABLASMKL 2934 #define AE_COMPILE_ABLAS 2935 #define AE_COMPILE_CREFLECTIONS 2936 #define AE_COMPILE_HQRND 2937 #define AE_COMPILE_MATGEN 2938 #define AE_COMPILE_SPARSE 2939 #define AE_COMPILE_DLU 2940 #define AE_COMPILE_SPTRF 2941 #define AE_COMPILE_ROTATIONS 2942 #define AE_COMPILE_TRFAC 2943 #define AE_COMPILE_TRLINSOLVE 2944 #define AE_COMPILE_SAFESOLVE 2945 #define AE_COMPILE_RCOND 2946 #define AE_COMPILE_MATINV 2947 #define AE_COMPILE_HBLAS 2948 #define AE_COMPILE_SBLAS 2949 #define AE_COMPILE_ORTFAC 2950 #define AE_COMPILE_BLAS 2951 #define AE_COMPILE_BDSVD 2952 #define AE_COMPILE_SVD 2953 #define AE_COMPILE_OPTSERV 2954 #endif 2955 2956 #ifdef AE_COMPILE_MINLM 2957 #define AE_PARTIAL_BUILD 2958 #define AE_COMPILE_APSERV 2959 #define AE_COMPILE_TSORT 2960 #define AE_COMPILE_OPTGUARDAPI 2961 #define AE_COMPILE_ABLASF 2962 #define AE_COMPILE_ABLASMKL 2963 #define AE_COMPILE_ABLAS 2964 #define AE_COMPILE_CREFLECTIONS 2965 #define AE_COMPILE_HQRND 2966 #define AE_COMPILE_MATGEN 2967 #define AE_COMPILE_SPARSE 2968 #define AE_COMPILE_DLU 2969 #define AE_COMPILE_SPTRF 2970 #define AE_COMPILE_ROTATIONS 2971 #define AE_COMPILE_TRFAC 2972 #define AE_COMPILE_TRLINSOLVE 2973 #define AE_COMPILE_SAFESOLVE 2974 #define AE_COMPILE_RCOND 2975 #define AE_COMPILE_MATINV 2976 #define AE_COMPILE_HBLAS 2977 #define AE_COMPILE_SBLAS 2978 #define AE_COMPILE_ORTFAC 2979 #define AE_COMPILE_BLAS 2980 #define AE_COMPILE_BDSVD 2981 #define AE_COMPILE_SVD 2982 #define AE_COMPILE_OPTSERV 2983 #define AE_COMPILE_XBLAS 2984 #define AE_COMPILE_DIRECTDENSESOLVERS 2985 #define AE_COMPILE_NORMESTIMATOR 2986 #define AE_COMPILE_LINLSQR 2987 #define AE_COMPILE_LINMIN 2988 #define AE_COMPILE_FBLS 2989 #define AE_COMPILE_MINLBFGS 2990 #define AE_COMPILE_CQMODELS 2991 #define AE_COMPILE_SNNLS 2992 #define AE_COMPILE_SACTIVESETS 2993 #define AE_COMPILE_QQPSOLVER 2994 #define AE_COMPILE_QPDENSEAULSOLVER 2995 #define AE_COMPILE_MINBLEIC 2996 #define AE_COMPILE_QPBLEICSOLVER 2997 #define AE_COMPILE_MINQP 2998 #endif 2999 3000 #ifdef AE_COMPILE_HSSCHUR 3001 #define AE_PARTIAL_BUILD 3002 #define AE_COMPILE_BLAS 3003 #define AE_COMPILE_ABLASMKL 3004 #define AE_COMPILE_ROTATIONS 3005 #define AE_COMPILE_APSERV 3006 #define AE_COMPILE_ABLASF 3007 #define AE_COMPILE_ABLAS 3008 #endif 3009 3010 #ifdef AE_COMPILE_BASICSTATOPS 3011 #define AE_PARTIAL_BUILD 3012 #define AE_COMPILE_APSERV 3013 #define AE_COMPILE_TSORT 3014 #endif 3015 3016 #ifdef AE_COMPILE_EVD 3017 #define AE_PARTIAL_BUILD 3018 #define AE_COMPILE_APSERV 3019 #define AE_COMPILE_HQRND 3020 #define AE_COMPILE_HBLAS 3021 #define AE_COMPILE_CREFLECTIONS 3022 #define AE_COMPILE_SBLAS 3023 #define AE_COMPILE_ABLASF 3024 #define AE_COMPILE_ABLASMKL 3025 #define AE_COMPILE_ABLAS 3026 #define AE_COMPILE_ORTFAC 3027 #define AE_COMPILE_MATGEN 3028 #define AE_COMPILE_TSORT 3029 #define AE_COMPILE_SPARSE 3030 #define AE_COMPILE_BLAS 3031 #define AE_COMPILE_ROTATIONS 3032 #define AE_COMPILE_HSSCHUR 3033 #define AE_COMPILE_BASICSTATOPS 3034 #endif 3035 3036 #ifdef AE_COMPILE_BASESTAT 3037 #define AE_PARTIAL_BUILD 3038 #define AE_COMPILE_APSERV 3039 #define AE_COMPILE_TSORT 3040 #define AE_COMPILE_BASICSTATOPS 3041 #define AE_COMPILE_ABLASF 3042 #define AE_COMPILE_ABLASMKL 3043 #define AE_COMPILE_ABLAS 3044 #endif 3045 3046 #ifdef AE_COMPILE_PCA 3047 #define AE_PARTIAL_BUILD 3048 #define AE_COMPILE_APSERV 3049 #define AE_COMPILE_HQRND 3050 #define AE_COMPILE_HBLAS 3051 #define AE_COMPILE_CREFLECTIONS 3052 #define AE_COMPILE_SBLAS 3053 #define AE_COMPILE_ABLASF 3054 #define AE_COMPILE_ABLASMKL 3055 #define AE_COMPILE_ABLAS 3056 #define AE_COMPILE_ORTFAC 3057 #define AE_COMPILE_BLAS 3058 #define AE_COMPILE_ROTATIONS 3059 #define AE_COMPILE_BDSVD 3060 #define AE_COMPILE_SVD 3061 #define AE_COMPILE_MATGEN 3062 #define AE_COMPILE_TSORT 3063 #define AE_COMPILE_SPARSE 3064 #define AE_COMPILE_HSSCHUR 3065 #define AE_COMPILE_BASICSTATOPS 3066 #define AE_COMPILE_EVD 3067 #define AE_COMPILE_BASESTAT 3068 #endif 3069 3070 #ifdef AE_COMPILE_BDSS 3071 #define AE_PARTIAL_BUILD 3072 #define AE_COMPILE_APSERV 3073 #define AE_COMPILE_TSORT 3074 #define AE_COMPILE_BASICSTATOPS 3075 #define AE_COMPILE_ABLASF 3076 #define AE_COMPILE_ABLASMKL 3077 #define AE_COMPILE_ABLAS 3078 #define AE_COMPILE_BASESTAT 3079 #endif 3080 3081 #ifdef AE_COMPILE_HPCCORES 3082 #define AE_PARTIAL_BUILD 3083 #endif 3084 3085 #ifdef AE_COMPILE_MLPBASE 3086 #define AE_PARTIAL_BUILD 3087 #define AE_COMPILE_APSERV 3088 #define AE_COMPILE_TSORT 3089 #define AE_COMPILE_BASICSTATOPS 3090 #define AE_COMPILE_ABLASF 3091 #define AE_COMPILE_ABLASMKL 3092 #define AE_COMPILE_ABLAS 3093 #define AE_COMPILE_BASESTAT 3094 #define AE_COMPILE_BDSS 3095 #define AE_COMPILE_HPCCORES 3096 #define AE_COMPILE_SCODES 3097 #define AE_COMPILE_HQRND 3098 #define AE_COMPILE_SPARSE 3099 #endif 3100 3101 #ifdef AE_COMPILE_LDA 3102 #define AE_PARTIAL_BUILD 3103 #define AE_COMPILE_APSERV 3104 #define AE_COMPILE_HQRND 3105 #define AE_COMPILE_HBLAS 3106 #define AE_COMPILE_CREFLECTIONS 3107 #define AE_COMPILE_SBLAS 3108 #define AE_COMPILE_ABLASF 3109 #define AE_COMPILE_ABLASMKL 3110 #define AE_COMPILE_ABLAS 3111 #define AE_COMPILE_ORTFAC 3112 #define AE_COMPILE_MATGEN 3113 #define AE_COMPILE_TSORT 3114 #define AE_COMPILE_SPARSE 3115 #define AE_COMPILE_BLAS 3116 #define AE_COMPILE_ROTATIONS 3117 #define AE_COMPILE_HSSCHUR 3118 #define AE_COMPILE_BASICSTATOPS 3119 #define AE_COMPILE_EVD 3120 #define AE_COMPILE_DLU 3121 #define AE_COMPILE_SPTRF 3122 #define AE_COMPILE_TRFAC 3123 #define AE_COMPILE_TRLINSOLVE 3124 #define AE_COMPILE_SAFESOLVE 3125 #define AE_COMPILE_RCOND 3126 #define AE_COMPILE_MATINV 3127 #endif 3128 3129 #ifdef AE_COMPILE_SSA 3130 #define AE_PARTIAL_BUILD 3131 #define AE_COMPILE_APSERV 3132 #define AE_COMPILE_HQRND 3133 #define AE_COMPILE_HBLAS 3134 #define AE_COMPILE_CREFLECTIONS 3135 #define AE_COMPILE_SBLAS 3136 #define AE_COMPILE_ABLASF 3137 #define AE_COMPILE_ABLASMKL 3138 #define AE_COMPILE_ABLAS 3139 #define AE_COMPILE_ORTFAC 3140 #define AE_COMPILE_BLAS 3141 #define AE_COMPILE_ROTATIONS 3142 #define AE_COMPILE_BDSVD 3143 #define AE_COMPILE_SVD 3144 #define AE_COMPILE_MATGEN 3145 #define AE_COMPILE_TSORT 3146 #define AE_COMPILE_SPARSE 3147 #define AE_COMPILE_HSSCHUR 3148 #define AE_COMPILE_BASICSTATOPS 3149 #define AE_COMPILE_EVD 3150 #endif 3151 3152 #ifdef AE_COMPILE_GAMMAFUNC 3153 #define AE_PARTIAL_BUILD 3154 #endif 3155 3156 #ifdef AE_COMPILE_NORMALDISTR 3157 #define AE_PARTIAL_BUILD 3158 #endif 3159 3160 #ifdef AE_COMPILE_IGAMMAF 3161 #define AE_PARTIAL_BUILD 3162 #define AE_COMPILE_GAMMAFUNC 3163 #define AE_COMPILE_NORMALDISTR 3164 #endif 3165 3166 #ifdef AE_COMPILE_LINREG 3167 #define AE_PARTIAL_BUILD 3168 #define AE_COMPILE_APSERV 3169 #define AE_COMPILE_TSORT 3170 #define AE_COMPILE_BASICSTATOPS 3171 #define AE_COMPILE_ABLASF 3172 #define AE_COMPILE_ABLASMKL 3173 #define AE_COMPILE_ABLAS 3174 #define AE_COMPILE_BASESTAT 3175 #define AE_COMPILE_GAMMAFUNC 3176 #define AE_COMPILE_NORMALDISTR 3177 #define AE_COMPILE_IGAMMAF 3178 #define AE_COMPILE_HQRND 3179 #define AE_COMPILE_HBLAS 3180 #define AE_COMPILE_CREFLECTIONS 3181 #define AE_COMPILE_SBLAS 3182 #define AE_COMPILE_ORTFAC 3183 #define AE_COMPILE_BLAS 3184 #define AE_COMPILE_ROTATIONS 3185 #define AE_COMPILE_BDSVD 3186 #define AE_COMPILE_SVD 3187 #endif 3188 3189 #ifdef AE_COMPILE_FILTERS 3190 #define AE_PARTIAL_BUILD 3191 #define AE_COMPILE_APSERV 3192 #define AE_COMPILE_TSORT 3193 #define AE_COMPILE_BASICSTATOPS 3194 #define AE_COMPILE_ABLASF 3195 #define AE_COMPILE_ABLASMKL 3196 #define AE_COMPILE_ABLAS 3197 #define AE_COMPILE_BASESTAT 3198 #define AE_COMPILE_GAMMAFUNC 3199 #define AE_COMPILE_NORMALDISTR 3200 #define AE_COMPILE_IGAMMAF 3201 #define AE_COMPILE_HQRND 3202 #define AE_COMPILE_HBLAS 3203 #define AE_COMPILE_CREFLECTIONS 3204 #define AE_COMPILE_SBLAS 3205 #define AE_COMPILE_ORTFAC 3206 #define AE_COMPILE_BLAS 3207 #define AE_COMPILE_ROTATIONS 3208 #define AE_COMPILE_BDSVD 3209 #define AE_COMPILE_SVD 3210 #define AE_COMPILE_LINREG 3211 #endif 3212 3213 #ifdef AE_COMPILE_LOGIT 3214 #define AE_PARTIAL_BUILD 3215 #define AE_COMPILE_APSERV 3216 #define AE_COMPILE_TSORT 3217 #define AE_COMPILE_BASICSTATOPS 3218 #define AE_COMPILE_ABLASF 3219 #define AE_COMPILE_ABLASMKL 3220 #define AE_COMPILE_ABLAS 3221 #define AE_COMPILE_BASESTAT 3222 #define AE_COMPILE_BDSS 3223 #define AE_COMPILE_HPCCORES 3224 #define AE_COMPILE_SCODES 3225 #define AE_COMPILE_HQRND 3226 #define AE_COMPILE_SPARSE 3227 #define AE_COMPILE_MLPBASE 3228 #define AE_COMPILE_HBLAS 3229 #define AE_COMPILE_CREFLECTIONS 3230 #define AE_COMPILE_SBLAS 3231 #define AE_COMPILE_ORTFAC 3232 #define AE_COMPILE_BLAS 3233 #define AE_COMPILE_ROTATIONS 3234 #define AE_COMPILE_BDSVD 3235 #define AE_COMPILE_SVD 3236 #define AE_COMPILE_DLU 3237 #define AE_COMPILE_SPTRF 3238 #define AE_COMPILE_MATGEN 3239 #define AE_COMPILE_TRFAC 3240 #define AE_COMPILE_TRLINSOLVE 3241 #define AE_COMPILE_SAFESOLVE 3242 #define AE_COMPILE_RCOND 3243 #define AE_COMPILE_XBLAS 3244 #define AE_COMPILE_DIRECTDENSESOLVERS 3245 #endif 3246 3247 #ifdef AE_COMPILE_MCPD 3248 #define AE_PARTIAL_BUILD 3249 #define AE_COMPILE_APSERV 3250 #define AE_COMPILE_LINMIN 3251 #define AE_COMPILE_TSORT 3252 #define AE_COMPILE_OPTGUARDAPI 3253 #define AE_COMPILE_ABLASF 3254 #define AE_COMPILE_ABLASMKL 3255 #define AE_COMPILE_ABLAS 3256 #define AE_COMPILE_CREFLECTIONS 3257 #define AE_COMPILE_HQRND 3258 #define AE_COMPILE_MATGEN 3259 #define AE_COMPILE_SPARSE 3260 #define AE_COMPILE_DLU 3261 #define AE_COMPILE_SPTRF 3262 #define AE_COMPILE_ROTATIONS 3263 #define AE_COMPILE_TRFAC 3264 #define AE_COMPILE_TRLINSOLVE 3265 #define AE_COMPILE_SAFESOLVE 3266 #define AE_COMPILE_RCOND 3267 #define AE_COMPILE_MATINV 3268 #define AE_COMPILE_HBLAS 3269 #define AE_COMPILE_SBLAS 3270 #define AE_COMPILE_ORTFAC 3271 #define AE_COMPILE_BLAS 3272 #define AE_COMPILE_BDSVD 3273 #define AE_COMPILE_SVD 3274 #define AE_COMPILE_OPTSERV 3275 #define AE_COMPILE_FBLS 3276 #define AE_COMPILE_CQMODELS 3277 #define AE_COMPILE_SNNLS 3278 #define AE_COMPILE_SACTIVESETS 3279 #define AE_COMPILE_MINBLEIC 3280 #endif 3281 3282 #ifdef AE_COMPILE_MLPE 3283 #define AE_PARTIAL_BUILD 3284 #define AE_COMPILE_APSERV 3285 #define AE_COMPILE_TSORT 3286 #define AE_COMPILE_BASICSTATOPS 3287 #define AE_COMPILE_ABLASF 3288 #define AE_COMPILE_ABLASMKL 3289 #define AE_COMPILE_ABLAS 3290 #define AE_COMPILE_BASESTAT 3291 #define AE_COMPILE_BDSS 3292 #define AE_COMPILE_HPCCORES 3293 #define AE_COMPILE_SCODES 3294 #define AE_COMPILE_HQRND 3295 #define AE_COMPILE_SPARSE 3296 #define AE_COMPILE_MLPBASE 3297 #endif 3298 3299 #ifdef AE_COMPILE_MLPTRAIN 3300 #define AE_PARTIAL_BUILD 3301 #define AE_COMPILE_APSERV 3302 #define AE_COMPILE_TSORT 3303 #define AE_COMPILE_BASICSTATOPS 3304 #define AE_COMPILE_ABLASF 3305 #define AE_COMPILE_ABLASMKL 3306 #define AE_COMPILE_ABLAS 3307 #define AE_COMPILE_BASESTAT 3308 #define AE_COMPILE_BDSS 3309 #define AE_COMPILE_HPCCORES 3310 #define AE_COMPILE_SCODES 3311 #define AE_COMPILE_HQRND 3312 #define AE_COMPILE_SPARSE 3313 #define AE_COMPILE_MLPBASE 3314 #define AE_COMPILE_MLPE 3315 #define AE_COMPILE_DLU 3316 #define AE_COMPILE_SPTRF 3317 #define AE_COMPILE_CREFLECTIONS 3318 #define AE_COMPILE_MATGEN 3319 #define AE_COMPILE_ROTATIONS 3320 #define AE_COMPILE_TRFAC 3321 #define AE_COMPILE_TRLINSOLVE 3322 #define AE_COMPILE_SAFESOLVE 3323 #define AE_COMPILE_RCOND 3324 #define AE_COMPILE_MATINV 3325 #define AE_COMPILE_LINMIN 3326 #define AE_COMPILE_OPTGUARDAPI 3327 #define AE_COMPILE_HBLAS 3328 #define AE_COMPILE_SBLAS 3329 #define AE_COMPILE_ORTFAC 3330 #define AE_COMPILE_BLAS 3331 #define AE_COMPILE_BDSVD 3332 #define AE_COMPILE_SVD 3333 #define AE_COMPILE_OPTSERV 3334 #define AE_COMPILE_FBLS 3335 #define AE_COMPILE_MINLBFGS 3336 #define AE_COMPILE_XBLAS 3337 #define AE_COMPILE_DIRECTDENSESOLVERS 3338 #endif 3339 3340 #ifdef AE_COMPILE_CLUSTERING 3341 #define AE_PARTIAL_BUILD 3342 #define AE_COMPILE_APSERV 3343 #define AE_COMPILE_TSORT 3344 #define AE_COMPILE_ABLASF 3345 #define AE_COMPILE_ABLASMKL 3346 #define AE_COMPILE_ABLAS 3347 #define AE_COMPILE_HQRND 3348 #define AE_COMPILE_BLAS 3349 #define AE_COMPILE_BASICSTATOPS 3350 #define AE_COMPILE_BASESTAT 3351 #endif 3352 3353 #ifdef AE_COMPILE_DFOREST 3354 #define AE_PARTIAL_BUILD 3355 #define AE_COMPILE_APSERV 3356 #define AE_COMPILE_SCODES 3357 #define AE_COMPILE_TSORT 3358 #define AE_COMPILE_HQRND 3359 #define AE_COMPILE_BASICSTATOPS 3360 #define AE_COMPILE_ABLASF 3361 #define AE_COMPILE_ABLASMKL 3362 #define AE_COMPILE_ABLAS 3363 #define AE_COMPILE_BASESTAT 3364 #define AE_COMPILE_BDSS 3365 #endif 3366 3367 #ifdef AE_COMPILE_KNN 3368 #define AE_PARTIAL_BUILD 3369 #define AE_COMPILE_APSERV 3370 #define AE_COMPILE_SCODES 3371 #define AE_COMPILE_TSORT 3372 #define AE_COMPILE_HQRND 3373 #define AE_COMPILE_NEARESTNEIGHBOR 3374 #define AE_COMPILE_BASICSTATOPS 3375 #define AE_COMPILE_ABLASF 3376 #define AE_COMPILE_ABLASMKL 3377 #define AE_COMPILE_ABLAS 3378 #define AE_COMPILE_BASESTAT 3379 #define AE_COMPILE_BDSS 3380 #endif 3381 3382 #ifdef AE_COMPILE_DATACOMP 3383 #define AE_PARTIAL_BUILD 3384 #define AE_COMPILE_APSERV 3385 #define AE_COMPILE_TSORT 3386 #define AE_COMPILE_ABLASF 3387 #define AE_COMPILE_ABLASMKL 3388 #define AE_COMPILE_ABLAS 3389 #define AE_COMPILE_HQRND 3390 #define AE_COMPILE_BLAS 3391 #define AE_COMPILE_BASICSTATOPS 3392 #define AE_COMPILE_BASESTAT 3393 #define AE_COMPILE_CLUSTERING 3394 #endif 3395 3396 #ifdef AE_COMPILE_GQ 3397 #define AE_PARTIAL_BUILD 3398 #define AE_COMPILE_APSERV 3399 #define AE_COMPILE_HQRND 3400 #define AE_COMPILE_HBLAS 3401 #define AE_COMPILE_CREFLECTIONS 3402 #define AE_COMPILE_SBLAS 3403 #define AE_COMPILE_ABLASF 3404 #define AE_COMPILE_ABLASMKL 3405 #define AE_COMPILE_ABLAS 3406 #define AE_COMPILE_ORTFAC 3407 #define AE_COMPILE_MATGEN 3408 #define AE_COMPILE_TSORT 3409 #define AE_COMPILE_SPARSE 3410 #define AE_COMPILE_BLAS 3411 #define AE_COMPILE_ROTATIONS 3412 #define AE_COMPILE_HSSCHUR 3413 #define AE_COMPILE_BASICSTATOPS 3414 #define AE_COMPILE_EVD 3415 #define AE_COMPILE_GAMMAFUNC 3416 #endif 3417 3418 #ifdef AE_COMPILE_GKQ 3419 #define AE_PARTIAL_BUILD 3420 #define AE_COMPILE_APSERV 3421 #define AE_COMPILE_TSORT 3422 #define AE_COMPILE_HQRND 3423 #define AE_COMPILE_HBLAS 3424 #define AE_COMPILE_CREFLECTIONS 3425 #define AE_COMPILE_SBLAS 3426 #define AE_COMPILE_ABLASF 3427 #define AE_COMPILE_ABLASMKL 3428 #define AE_COMPILE_ABLAS 3429 #define AE_COMPILE_ORTFAC 3430 #define AE_COMPILE_MATGEN 3431 #define AE_COMPILE_SPARSE 3432 #define AE_COMPILE_BLAS 3433 #define AE_COMPILE_ROTATIONS 3434 #define AE_COMPILE_HSSCHUR 3435 #define AE_COMPILE_BASICSTATOPS 3436 #define AE_COMPILE_EVD 3437 #define AE_COMPILE_GAMMAFUNC 3438 #define AE_COMPILE_GQ 3439 #endif 3440 3441 #ifdef AE_COMPILE_AUTOGK 3442 #define AE_PARTIAL_BUILD 3443 #define AE_COMPILE_APSERV 3444 #define AE_COMPILE_TSORT 3445 #define AE_COMPILE_HQRND 3446 #define AE_COMPILE_HBLAS 3447 #define AE_COMPILE_CREFLECTIONS 3448 #define AE_COMPILE_SBLAS 3449 #define AE_COMPILE_ABLASF 3450 #define AE_COMPILE_ABLASMKL 3451 #define AE_COMPILE_ABLAS 3452 #define AE_COMPILE_ORTFAC 3453 #define AE_COMPILE_MATGEN 3454 #define AE_COMPILE_SPARSE 3455 #define AE_COMPILE_BLAS 3456 #define AE_COMPILE_ROTATIONS 3457 #define AE_COMPILE_HSSCHUR 3458 #define AE_COMPILE_BASICSTATOPS 3459 #define AE_COMPILE_EVD 3460 #define AE_COMPILE_GAMMAFUNC 3461 #define AE_COMPILE_GQ 3462 #define AE_COMPILE_GKQ 3463 #endif 3464 3465 #ifdef AE_COMPILE_NTHEORY 3466 #define AE_PARTIAL_BUILD 3467 #endif 3468 3469 #ifdef AE_COMPILE_FTBASE 3470 #define AE_PARTIAL_BUILD 3471 #define AE_COMPILE_APSERV 3472 #define AE_COMPILE_NTHEORY 3473 #endif 3474 3475 #ifdef AE_COMPILE_FFT 3476 #define AE_PARTIAL_BUILD 3477 #define AE_COMPILE_APSERV 3478 #define AE_COMPILE_NTHEORY 3479 #define AE_COMPILE_FTBASE 3480 #endif 3481 3482 #ifdef AE_COMPILE_FHT 3483 #define AE_PARTIAL_BUILD 3484 #define AE_COMPILE_APSERV 3485 #define AE_COMPILE_NTHEORY 3486 #define AE_COMPILE_FTBASE 3487 #define AE_COMPILE_FFT 3488 #endif 3489 3490 #ifdef AE_COMPILE_CONV 3491 #define AE_PARTIAL_BUILD 3492 #define AE_COMPILE_APSERV 3493 #define AE_COMPILE_NTHEORY 3494 #define AE_COMPILE_FTBASE 3495 #define AE_COMPILE_FFT 3496 #endif 3497 3498 #ifdef AE_COMPILE_CORR 3499 #define AE_PARTIAL_BUILD 3500 #define AE_COMPILE_APSERV 3501 #define AE_COMPILE_NTHEORY 3502 #define AE_COMPILE_FTBASE 3503 #define AE_COMPILE_FFT 3504 #define AE_COMPILE_CONV 3505 #endif 3506 3507 #ifdef AE_COMPILE_IDW 3508 #define AE_PARTIAL_BUILD 3509 #define AE_COMPILE_SCODES 3510 #define AE_COMPILE_APSERV 3511 #define AE_COMPILE_TSORT 3512 #define AE_COMPILE_NEARESTNEIGHBOR 3513 #define AE_COMPILE_HQRND 3514 #define AE_COMPILE_ABLASF 3515 #define AE_COMPILE_ABLASMKL 3516 #define AE_COMPILE_ABLAS 3517 #endif 3518 3519 #ifdef AE_COMPILE_RATINT 3520 #define AE_PARTIAL_BUILD 3521 #define AE_COMPILE_APSERV 3522 #define AE_COMPILE_TSORT 3523 #endif 3524 3525 #ifdef AE_COMPILE_FITSPHERE 3526 #define AE_PARTIAL_BUILD 3527 #define AE_COMPILE_LINMIN 3528 #define AE_COMPILE_APSERV 3529 #define AE_COMPILE_TSORT 3530 #define AE_COMPILE_OPTGUARDAPI 3531 #define AE_COMPILE_ABLASF 3532 #define AE_COMPILE_ABLASMKL 3533 #define AE_COMPILE_ABLAS 3534 #define AE_COMPILE_CREFLECTIONS 3535 #define AE_COMPILE_HQRND 3536 #define AE_COMPILE_MATGEN 3537 #define AE_COMPILE_SPARSE 3538 #define AE_COMPILE_DLU 3539 #define AE_COMPILE_SPTRF 3540 #define AE_COMPILE_ROTATIONS 3541 #define AE_COMPILE_TRFAC 3542 #define AE_COMPILE_TRLINSOLVE 3543 #define AE_COMPILE_SAFESOLVE 3544 #define AE_COMPILE_RCOND 3545 #define AE_COMPILE_MATINV 3546 #define AE_COMPILE_HBLAS 3547 #define AE_COMPILE_SBLAS 3548 #define AE_COMPILE_ORTFAC 3549 #define AE_COMPILE_BLAS 3550 #define AE_COMPILE_BDSVD 3551 #define AE_COMPILE_SVD 3552 #define AE_COMPILE_OPTSERV 3553 #define AE_COMPILE_FBLS 3554 #define AE_COMPILE_CQMODELS 3555 #define AE_COMPILE_SNNLS 3556 #define AE_COMPILE_SACTIVESETS 3557 #define AE_COMPILE_MINBLEIC 3558 #define AE_COMPILE_XBLAS 3559 #define AE_COMPILE_DIRECTDENSESOLVERS 3560 #define AE_COMPILE_NORMESTIMATOR 3561 #define AE_COMPILE_LINLSQR 3562 #define AE_COMPILE_MINLBFGS 3563 #define AE_COMPILE_QQPSOLVER 3564 #define AE_COMPILE_QPDENSEAULSOLVER 3565 #define AE_COMPILE_QPBLEICSOLVER 3566 #define AE_COMPILE_MINQP 3567 #define AE_COMPILE_MINLM 3568 #define AE_COMPILE_REVISEDDUALSIMPLEX 3569 #define AE_COMPILE_NLCSLP 3570 #define AE_COMPILE_MINNLC 3571 #endif 3572 3573 #ifdef AE_COMPILE_INTFITSERV 3574 #define AE_PARTIAL_BUILD 3575 #define AE_COMPILE_APSERV 3576 #define AE_COMPILE_ABLASF 3577 #define AE_COMPILE_ABLASMKL 3578 #define AE_COMPILE_ABLAS 3579 #define AE_COMPILE_HQRND 3580 #define AE_COMPILE_TSORT 3581 #define AE_COMPILE_SPARSE 3582 #define AE_COMPILE_DLU 3583 #define AE_COMPILE_SPTRF 3584 #define AE_COMPILE_CREFLECTIONS 3585 #define AE_COMPILE_MATGEN 3586 #define AE_COMPILE_ROTATIONS 3587 #define AE_COMPILE_TRFAC 3588 #endif 3589 3590 #ifdef AE_COMPILE_SPLINE1D 3591 #define AE_PARTIAL_BUILD 3592 #define AE_COMPILE_APSERV 3593 #define AE_COMPILE_TSORT 3594 #define AE_COMPILE_ABLASF 3595 #define AE_COMPILE_ABLASMKL 3596 #define AE_COMPILE_ABLAS 3597 #define AE_COMPILE_HQRND 3598 #define AE_COMPILE_SPARSE 3599 #define AE_COMPILE_DLU 3600 #define AE_COMPILE_SPTRF 3601 #define AE_COMPILE_CREFLECTIONS 3602 #define AE_COMPILE_MATGEN 3603 #define AE_COMPILE_ROTATIONS 3604 #define AE_COMPILE_TRFAC 3605 #define AE_COMPILE_INTFITSERV 3606 #define AE_COMPILE_HBLAS 3607 #define AE_COMPILE_SBLAS 3608 #define AE_COMPILE_ORTFAC 3609 #define AE_COMPILE_FBLS 3610 #endif 3611 3612 #ifdef AE_COMPILE_PARAMETRIC 3613 #define AE_PARTIAL_BUILD 3614 #define AE_COMPILE_APSERV 3615 #define AE_COMPILE_HQRND 3616 #define AE_COMPILE_TSORT 3617 #define AE_COMPILE_ABLASF 3618 #define AE_COMPILE_ABLASMKL 3619 #define AE_COMPILE_ABLAS 3620 #define AE_COMPILE_SPARSE 3621 #define AE_COMPILE_DLU 3622 #define AE_COMPILE_SPTRF 3623 #define AE_COMPILE_CREFLECTIONS 3624 #define AE_COMPILE_MATGEN 3625 #define AE_COMPILE_ROTATIONS 3626 #define AE_COMPILE_TRFAC 3627 #define AE_COMPILE_INTFITSERV 3628 #define AE_COMPILE_HBLAS 3629 #define AE_COMPILE_SBLAS 3630 #define AE_COMPILE_ORTFAC 3631 #define AE_COMPILE_FBLS 3632 #define AE_COMPILE_SPLINE1D 3633 #define AE_COMPILE_BLAS 3634 #define AE_COMPILE_HSSCHUR 3635 #define AE_COMPILE_BASICSTATOPS 3636 #define AE_COMPILE_EVD 3637 #define AE_COMPILE_GAMMAFUNC 3638 #define AE_COMPILE_GQ 3639 #define AE_COMPILE_GKQ 3640 #define AE_COMPILE_AUTOGK 3641 #endif 3642 3643 #ifdef AE_COMPILE_SPLINE3D 3644 #define AE_PARTIAL_BUILD 3645 #define AE_COMPILE_APSERV 3646 #define AE_COMPILE_TSORT 3647 #define AE_COMPILE_ABLASF 3648 #define AE_COMPILE_ABLASMKL 3649 #define AE_COMPILE_ABLAS 3650 #define AE_COMPILE_HQRND 3651 #define AE_COMPILE_SPARSE 3652 #define AE_COMPILE_DLU 3653 #define AE_COMPILE_SPTRF 3654 #define AE_COMPILE_CREFLECTIONS 3655 #define AE_COMPILE_MATGEN 3656 #define AE_COMPILE_ROTATIONS 3657 #define AE_COMPILE_TRFAC 3658 #define AE_COMPILE_INTFITSERV 3659 #define AE_COMPILE_HBLAS 3660 #define AE_COMPILE_SBLAS 3661 #define AE_COMPILE_ORTFAC 3662 #define AE_COMPILE_FBLS 3663 #define AE_COMPILE_SPLINE1D 3664 #endif 3665 3666 #ifdef AE_COMPILE_POLINT 3667 #define AE_PARTIAL_BUILD 3668 #define AE_COMPILE_APSERV 3669 #define AE_COMPILE_TSORT 3670 #define AE_COMPILE_RATINT 3671 #endif 3672 3673 #ifdef AE_COMPILE_LSFIT 3674 #define AE_PARTIAL_BUILD 3675 #define AE_COMPILE_APSERV 3676 #define AE_COMPILE_ABLASF 3677 #define AE_COMPILE_ABLASMKL 3678 #define AE_COMPILE_ABLAS 3679 #define AE_COMPILE_HQRND 3680 #define AE_COMPILE_TSORT 3681 #define AE_COMPILE_SPARSE 3682 #define AE_COMPILE_DLU 3683 #define AE_COMPILE_SPTRF 3684 #define AE_COMPILE_CREFLECTIONS 3685 #define AE_COMPILE_MATGEN 3686 #define AE_COMPILE_ROTATIONS 3687 #define AE_COMPILE_TRFAC 3688 #define AE_COMPILE_INTFITSERV 3689 #define AE_COMPILE_RATINT 3690 #define AE_COMPILE_POLINT 3691 #define AE_COMPILE_HBLAS 3692 #define AE_COMPILE_SBLAS 3693 #define AE_COMPILE_ORTFAC 3694 #define AE_COMPILE_FBLS 3695 #define AE_COMPILE_SPLINE1D 3696 #define AE_COMPILE_OPTGUARDAPI 3697 #define AE_COMPILE_TRLINSOLVE 3698 #define AE_COMPILE_SAFESOLVE 3699 #define AE_COMPILE_RCOND 3700 #define AE_COMPILE_MATINV 3701 #define AE_COMPILE_BLAS 3702 #define AE_COMPILE_BDSVD 3703 #define AE_COMPILE_SVD 3704 #define AE_COMPILE_OPTSERV 3705 #define AE_COMPILE_XBLAS 3706 #define AE_COMPILE_DIRECTDENSESOLVERS 3707 #define AE_COMPILE_NORMESTIMATOR 3708 #define AE_COMPILE_LINLSQR 3709 #define AE_COMPILE_LINMIN 3710 #define AE_COMPILE_MINLBFGS 3711 #define AE_COMPILE_CQMODELS 3712 #define AE_COMPILE_SNNLS 3713 #define AE_COMPILE_SACTIVESETS 3714 #define AE_COMPILE_QQPSOLVER 3715 #define AE_COMPILE_QPDENSEAULSOLVER 3716 #define AE_COMPILE_MINBLEIC 3717 #define AE_COMPILE_QPBLEICSOLVER 3718 #define AE_COMPILE_MINQP 3719 #define AE_COMPILE_MINLM 3720 #endif 3721 3722 #ifdef AE_COMPILE_RBFV2 3723 #define AE_PARTIAL_BUILD 3724 #define AE_COMPILE_SCODES 3725 #define AE_COMPILE_APSERV 3726 #define AE_COMPILE_TSORT 3727 #define AE_COMPILE_NEARESTNEIGHBOR 3728 #define AE_COMPILE_ABLASF 3729 #define AE_COMPILE_ABLASMKL 3730 #define AE_COMPILE_ABLAS 3731 #define AE_COMPILE_HQRND 3732 #define AE_COMPILE_SPARSE 3733 #define AE_COMPILE_DLU 3734 #define AE_COMPILE_SPTRF 3735 #define AE_COMPILE_CREFLECTIONS 3736 #define AE_COMPILE_MATGEN 3737 #define AE_COMPILE_ROTATIONS 3738 #define AE_COMPILE_TRFAC 3739 #define AE_COMPILE_INTFITSERV 3740 #define AE_COMPILE_RATINT 3741 #define AE_COMPILE_POLINT 3742 #define AE_COMPILE_HBLAS 3743 #define AE_COMPILE_SBLAS 3744 #define AE_COMPILE_ORTFAC 3745 #define AE_COMPILE_FBLS 3746 #define AE_COMPILE_SPLINE1D 3747 #define AE_COMPILE_OPTGUARDAPI 3748 #define AE_COMPILE_TRLINSOLVE 3749 #define AE_COMPILE_SAFESOLVE 3750 #define AE_COMPILE_RCOND 3751 #define AE_COMPILE_MATINV 3752 #define AE_COMPILE_BLAS 3753 #define AE_COMPILE_BDSVD 3754 #define AE_COMPILE_SVD 3755 #define AE_COMPILE_OPTSERV 3756 #define AE_COMPILE_XBLAS 3757 #define AE_COMPILE_DIRECTDENSESOLVERS 3758 #define AE_COMPILE_NORMESTIMATOR 3759 #define AE_COMPILE_LINLSQR 3760 #define AE_COMPILE_LINMIN 3761 #define AE_COMPILE_MINLBFGS 3762 #define AE_COMPILE_CQMODELS 3763 #define AE_COMPILE_SNNLS 3764 #define AE_COMPILE_SACTIVESETS 3765 #define AE_COMPILE_QQPSOLVER 3766 #define AE_COMPILE_QPDENSEAULSOLVER 3767 #define AE_COMPILE_MINBLEIC 3768 #define AE_COMPILE_QPBLEICSOLVER 3769 #define AE_COMPILE_MINQP 3770 #define AE_COMPILE_MINLM 3771 #define AE_COMPILE_LSFIT 3772 #endif 3773 3774 #ifdef AE_COMPILE_SPLINE2D 3775 #define AE_PARTIAL_BUILD 3776 #define AE_COMPILE_APSERV 3777 #define AE_COMPILE_SCODES 3778 #define AE_COMPILE_ABLASF 3779 #define AE_COMPILE_ABLASMKL 3780 #define AE_COMPILE_ABLAS 3781 #define AE_COMPILE_HQRND 3782 #define AE_COMPILE_TSORT 3783 #define AE_COMPILE_SPARSE 3784 #define AE_COMPILE_DLU 3785 #define AE_COMPILE_SPTRF 3786 #define AE_COMPILE_CREFLECTIONS 3787 #define AE_COMPILE_MATGEN 3788 #define AE_COMPILE_ROTATIONS 3789 #define AE_COMPILE_TRFAC 3790 #define AE_COMPILE_INTFITSERV 3791 #define AE_COMPILE_NORMESTIMATOR 3792 #define AE_COMPILE_HBLAS 3793 #define AE_COMPILE_SBLAS 3794 #define AE_COMPILE_ORTFAC 3795 #define AE_COMPILE_BLAS 3796 #define AE_COMPILE_BDSVD 3797 #define AE_COMPILE_SVD 3798 #define AE_COMPILE_LINLSQR 3799 #define AE_COMPILE_FBLS 3800 #define AE_COMPILE_SPLINE1D 3801 #endif 3802 3803 #ifdef AE_COMPILE_RBFV1 3804 #define AE_PARTIAL_BUILD 3805 #define AE_COMPILE_SCODES 3806 #define AE_COMPILE_APSERV 3807 #define AE_COMPILE_TSORT 3808 #define AE_COMPILE_NEARESTNEIGHBOR 3809 #define AE_COMPILE_ABLASF 3810 #define AE_COMPILE_ABLASMKL 3811 #define AE_COMPILE_ABLAS 3812 #define AE_COMPILE_HQRND 3813 #define AE_COMPILE_SPARSE 3814 #define AE_COMPILE_DLU 3815 #define AE_COMPILE_SPTRF 3816 #define AE_COMPILE_CREFLECTIONS 3817 #define AE_COMPILE_MATGEN 3818 #define AE_COMPILE_ROTATIONS 3819 #define AE_COMPILE_TRFAC 3820 #define AE_COMPILE_INTFITSERV 3821 #define AE_COMPILE_RATINT 3822 #define AE_COMPILE_POLINT 3823 #define AE_COMPILE_HBLAS 3824 #define AE_COMPILE_SBLAS 3825 #define AE_COMPILE_ORTFAC 3826 #define AE_COMPILE_FBLS 3827 #define AE_COMPILE_SPLINE1D 3828 #define AE_COMPILE_OPTGUARDAPI 3829 #define AE_COMPILE_TRLINSOLVE 3830 #define AE_COMPILE_SAFESOLVE 3831 #define AE_COMPILE_RCOND 3832 #define AE_COMPILE_MATINV 3833 #define AE_COMPILE_BLAS 3834 #define AE_COMPILE_BDSVD 3835 #define AE_COMPILE_SVD 3836 #define AE_COMPILE_OPTSERV 3837 #define AE_COMPILE_XBLAS 3838 #define AE_COMPILE_DIRECTDENSESOLVERS 3839 #define AE_COMPILE_NORMESTIMATOR 3840 #define AE_COMPILE_LINLSQR 3841 #define AE_COMPILE_LINMIN 3842 #define AE_COMPILE_MINLBFGS 3843 #define AE_COMPILE_CQMODELS 3844 #define AE_COMPILE_SNNLS 3845 #define AE_COMPILE_SACTIVESETS 3846 #define AE_COMPILE_QQPSOLVER 3847 #define AE_COMPILE_QPDENSEAULSOLVER 3848 #define AE_COMPILE_MINBLEIC 3849 #define AE_COMPILE_QPBLEICSOLVER 3850 #define AE_COMPILE_MINQP 3851 #define AE_COMPILE_MINLM 3852 #define AE_COMPILE_LSFIT 3853 #endif 3854 3855 #ifdef AE_COMPILE_RBF 3856 #define AE_PARTIAL_BUILD 3857 #define AE_COMPILE_SCODES 3858 #define AE_COMPILE_APSERV 3859 #define AE_COMPILE_TSORT 3860 #define AE_COMPILE_NEARESTNEIGHBOR 3861 #define AE_COMPILE_ABLASF 3862 #define AE_COMPILE_ABLASMKL 3863 #define AE_COMPILE_ABLAS 3864 #define AE_COMPILE_HQRND 3865 #define AE_COMPILE_SPARSE 3866 #define AE_COMPILE_DLU 3867 #define AE_COMPILE_SPTRF 3868 #define AE_COMPILE_CREFLECTIONS 3869 #define AE_COMPILE_MATGEN 3870 #define AE_COMPILE_ROTATIONS 3871 #define AE_COMPILE_TRFAC 3872 #define AE_COMPILE_INTFITSERV 3873 #define AE_COMPILE_RATINT 3874 #define AE_COMPILE_POLINT 3875 #define AE_COMPILE_HBLAS 3876 #define AE_COMPILE_SBLAS 3877 #define AE_COMPILE_ORTFAC 3878 #define AE_COMPILE_FBLS 3879 #define AE_COMPILE_SPLINE1D 3880 #define AE_COMPILE_OPTGUARDAPI 3881 #define AE_COMPILE_TRLINSOLVE 3882 #define AE_COMPILE_SAFESOLVE 3883 #define AE_COMPILE_RCOND 3884 #define AE_COMPILE_MATINV 3885 #define AE_COMPILE_BLAS 3886 #define AE_COMPILE_BDSVD 3887 #define AE_COMPILE_SVD 3888 #define AE_COMPILE_OPTSERV 3889 #define AE_COMPILE_XBLAS 3890 #define AE_COMPILE_DIRECTDENSESOLVERS 3891 #define AE_COMPILE_NORMESTIMATOR 3892 #define AE_COMPILE_LINLSQR 3893 #define AE_COMPILE_LINMIN 3894 #define AE_COMPILE_MINLBFGS 3895 #define AE_COMPILE_CQMODELS 3896 #define AE_COMPILE_SNNLS 3897 #define AE_COMPILE_SACTIVESETS 3898 #define AE_COMPILE_QQPSOLVER 3899 #define AE_COMPILE_QPDENSEAULSOLVER 3900 #define AE_COMPILE_MINBLEIC 3901 #define AE_COMPILE_QPBLEICSOLVER 3902 #define AE_COMPILE_MINQP 3903 #define AE_COMPILE_MINLM 3904 #define AE_COMPILE_LSFIT 3905 #define AE_COMPILE_RBFV1 3906 #define AE_COMPILE_RBFV2 3907 #endif 3908 3909 #ifdef AE_COMPILE_INTCOMP 3910 #define AE_PARTIAL_BUILD 3911 #define AE_COMPILE_LINMIN 3912 #define AE_COMPILE_APSERV 3913 #define AE_COMPILE_TSORT 3914 #define AE_COMPILE_OPTGUARDAPI 3915 #define AE_COMPILE_ABLASF 3916 #define AE_COMPILE_ABLASMKL 3917 #define AE_COMPILE_ABLAS 3918 #define AE_COMPILE_CREFLECTIONS 3919 #define AE_COMPILE_HQRND 3920 #define AE_COMPILE_MATGEN 3921 #define AE_COMPILE_SPARSE 3922 #define AE_COMPILE_DLU 3923 #define AE_COMPILE_SPTRF 3924 #define AE_COMPILE_ROTATIONS 3925 #define AE_COMPILE_TRFAC 3926 #define AE_COMPILE_TRLINSOLVE 3927 #define AE_COMPILE_SAFESOLVE 3928 #define AE_COMPILE_RCOND 3929 #define AE_COMPILE_MATINV 3930 #define AE_COMPILE_HBLAS 3931 #define AE_COMPILE_SBLAS 3932 #define AE_COMPILE_ORTFAC 3933 #define AE_COMPILE_BLAS 3934 #define AE_COMPILE_BDSVD 3935 #define AE_COMPILE_SVD 3936 #define AE_COMPILE_OPTSERV 3937 #define AE_COMPILE_FBLS 3938 #define AE_COMPILE_CQMODELS 3939 #define AE_COMPILE_SNNLS 3940 #define AE_COMPILE_SACTIVESETS 3941 #define AE_COMPILE_MINBLEIC 3942 #define AE_COMPILE_XBLAS 3943 #define AE_COMPILE_DIRECTDENSESOLVERS 3944 #define AE_COMPILE_NORMESTIMATOR 3945 #define AE_COMPILE_LINLSQR 3946 #define AE_COMPILE_MINLBFGS 3947 #define AE_COMPILE_QQPSOLVER 3948 #define AE_COMPILE_QPDENSEAULSOLVER 3949 #define AE_COMPILE_QPBLEICSOLVER 3950 #define AE_COMPILE_MINQP 3951 #define AE_COMPILE_MINLM 3952 #define AE_COMPILE_REVISEDDUALSIMPLEX 3953 #define AE_COMPILE_NLCSLP 3954 #define AE_COMPILE_MINNLC 3955 #define AE_COMPILE_FITSPHERE 3956 #endif 3957 3958 #ifdef AE_COMPILE_ELLIPTIC 3959 #define AE_PARTIAL_BUILD 3960 #endif 3961 3962 #ifdef AE_COMPILE_HERMITE 3963 #define AE_PARTIAL_BUILD 3964 #endif 3965 3966 #ifdef AE_COMPILE_DAWSON 3967 #define AE_PARTIAL_BUILD 3968 #endif 3969 3970 #ifdef AE_COMPILE_TRIGINTEGRALS 3971 #define AE_PARTIAL_BUILD 3972 #endif 3973 3974 #ifdef AE_COMPILE_POISSONDISTR 3975 #define AE_PARTIAL_BUILD 3976 #define AE_COMPILE_GAMMAFUNC 3977 #define AE_COMPILE_NORMALDISTR 3978 #define AE_COMPILE_IGAMMAF 3979 #endif 3980 3981 #ifdef AE_COMPILE_BESSEL 3982 #define AE_PARTIAL_BUILD 3983 #endif 3984 3985 #ifdef AE_COMPILE_IBETAF 3986 #define AE_PARTIAL_BUILD 3987 #define AE_COMPILE_GAMMAFUNC 3988 #define AE_COMPILE_NORMALDISTR 3989 #endif 3990 3991 #ifdef AE_COMPILE_FDISTR 3992 #define AE_PARTIAL_BUILD 3993 #define AE_COMPILE_GAMMAFUNC 3994 #define AE_COMPILE_NORMALDISTR 3995 #define AE_COMPILE_IBETAF 3996 #endif 3997 3998 #ifdef AE_COMPILE_FRESNEL 3999 #define AE_PARTIAL_BUILD 4000 #endif 4001 4002 #ifdef AE_COMPILE_JACOBIANELLIPTIC 4003 #define AE_PARTIAL_BUILD 4004 #endif 4005 4006 #ifdef AE_COMPILE_PSIF 4007 #define AE_PARTIAL_BUILD 4008 #endif 4009 4010 #ifdef AE_COMPILE_EXPINTEGRALS 4011 #define AE_PARTIAL_BUILD 4012 #endif 4013 4014 #ifdef AE_COMPILE_LAGUERRE 4015 #define AE_PARTIAL_BUILD 4016 #endif 4017 4018 #ifdef AE_COMPILE_CHISQUAREDISTR 4019 #define AE_PARTIAL_BUILD 4020 #define AE_COMPILE_GAMMAFUNC 4021 #define AE_COMPILE_NORMALDISTR 4022 #define AE_COMPILE_IGAMMAF 4023 #endif 4024 4025 #ifdef AE_COMPILE_LEGENDRE 4026 #define AE_PARTIAL_BUILD 4027 #endif 4028 4029 #ifdef AE_COMPILE_BETAF 4030 #define AE_PARTIAL_BUILD 4031 #define AE_COMPILE_GAMMAFUNC 4032 #endif 4033 4034 #ifdef AE_COMPILE_CHEBYSHEV 4035 #define AE_PARTIAL_BUILD 4036 #endif 4037 4038 #ifdef AE_COMPILE_STUDENTTDISTR 4039 #define AE_PARTIAL_BUILD 4040 #define AE_COMPILE_GAMMAFUNC 4041 #define AE_COMPILE_NORMALDISTR 4042 #define AE_COMPILE_IBETAF 4043 #endif 4044 4045 #ifdef AE_COMPILE_NEARUNITYUNIT 4046 #define AE_PARTIAL_BUILD 4047 #endif 4048 4049 #ifdef AE_COMPILE_BINOMIALDISTR 4050 #define AE_PARTIAL_BUILD 4051 #define AE_COMPILE_GAMMAFUNC 4052 #define AE_COMPILE_NORMALDISTR 4053 #define AE_COMPILE_IBETAF 4054 #define AE_COMPILE_NEARUNITYUNIT 4055 #endif 4056 4057 #ifdef AE_COMPILE_AIRYF 4058 #define AE_PARTIAL_BUILD 4059 #endif 4060 4061 #ifdef AE_COMPILE_WSR 4062 #define AE_PARTIAL_BUILD 4063 #define AE_COMPILE_APSERV 4064 #endif 4065 4066 #ifdef AE_COMPILE_STEST 4067 #define AE_PARTIAL_BUILD 4068 #define AE_COMPILE_GAMMAFUNC 4069 #define AE_COMPILE_NORMALDISTR 4070 #define AE_COMPILE_IBETAF 4071 #define AE_COMPILE_NEARUNITYUNIT 4072 #define AE_COMPILE_BINOMIALDISTR 4073 #endif 4074 4075 #ifdef AE_COMPILE_CORRELATIONTESTS 4076 #define AE_PARTIAL_BUILD 4077 #define AE_COMPILE_GAMMAFUNC 4078 #define AE_COMPILE_NORMALDISTR 4079 #define AE_COMPILE_IBETAF 4080 #define AE_COMPILE_STUDENTTDISTR 4081 #define AE_COMPILE_APSERV 4082 #define AE_COMPILE_TSORT 4083 #define AE_COMPILE_BASICSTATOPS 4084 #define AE_COMPILE_ABLASF 4085 #define AE_COMPILE_ABLASMKL 4086 #define AE_COMPILE_ABLAS 4087 #define AE_COMPILE_BASESTAT 4088 #endif 4089 4090 #ifdef AE_COMPILE_STUDENTTTESTS 4091 #define AE_PARTIAL_BUILD 4092 #define AE_COMPILE_APSERV 4093 #define AE_COMPILE_GAMMAFUNC 4094 #define AE_COMPILE_NORMALDISTR 4095 #define AE_COMPILE_IBETAF 4096 #define AE_COMPILE_STUDENTTDISTR 4097 #endif 4098 4099 #ifdef AE_COMPILE_MANNWHITNEYU 4100 #define AE_PARTIAL_BUILD 4101 #define AE_COMPILE_APSERV 4102 #define AE_COMPILE_HQRND 4103 #endif 4104 4105 #ifdef AE_COMPILE_JARQUEBERA 4106 #define AE_PARTIAL_BUILD 4107 #endif 4108 4109 #ifdef AE_COMPILE_VARIANCETESTS 4110 #define AE_PARTIAL_BUILD 4111 #define AE_COMPILE_GAMMAFUNC 4112 #define AE_COMPILE_NORMALDISTR 4113 #define AE_COMPILE_IBETAF 4114 #define AE_COMPILE_FDISTR 4115 #define AE_COMPILE_IGAMMAF 4116 #define AE_COMPILE_CHISQUAREDISTR 4117 #endif 4118 4119 #ifdef AE_COMPILE_SCHUR 4120 #define AE_PARTIAL_BUILD 4121 #define AE_COMPILE_APSERV 4122 #define AE_COMPILE_HQRND 4123 #define AE_COMPILE_HBLAS 4124 #define AE_COMPILE_CREFLECTIONS 4125 #define AE_COMPILE_SBLAS 4126 #define AE_COMPILE_ABLASF 4127 #define AE_COMPILE_ABLASMKL 4128 #define AE_COMPILE_ABLAS 4129 #define AE_COMPILE_ORTFAC 4130 #define AE_COMPILE_BLAS 4131 #define AE_COMPILE_ROTATIONS 4132 #define AE_COMPILE_HSSCHUR 4133 #endif 4134 4135 #ifdef AE_COMPILE_SPDGEVD 4136 #define AE_PARTIAL_BUILD 4137 #define AE_COMPILE_APSERV 4138 #define AE_COMPILE_ABLASF 4139 #define AE_COMPILE_ABLASMKL 4140 #define AE_COMPILE_ABLAS 4141 #define AE_COMPILE_HQRND 4142 #define AE_COMPILE_TSORT 4143 #define AE_COMPILE_SPARSE 4144 #define AE_COMPILE_DLU 4145 #define AE_COMPILE_SPTRF 4146 #define AE_COMPILE_CREFLECTIONS 4147 #define AE_COMPILE_MATGEN 4148 #define AE_COMPILE_ROTATIONS 4149 #define AE_COMPILE_TRFAC 4150 #define AE_COMPILE_SBLAS 4151 #define AE_COMPILE_BLAS 4152 #define AE_COMPILE_TRLINSOLVE 4153 #define AE_COMPILE_SAFESOLVE 4154 #define AE_COMPILE_RCOND 4155 #define AE_COMPILE_MATINV 4156 #define AE_COMPILE_HBLAS 4157 #define AE_COMPILE_ORTFAC 4158 #define AE_COMPILE_HSSCHUR 4159 #define AE_COMPILE_BASICSTATOPS 4160 #define AE_COMPILE_EVD 4161 #endif 4162 4163 #ifdef AE_COMPILE_INVERSEUPDATE 4164 #define AE_PARTIAL_BUILD 4165 #endif 4166 4167 #ifdef AE_COMPILE_MATDET 4168 #define AE_PARTIAL_BUILD 4169 #define AE_COMPILE_APSERV 4170 #define AE_COMPILE_ABLASF 4171 #define AE_COMPILE_ABLASMKL 4172 #define AE_COMPILE_ABLAS 4173 #define AE_COMPILE_HQRND 4174 #define AE_COMPILE_TSORT 4175 #define AE_COMPILE_SPARSE 4176 #define AE_COMPILE_DLU 4177 #define AE_COMPILE_SPTRF 4178 #define AE_COMPILE_CREFLECTIONS 4179 #define AE_COMPILE_MATGEN 4180 #define AE_COMPILE_ROTATIONS 4181 #define AE_COMPILE_TRFAC 4182 #endif 4183 4184 #ifdef AE_COMPILE_POLYNOMIALSOLVER 4185 #define AE_PARTIAL_BUILD 4186 #define AE_COMPILE_APSERV 4187 #define AE_COMPILE_HQRND 4188 #define AE_COMPILE_HBLAS 4189 #define AE_COMPILE_CREFLECTIONS 4190 #define AE_COMPILE_SBLAS 4191 #define AE_COMPILE_ABLASF 4192 #define AE_COMPILE_ABLASMKL 4193 #define AE_COMPILE_ABLAS 4194 #define AE_COMPILE_ORTFAC 4195 #define AE_COMPILE_MATGEN 4196 #define AE_COMPILE_TSORT 4197 #define AE_COMPILE_SPARSE 4198 #define AE_COMPILE_BLAS 4199 #define AE_COMPILE_ROTATIONS 4200 #define AE_COMPILE_HSSCHUR 4201 #define AE_COMPILE_BASICSTATOPS 4202 #define AE_COMPILE_EVD 4203 #define AE_COMPILE_DLU 4204 #define AE_COMPILE_SPTRF 4205 #define AE_COMPILE_TRFAC 4206 #endif 4207 4208 #ifdef AE_COMPILE_NLEQ 4209 #define AE_PARTIAL_BUILD 4210 #define AE_COMPILE_APSERV 4211 #define AE_COMPILE_LINMIN 4212 #define AE_COMPILE_ABLASF 4213 #define AE_COMPILE_ABLASMKL 4214 #define AE_COMPILE_ABLAS 4215 #define AE_COMPILE_HQRND 4216 #define AE_COMPILE_HBLAS 4217 #define AE_COMPILE_CREFLECTIONS 4218 #define AE_COMPILE_SBLAS 4219 #define AE_COMPILE_ORTFAC 4220 #define AE_COMPILE_FBLS 4221 #endif 4222 4223 #ifdef AE_COMPILE_DIRECTSPARSESOLVERS 4224 #define AE_PARTIAL_BUILD 4225 #define AE_COMPILE_APSERV 4226 #define AE_COMPILE_ABLASMKL 4227 #define AE_COMPILE_HQRND 4228 #define AE_COMPILE_TSORT 4229 #define AE_COMPILE_SPARSE 4230 #define AE_COMPILE_ABLASF 4231 #define AE_COMPILE_ABLAS 4232 #define AE_COMPILE_DLU 4233 #define AE_COMPILE_SPTRF 4234 #define AE_COMPILE_CREFLECTIONS 4235 #define AE_COMPILE_MATGEN 4236 #define AE_COMPILE_ROTATIONS 4237 #define AE_COMPILE_TRFAC 4238 #endif 4239 4240 #ifdef AE_COMPILE_LINCG 4241 #define AE_PARTIAL_BUILD 4242 #define AE_COMPILE_APSERV 4243 #define AE_COMPILE_ABLASMKL 4244 #define AE_COMPILE_HQRND 4245 #define AE_COMPILE_TSORT 4246 #define AE_COMPILE_SPARSE 4247 #define AE_COMPILE_ABLASF 4248 #define AE_COMPILE_ABLAS 4249 #define AE_COMPILE_CREFLECTIONS 4250 #define AE_COMPILE_MATGEN 4251 #endif 4252 4253 #ifdef AE_COMPILE_ALGLIBBASICS 4254 #define AE_PARTIAL_BUILD 4255 #endif 4256 4257 4258 4259 #endif 4260 4261