mathlib-toeplitz.c
1 //! @file mathlib-toeplitz.c
2 //
3 //! @section copyright
4 //
5 // This file is part of VIF - vintage fortran compiler.
6 // Copyright 2020-2025 J. Marcel van der Veer <algol68g@xs4all.nl>.
7 //
8 //! @section license
9 //
10 // This program is free software; you can redistribute it and/or modify it
11 // under the terms of the gnu general public license as published by the
12 // free software foundation; either version 3 of the license, or
13 // (at your option) any later version.
14 //
15 // This program is distributed in the hope that it will be useful, but
16 // without any warranty; without even the implied warranty of merchantability
17 // or fitness for a particular purpose. See the GNU general public license for
18 // more details. you should have received a copy of the GNU general public
19 // license along with this program. If not, see <http://www.gnu.org/licenses/>.
20 //
21 //! @Synopsis
22 //
23 //! 19 subprograms from TOEPLITZ
24
25 // Compiled from Fortran source code by VIF.
26 // Selected subprograms are:
27 //
28 // CCCSLZ CCSLZ CGSLZ CQRZ CTGSLZ SALWZ TGSLD1 TGSLZ1 TSLD1 TSLZ1
29 // CCGSLZ CCTSLZ CQRD CSLZ CTSLZ TGSLD TGSLZ TSLD TSLZ
30
31 // TOEPLITZ solves a variety of Toeplitz and circulant linear systems. The package can also handle
32 // circulant Toeplitz systems, and some other more complicated but related forms. The package was
33 // written in the early 1980's by a joint working group of American and Soviet mathematicians.
34 //
35 // The package lives on for instance as a Python package.
36 //
37 // Reference:
38 // Oleg Arushanian, MK Samarin, Valentin Voevodin, Evgeny Tyrtyshnikov,
39 // Burton Garbow, James Boyle, Wayne Cowell, Kenneth Dritz.
40 // The TOEPLITZ Package User's Guide.
41 // Argonne National Laboratory.
42 // ANL-83-16, 1983.
43
44 // The license for TOEPLITZ Fortran source code is:
45 //
46 // TOEPLITZ can be obtained from:
47 // https://people.sc.fsu.edu/~jburkardt/f77_src/toeplitz/toeplitz.html
48 // distributed under MIT license.
49 //
50 // The original code can be obtained from:
51 // netlib.org/toeplitz
52 //
53 //
54 // MIT License
55 //
56 // Permission is hereby granted, free of charge, to any person obtaining a copy
57 // of this software and associated documentation files (the "Software"), to deal
58 // in the Software without restriction, including without limitation the rights
59 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
60 // copies of the Software, and to permit persons to whom the Software is
61 // furnished to do so, subject to the following conditions:
62 //
63 // The above copyright notice and this permission notice shall be included in all
64 // copies or substantial portions of the Software.
65 //
66 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
67 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
68 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
69 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
70 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
71 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
72 // SOFTWARE.
73 //
74 //
75 // Reference:
76 //
77 // Oleg Arushanian, MK Samarin, Valentin Voevodin, Evgeny Tyrtyshnikov,
78 // Burton Garbow, James Boyle, Wayne Cowell, Kenneth Dritz.
79 // The TOEPLITZ Package User's Guide.
80 // Argonne National Laboratory.
81 // ANL-83-16, 1983.
82
83 /*
84 Generated by VIF - experimental VIntage Fortran compiler.
85 VIF release 1.2.17
86 */
87 #if defined (__GNUC__)
88 #pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
89 #pragma GCC diagnostic ignored "-Wincompatible-pointer-types"
90 #if (__GNUC__ >= 14)
91 #pragma GCC diagnostic ignored "-Wdeclaration-missing-parameter-type"
92 #pragma GCC diagnostic ignored "-Wimplicit-int"
93 #pragma GCC diagnostic ignored "-Wint-conversion"
94 #pragma GCC diagnostic ignored "-Wreturn-mismatch"
95 #endif
96 #else
97 #error VIF requires GCC
98 #endif
103 static CALLS __calls[__ncalls] = {
104 {"cccslz", 0}, // subroutine
105 {"ccgslz", 0}, // subroutine
106 {"ccslz", 0}, // subroutine
107 {"cctslz", 0}, // subroutine
108 {"cgslz", 0}, // subroutine
109 {"cqrd", 0}, // subroutine
110 {"cqrz", 0}, // subroutine
111 {"cslz", 0}, // subroutine
112 {"ctgslz", 0}, // subroutine
113 {"ctslz", 0}, // subroutine
114 {"salwz", 0}, // subroutine
115 {"tgsld1", 0}, // subroutine
116 {"tgsld", 0}, // subroutine
117 {"tgslz1", 0}, // subroutine
118 {"tgslz", 0}, // subroutine
119 {"tsld1", 0}, // subroutine
120 {"tsld", 0}, // subroutine
121 {"tslz1", 0}, // subroutine
122 {"tslz", 0}, // subroutine
123 {NULL, 0}
124 };
125
127 k_, int_4 _p_ lda_);
129 k_, int_4 _p_ lda_);
131 lda_);
133 k_, int_4 _p_ lda_);
135 lda_);
137 _p_ lds_);
139 ldq_, int_4 _p_ lds_);
142 k_, int_4 _p_ lda_);
144 lda_);
146 _p_ lda_, int_4 _p_ job_);
148 real_8 _p_ r1_, real_8 _p_ r2_, real_8 _p_ r3_, real_8 _p_ r5_, real_8 _p_ r6_, real_8 _p_ r_, int_4 _p_ m_, int_4 _p_
149 l_, int_4 _p_ lda_);
152 c1_, complex_16 _p_ c2_, complex_16 _p_ r1_, complex_16 _p_ r2_, complex_16 _p_ r3_, complex_16 _p_ r5_, complex_16 _p_
153 r6_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_);
155 lda_);
157 int_4 _p_ m_);
160 c1_, complex_16 _p_ c2_, int_4 _p_ m_);
162 int_4 _cccslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ k_, int_4
163 _p_ lda_)
164 { // ** body not listed **
185 }
186
187 int_4 _ccgslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ k_, int_4
188 _p_ lda_)
189 { // ** body not listed **
212 }
213
214 int_4 _ccslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
215 { // ** body not listed **
232 }
233
234 int_4 _cctslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ k_, int_4
235 _p_ lda_)
236 { // ** body not listed **
259 }
260
261 int_4 _cgslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
262 { // ** body not listed **
281 }
282
283 int_4 _cqrd (real_8 _p_ a_, real_8 _p_ q_, real_8 _p_ s_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ ldq_, int_4 _p_ lds_)
284 { // ** body not listed **
332 }
333 int_4 _cqrz (complex_16 _p_ a_, complex_16 _p_ q_, complex_16 _p_ s_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ ldq_, int_4
334 _p_ lds_)
335 { // ** body not listed **
384 }
385
386 int_4 _cslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_)
387 { // ** body not listed **
432 }
433
434 int_4 _ctgslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ k_, int_4
435 _p_ lda_)
436 { // ** body not listed **
459 }
460
461 int_4 _ctslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
462 { // ** body not listed **
480 }
481
482 int_4 _salwz (complex_16 _p_ a_, complex_16 _p_ r1_, complex_16 _p_ r2_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_,
483 int_4 _p_ job_)
484 { // ** body not listed **
520 }
521
522 int_4 _tgsld1 (real_8 _p_ a1_, real_8 _p_ a2_, real_8 _p_ b_, real_8 _p_ x_, real_8 _p_ c1_, real_8 _p_ c2_, real_8 _p_
523 r1_, real_8 _p_ r2_, real_8 _p_ r3_, real_8 _p_ r5_, real_8 _p_ r6_, real_8 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4
524 _p_ lda_)
525 { // ** body not listed **
674 }
675
676 int_4 _tgsld (real_8 _p_ a_, real_8 _p_ x_, real_8 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
677 { // ** body not listed **
691 }
692
693 int_4 _tgslz1 (complex_16 _p_ a1_, complex_16 _p_ a2_, complex_16 _p_ b_, complex_16 _p_ x_, complex_16 _p_ c1_,
694 complex_16 _p_ c2_, complex_16 _p_ r1_, complex_16 _p_ r2_, complex_16 _p_ r3_, complex_16 _p_ r5_, complex_16 _p_ r6_,
695 complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
696 { // ** body not listed **
845 }
846
847 int_4 _tgslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
848 { // ** body not listed **
862 }
863
864 int_4 _tsld1 (real_8 _p_ a1_, real_8 _p_ a2_, real_8 _p_ b_, real_8 _p_ x_, real_8 _p_ c1_, real_8 _p_ c2_, int_4 _p_
865 m_)
866 { // ** body not listed **
919 }
920
921 int_4 _tsld (real_8 _p_ a_, real_8 _p_ x_, real_8 _p_ r_, int_4 _p_ m_)
922 { // ** body not listed **
926 }
927
928 int_4 _tslz1 (complex_16 _p_ a1_, complex_16 _p_ a2_, complex_16 _p_ b_, complex_16 _p_ x_, complex_16 _p_ c1_,
929 complex_16 _p_ c2_, int_4 _p_ m_)
930 { // ** body not listed **
983 }
984
985 int_4 _tslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_)
986 { // ** body not listed **
990 }
991
|
© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)
|