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.12
    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  };
   113  
   115  k_, int_4 _p_ lda_);
   117  k_, int_4 _p_ lda_);
   119  lda_);
   121  k_, int_4 _p_ lda_);
   123  lda_);
   125  _p_ lds_);
   127  ldq_, int_4 _p_ lds_);
   130  k_, int_4 _p_ lda_);
   132  lda_);
   134  _p_ lda_, int_4 _p_ job_);
   136  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_ 
   137  l_, int_4 _p_ lda_);
   140  c1_, complex_16 _p_ c2_, complex_16 _p_ r1_, complex_16 _p_ r2_, complex_16 _p_ r3_, complex_16 _p_ r5_, complex_16 _p_ 
   141  r6_, complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_);
   143  lda_);
   145  int_4 _p_ m_);
   148  c1_, complex_16 _p_ c2_, int_4 _p_ m_);
   150  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 
   151  _p_ lda_)
   152  { // ** body not listed **
   173  }
   174  
   175  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 
   176  _p_ lda_)
   177  { // ** body not listed **
   200  }
   201  
   202  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_)
   203  { // ** body not listed **
   220  }
   221  
   222  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 
   223  _p_ lda_)
   224  { // ** body not listed **
   247  }
   248  
   249  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_)
   250  { // ** body not listed **
   269  }
   270  
   271  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_)
   272  { // ** body not listed **
   320  }
   321  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 
   322  _p_ lds_)
   323  { // ** body not listed **
   372  }
   373  
   374  int_4 _cslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_)
   375  { // ** body not listed **
   420  }
   421  
   422  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 
   423  _p_ lda_)
   424  { // ** body not listed **
   447  }
   448  
   449  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_)
   450  { // ** body not listed **
   468  }
   469  
   470  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_, 
   471  int_4 _p_ job_)
   472  { // ** body not listed **
   508  }
   509  
   510  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_ 
   511  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 
   512  _p_ lda_)
   513  { // ** body not listed **
   662  }
   663  
   664  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_)
   665  { // ** body not listed **
   679  }
   680  
   681  int_4 _tgslz1 (complex_16 _p_ a1_, complex_16 _p_ a2_, complex_16 _p_ b_, complex_16 _p_ x_, complex_16 _p_ c1_, 
   682  complex_16 _p_ c2_, complex_16 _p_ r1_, complex_16 _p_ r2_, complex_16 _p_ r3_, complex_16 _p_ r5_, complex_16 _p_ r6_, 
   683  complex_16 _p_ r_, int_4 _p_ m_, int_4 _p_ l_, int_4 _p_ lda_)
   684  { // ** body not listed **
   833  }
   834  
   835  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_)
   836  { // ** body not listed **
   850  }
   851  
   852  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_ 
   853  m_)
   854  { // ** body not listed **
   907  }
   908  
   909  int_4 _tsld (real_8 _p_ a_, real_8 _p_ x_, real_8 _p_ r_, int_4 _p_ m_)
   910  { // ** body not listed **
   914  }
   915  
   916  int_4 _tslz1 (complex_16 _p_ a1_, complex_16 _p_ a2_, complex_16 _p_ b_, complex_16 _p_ x_, complex_16 _p_ c1_, 
   917  complex_16 _p_ c2_, int_4 _p_ m_)
   918  { // ** body not listed **
   971  }
   972  
   973  int_4 _tslz (complex_16 _p_ a_, complex_16 _p_ x_, complex_16 _p_ r_, int_4 _p_ m_)
   974  { // ** body not listed **
   978  }
   979  


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