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.1.7
    86  */
    91  static CALLS __calls[__ncalls] = {
    92    {"cccslz", 0}, // subroutine
    93    {"ccgslz", 0}, // subroutine
    94    {"ccslz", 0}, // subroutine
    95    {"cctslz", 0}, // subroutine
    96    {"cgslz", 0}, // subroutine
    97    {"cqrd", 0}, // subroutine
    98    {"cqrz", 0}, // subroutine
    99    {"cslz", 0}, // subroutine
   100    {"ctgslz", 0}, // subroutine
   101    {"ctslz", 0}, // subroutine
   102    {"salwz", 0}, // subroutine
   103    {"tgsld1", 0}, // subroutine
   104    {"tgsld", 0}, // subroutine
   105    {"tgslz1", 0}, // subroutine
   106    {"tgslz", 0}, // subroutine
   107    {"tsld1", 0}, // subroutine
   108    {"tsld", 0}, // subroutine
   109    {"tslz1", 0}, // subroutine
   110    {"tslz", 0}, // subroutine
   111    {NULL, 0}
   112  };
   114  k_, int_4 _p_ lda_);
   116  k_, int_4 _p_ lda_);
   118  lda_);
   120  k_, int_4 _p_ lda_);
   122  lda_);
   124  _p_ lds_);
   126  ldq_, int_4 _p_ lds_);
   129  k_, int_4 _p_ lda_);
   131  lda_);
   133  _p_ lda_, int_4 _p_ job_);
   135  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_ 
   136  l_, int_4 _p_ lda_);
   139  c1_, complex_16 _p_ c2_, complex_16 _p_ r1_, complex_16 _p_ r2_, complex_16 _p_ r3_, complex_16 _p_ r5_, complex_16 _p_ 
   140  r6_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_);
   142  lda_);
   144  int_4 _p_ m_);
   147  c1_, complex_16 _p_ c2_, int_4 _p_ m_);
   149  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 
   150  _p_ lda_)
   151  { // ** body not listed **
   172  }
   173  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 
   174  _p_ lda_)
   175  { // ** body not listed **
   198  }
   199  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_)
   200  { // ** body not listed **
   217  }
   218  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 
   219  _p_ lda_)
   220  { // ** body not listed **
   243  }
   244  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_)
   245  { // ** body not listed **
   264  }
   265  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_)
   266  { // ** body not listed **
   314  }
   315  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 
   316  _p_ lds_)
   317  { // ** body not listed **
   366  }
   367  int_4 _cslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_)
   368  { // ** body not listed **
   413  }
   414  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 
   415  _p_ lda_)
   416  { // ** body not listed **
   439  }
   440  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_)
   441  { // ** body not listed **
   459  }
   460  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_, 
   461  int_4 _p_ job_)
   462  { // ** body not listed **
   498  }
   499  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_ 
   500  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 
   501  _p_ lda_)
   502  { // ** body not listed **
   651  }
   652  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_)
   653  { // ** body not listed **
   667  }
   668  int_4 _tgslz1 (complex_16 _p_ a1_, complex_16 _p_ a2_, complex_16 _p_ b_, complex_16 _p_ x_, complex_16 _p_ c1_, 
   669  complex_16 _p_ c2_, complex_16 _p_ r1_, complex_16 _p_ r2_, complex_16 _p_ r3_, complex_16 _p_ r5_, complex_16 _p_ r6_, 
   670  complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
   671  { // ** body not listed **
   820  }
   821  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_)
   822  { // ** body not listed **
   836  }
   837  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_ 
   838  m_)
   839  { // ** body not listed **
   892  }
   893  int_4 _tsld (real_8 _p_ a_, real_8 _p_ x_, real_8 _p_ r_, int_4 _p_ m_)
   894  { // ** body not listed **
   898  }
   899  int_4 _tslz1 (complex_16 _p_ a1_, complex_16 _p_ a2_, complex_16 _p_ b_, complex_16 _p_ x_, complex_16 _p_ c1_, 
   900  complex_16 _p_ c2_, int_4 _p_ m_)
   901  { // ** body not listed **
   954  }
   955  int_4 _tslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_)
   956  { // ** body not listed **
   960  }


© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)