tomz-liblinear-ruby-swig 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/AUTHORS +2 -0
 - data/COPYING +24 -0
 - data/History.txt +3 -0
 - data/Manifest.txt +20 -0
 - data/README.rdoc +74 -0
 - data/Rakefile +46 -0
 - data/ext/blas.h +25 -0
 - data/ext/blasp.h +430 -0
 - data/ext/daxpy.c +49 -0
 - data/ext/ddot.c +50 -0
 - data/ext/dnrm2.c +62 -0
 - data/ext/dscal.c +44 -0
 - data/ext/extconf.rb +17 -0
 - data/ext/liblinear_wrap.cxx +4525 -0
 - data/ext/linear.cpp +1450 -0
 - data/ext/linear.h +69 -0
 - data/ext/tron.cpp +214 -0
 - data/ext/tron.h +32 -0
 - data/lib/linear.rb +349 -0
 - data/lib/linear_cv.rb +36 -0
 - metadata +85 -0
 
    
        data/AUTHORS
    ADDED
    
    
    
        data/COPYING
    ADDED
    
    | 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            == LICENSE:
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            (The MIT License)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Copyright (c) 2009 Tom Zeng
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining
         
     | 
| 
      
 8 
     | 
    
         
            +
            a copy of this software and associated documentation files (the
         
     | 
| 
      
 9 
     | 
    
         
            +
            'Software'), to deal in the Software without restriction, including
         
     | 
| 
      
 10 
     | 
    
         
            +
            without limitation the rights to use, copy, modify, merge, publish,
         
     | 
| 
      
 11 
     | 
    
         
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         
     | 
| 
      
 12 
     | 
    
         
            +
            permit persons to whom the Software is furnished to do so, subject to
         
     | 
| 
      
 13 
     | 
    
         
            +
            the following conditions:
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be
         
     | 
| 
      
 16 
     | 
    
         
            +
            included in all copies or substantial portions of the Software.
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
         
     | 
| 
      
 19 
     | 
    
         
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         
     | 
| 
      
 20 
     | 
    
         
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
         
     | 
| 
      
 21 
     | 
    
         
            +
            IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
         
     | 
| 
      
 22 
     | 
    
         
            +
            CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
         
     | 
| 
      
 23 
     | 
    
         
            +
            TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
         
     | 
| 
      
 24 
     | 
    
         
            +
            SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
    
        data/History.txt
    ADDED
    
    
    
        data/Manifest.txt
    ADDED
    
    | 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            History.txt
         
     | 
| 
      
 2 
     | 
    
         
            +
            COPYING
         
     | 
| 
      
 3 
     | 
    
         
            +
            AUTHORS
         
     | 
| 
      
 4 
     | 
    
         
            +
            Manifest.txt
         
     | 
| 
      
 5 
     | 
    
         
            +
            README.rdoc
         
     | 
| 
      
 6 
     | 
    
         
            +
            Rakefile
         
     | 
| 
      
 7 
     | 
    
         
            +
            lib/linear.rb
         
     | 
| 
      
 8 
     | 
    
         
            +
            lib/linear_cv.rb
         
     | 
| 
      
 9 
     | 
    
         
            +
            ext/liblinear_wrap.cxx
         
     | 
| 
      
 10 
     | 
    
         
            +
            ext/linear.cpp
         
     | 
| 
      
 11 
     | 
    
         
            +
            ext/linear.h
         
     | 
| 
      
 12 
     | 
    
         
            +
            ext/tron.h
         
     | 
| 
      
 13 
     | 
    
         
            +
            ext/tron.cpp
         
     | 
| 
      
 14 
     | 
    
         
            +
            ext/extconf.rb
         
     | 
| 
      
 15 
     | 
    
         
            +
            ext/blas.h
         
     | 
| 
      
 16 
     | 
    
         
            +
            ext/blasp.h
         
     | 
| 
      
 17 
     | 
    
         
            +
            ext/daxpy.c
         
     | 
| 
      
 18 
     | 
    
         
            +
            ext/ddot.c
         
     | 
| 
      
 19 
     | 
    
         
            +
            ext/dnrm2.c
         
     | 
| 
      
 20 
     | 
    
         
            +
            ext/dscal.c 
         
     | 
    
        data/README.rdoc
    ADDED
    
    | 
         @@ -0,0 +1,74 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            = liblinear-ruby-swig
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Ruby interface to LIBLINEAR (using SWIG)
         
     | 
| 
      
 4 
     | 
    
         
            +
            * http://www.tomzconsulting.com
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            == DESCRIPTION:
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            This is the Ruby LIBLINEAR SWIG (Simplified Wrapper and Interface Generator) 
         
     | 
| 
      
 9 
     | 
    
         
            +
            interface. LIBLINEAR is a high performance machine learning library for large 
         
     | 
| 
      
 10 
     | 
    
         
            +
            scale text mining(http://www.csie.ntu.edu.tw/~cjlin/liblinear).
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            A slightly modified version of LIBLINEAR 1.33 is included which allow turnning
         
     | 
| 
      
 13 
     | 
    
         
            +
            on/off the default debuging/logging messages. You don't need your own copy of 
         
     | 
| 
      
 14 
     | 
    
         
            +
            SWIG to use this library - all needed files are generated using SWIG already.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            The Ruby LIBLINEAR interface was used to build a decent sized text classification
         
     | 
| 
      
 17 
     | 
    
         
            +
            model(with 10 classes and 10000 features) using 100,000 text records (through 
         
     | 
| 
      
 18 
     | 
    
         
            +
            ActiveRecord in a Rails app) as training data, the recall rate is 99% and
         
     | 
| 
      
 19 
     | 
    
         
            +
            predication rate is around 90% on 2000 test records. The same model was tried
         
     | 
| 
      
 20 
     | 
    
         
            +
            with arbitrary and web page texts with pretty good results.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            == INSTALL:
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            Currently the gem is available on linux only(tested on Ubuntu 8 and Fedora 9/10,
         
     | 
| 
      
 25 
     | 
    
         
            +
            and should work on OS X), and you will need g++ installed to compile the native 
         
     | 
| 
      
 26 
     | 
    
         
            +
            code. 
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              sudo gem sources -a http://gems.github.com   (you only have to do this once)
         
     | 
| 
      
 29 
     | 
    
         
            +
              sudo gem install tomz-liblinear-ruby-swig
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            == SYNOPSIS:
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            Try the following multiclass problem in irb:
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                irb(main):001:0> require 'rubygems'
         
     | 
| 
      
 36 
     | 
    
         
            +
                irb(main):002:0> require 'linear'
         
     | 
| 
      
 37 
     | 
    
         
            +
                irb(main):003:0> pa = LParameter.new
         
     | 
| 
      
 38 
     | 
    
         
            +
                irb(main):004:0> pa.solver_type = L2LOSS_SVM_DUAL
         
     | 
| 
      
 39 
     | 
    
         
            +
                irb(main):005:0> pa.eps = 0.1
         
     | 
| 
      
 40 
     | 
    
         
            +
                irb(main):006:0> bias = 1
         
     | 
| 
      
 41 
     | 
    
         
            +
                irb(main):007:0> labels = [1, 2, 1, 2, 3]
         
     | 
| 
      
 42 
     | 
    
         
            +
                irb(main):008:0> samples = [
         
     | 
| 
      
 43 
     | 
    
         
            +
                irb(main):009:1*            {1=>0,2=>0.1,3=>0.2,4=>0,5=>0},
         
     | 
| 
      
 44 
     | 
    
         
            +
                irb(main):010:1*            {1=>0,2=>0.1,3=>0.3,4=>-1.2,5=>0},
         
     | 
| 
      
 45 
     | 
    
         
            +
                irb(main):011:1*            {1=>0.4,2=>0,3=>0,4=>0,5=>0},
         
     | 
| 
      
 46 
     | 
    
         
            +
                irb(main):012:1*            {1=>0,2=>0.1,3=>0,4=>1.4,5=>0.5},
         
     | 
| 
      
 47 
     | 
    
         
            +
                irb(main):013:1*            {1=>-0.1,2=>-0.2,3=>0.1,4=>1.1,5=>0.1}
         
     | 
| 
      
 48 
     | 
    
         
            +
                irb(main):014:1>           ]
         
     | 
| 
      
 49 
     | 
    
         
            +
                irb(main):015:0> pa.solver_type = MCSVM_CS
         
     | 
| 
      
 50 
     | 
    
         
            +
                irb(main):016:0> sp = LProblem.new(labels,samples,bias)
         
     | 
| 
      
 51 
     | 
    
         
            +
                irb(main):017:0> m = LModel.new(sp, pa)
         
     | 
| 
      
 52 
     | 
    
         
            +
                irb(main):018:0>  pred = m.predict({1=>1,2=>0.1,3=>0.2,4=>0,5=>0})
         
     | 
| 
      
 53 
     | 
    
         
            +
                => 1
         
     | 
| 
      
 54 
     | 
    
         
            +
                irb(main):019:0>  pred = m.predict({1=>0,2=>0.1,3=>0.2,4=>0,5=>0})
         
     | 
| 
      
 55 
     | 
    
         
            +
                => 2
         
     | 
| 
      
 56 
     | 
    
         
            +
                irb(main):020:0>  pred = m.predict({1=>0,2=>0.1,3=>0.2,4=>0,5=>0})
         
     | 
| 
      
 57 
     | 
    
         
            +
                => 2
         
     | 
| 
      
 58 
     | 
    
         
            +
                irb(main):025:0>  pred = m.predict({1=>0.4,2=>0,3=>0,4=>0,5=>0})
         
     | 
| 
      
 59 
     | 
    
         
            +
                => 1
         
     | 
| 
      
 60 
     | 
    
         
            +
                irb(main):021:0>  pred = m.predict({1=>-0.1,2=>-0.2,3=>0.1,4=>1.1,5=>0.1})
         
     | 
| 
      
 61 
     | 
    
         
            +
                => 3
         
     | 
| 
      
 62 
     | 
    
         
            +
                irb(main):022:0> m.save("test.model")
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            For more examples see test*.rb in the liblinear-ruby-swig/liblinear-1.33/ruby
         
     | 
| 
      
 66 
     | 
    
         
            +
            directory
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            == AUTHOR:
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            Tom Zeng
         
     | 
| 
      
 71 
     | 
    
         
            +
            http://www.tomzconsulting.com
         
     | 
| 
      
 72 
     | 
    
         
            +
            http://www.linkedin.com/in/tomzeng
         
     | 
| 
      
 73 
     | 
    
         
            +
            tom.z.zeng _at_ gmail _dot_ com
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
    
        data/Rakefile
    ADDED
    
    | 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'hoe'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            task :default => ["sync_files","make_gem"] 
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            EXT = "ext/liblinear?.#{Hoe::DLEXT}"
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Hoe.new('liblinear-ruby-swig', '0.1.0') do |p|
         
     | 
| 
      
 9 
     | 
    
         
            +
              p.author = 'Tom Zeng'
         
     | 
| 
      
 10 
     | 
    
         
            +
              p.email = 'tom.z.zeng@gmail.com'
         
     | 
| 
      
 11 
     | 
    
         
            +
              p.url = 'http://www.tomzconsulting.com'
         
     | 
| 
      
 12 
     | 
    
         
            +
              p.summary = 'Ruby wrapper of LIBLINEAR using SWIG'
         
     | 
| 
      
 13 
     | 
    
         
            +
              p.description = 'Ruby wrapper of LIBLINEAR using SWIG'
         
     | 
| 
      
 14 
     | 
    
         
            +
              
         
     | 
| 
      
 15 
     | 
    
         
            +
              p.spec_extras[:extensions] = "ext/extconf.rb"
         
     | 
| 
      
 16 
     | 
    
         
            +
              p.clean_globs << EXT << "ext/*.o" << "ext/Makefile"
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            task :make_gem => EXT
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            file EXT => ["ext/extconf.rb", "ext/liblinear_wrap.cxx", "ext/linear.cpp", "ext/linear.h", "ext/tron.h", "ext/tron.cpp", "ext/blas.h", "ext/blasp.h", "ext/dscal.c", "ext/dnrm2.c", "ext/ddot.c", "ext/daxpy.c"] do
         
     | 
| 
      
 22 
     | 
    
         
            +
              Dir.chdir "ext" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                ruby "extconf.rb"
         
     | 
| 
      
 24 
     | 
    
         
            +
                sh "make"
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            task :sync_files do
         
     | 
| 
      
 29 
     | 
    
         
            +
              cp "liblinear-1.33/linear.h","ext/"
         
     | 
| 
      
 30 
     | 
    
         
            +
              cp "liblinear-1.33/linear.cpp","ext/"
         
     | 
| 
      
 31 
     | 
    
         
            +
              cp "liblinear-1.33/tron.h","ext/"
         
     | 
| 
      
 32 
     | 
    
         
            +
              cp "liblinear-1.33/tron.cpp","ext/"
         
     | 
| 
      
 33 
     | 
    
         
            +
              cp "liblinear-1.33/ruby/liblinear_wrap.cxx","ext/"
         
     | 
| 
      
 34 
     | 
    
         
            +
              cp "liblinear-1.33/blas/blas.h","ext/"
         
     | 
| 
      
 35 
     | 
    
         
            +
              cp "liblinear-1.33/blas/blasp.h","ext/"
         
     | 
| 
      
 36 
     | 
    
         
            +
              cp "liblinear-1.33/blas/dscal.c","ext/"
         
     | 
| 
      
 37 
     | 
    
         
            +
              cp "liblinear-1.33/blas/dnrm2.c","ext/"
         
     | 
| 
      
 38 
     | 
    
         
            +
              cp "liblinear-1.33/blas/ddot.c","ext/"
         
     | 
| 
      
 39 
     | 
    
         
            +
              cp "liblinear-1.33/blas/daxpy.c","ext/"
         
     | 
| 
      
 40 
     | 
    
         
            +
              cp "liblinear-1.33/ruby/linear.rb","lib/"
         
     | 
| 
      
 41 
     | 
    
         
            +
              cp "liblinear-1.33/ruby/linear_cv.rb","lib/"
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            task :test do
         
     | 
| 
      
 45 
     | 
    
         
            +
              puts "done"
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     | 
    
        data/ext/blas.h
    ADDED
    
    | 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* blas.h  --  C header file for BLAS                         Ver 1.0 */
         
     | 
| 
      
 2 
     | 
    
         
            +
            /* Jesse Bennett                                       March 23, 2000 */
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            /**  barf  [ba:rf]  2.  "He suggested using FORTRAN, and everybody barfed."
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            	- From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            #ifndef BLAS_INCLUDE
         
     | 
| 
      
 9 
     | 
    
         
            +
            #define BLAS_INCLUDE
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            /* Data types specific to BLAS implementation */
         
     | 
| 
      
 12 
     | 
    
         
            +
            typedef struct { float r, i; } fcomplex;
         
     | 
| 
      
 13 
     | 
    
         
            +
            typedef struct { double r, i; } dcomplex;
         
     | 
| 
      
 14 
     | 
    
         
            +
            typedef int blasbool;
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            #include "blasp.h"    /* Prototypes for all BLAS functions */
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            #define FALSE 0
         
     | 
| 
      
 19 
     | 
    
         
            +
            #define TRUE  1
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            /* Macro functions */
         
     | 
| 
      
 22 
     | 
    
         
            +
            #define MIN(a,b) ((a) <= (b) ? (a) : (b))
         
     | 
| 
      
 23 
     | 
    
         
            +
            #define MAX(a,b) ((a) >= (b) ? (a) : (b))
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            #endif
         
     | 
    
        data/ext/blasp.h
    ADDED
    
    | 
         @@ -0,0 +1,430 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* blasp.h  --  C prototypes for BLAS                         Ver 1.0 */
         
     | 
| 
      
 2 
     | 
    
         
            +
            /* Jesse Bennett                                       March 23, 2000 */
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            /* Functions  listed in alphabetical order */
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            #ifdef F2C_COMPAT
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            void cdotc_(fcomplex *dotval, int *n, fcomplex *cx, int *incx,
         
     | 
| 
      
 9 
     | 
    
         
            +
                        fcomplex *cy, int *incy);
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            void cdotu_(fcomplex *dotval, int *n, fcomplex *cx, int *incx,
         
     | 
| 
      
 12 
     | 
    
         
            +
                        fcomplex *cy, int *incy);
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            double sasum_(int *n, float *sx, int *incx);
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            double scasum_(int *n, fcomplex *cx, int *incx);
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            double scnrm2_(int *n, fcomplex *x, int *incx);
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            double sdot_(int *n, float *sx, int *incx, float *sy, int *incy);
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            double snrm2_(int *n, float *x, int *incx);
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            void zdotc_(dcomplex *dotval, int *n, dcomplex *cx, int *incx,
         
     | 
| 
      
 25 
     | 
    
         
            +
                        dcomplex *cy, int *incy);
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            void zdotu_(dcomplex *dotval, int *n, dcomplex *cx, int *incx,
         
     | 
| 
      
 28 
     | 
    
         
            +
                        dcomplex *cy, int *incy);
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            #else
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            fcomplex cdotc_(int *n, fcomplex *cx, int *incx, fcomplex *cy, int *incy);
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            fcomplex cdotu_(int *n, fcomplex *cx, int *incx, fcomplex *cy, int *incy);
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            float sasum_(int *n, float *sx, int *incx);
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            float scasum_(int *n, fcomplex *cx, int *incx);
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            float scnrm2_(int *n, fcomplex *x, int *incx);
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            float sdot_(int *n, float *sx, int *incx, float *sy, int *incy);
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            float snrm2_(int *n, float *x, int *incx);
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            dcomplex zdotc_(int *n, dcomplex *cx, int *incx, dcomplex *cy, int *incy);
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            dcomplex zdotu_(int *n, dcomplex *cx, int *incx, dcomplex *cy, int *incy);
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            /* Remaining functions listed in alphabetical order */
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            int caxpy_(int *n, fcomplex *ca, fcomplex *cx, int *incx, fcomplex *cy,
         
     | 
| 
      
 55 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            int ccopy_(int *n, fcomplex *cx, int *incx, fcomplex *cy, int *incy);
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            int cgbmv_(char *trans, int *m, int *n, int *kl, int *ku,
         
     | 
| 
      
 60 
     | 
    
         
            +
                       fcomplex *alpha, fcomplex *a, int *lda, fcomplex *x, int *incx,
         
     | 
| 
      
 61 
     | 
    
         
            +
                       fcomplex *beta, fcomplex *y, int *incy);
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            int cgemm_(char *transa, char *transb, int *m, int *n, int *k,
         
     | 
| 
      
 64 
     | 
    
         
            +
                       fcomplex *alpha, fcomplex *a, int *lda, fcomplex *b, int *ldb,
         
     | 
| 
      
 65 
     | 
    
         
            +
                       fcomplex *beta, fcomplex *c, int *ldc);
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            int cgemv_(char *trans, int *m, int *n, fcomplex *alpha, fcomplex *a,
         
     | 
| 
      
 68 
     | 
    
         
            +
                       int *lda, fcomplex *x, int *incx, fcomplex *beta, fcomplex *y,
         
     | 
| 
      
 69 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            int cgerc_(int *m, int *n, fcomplex *alpha, fcomplex *x, int *incx,
         
     | 
| 
      
 72 
     | 
    
         
            +
                       fcomplex *y, int *incy, fcomplex *a, int *lda);
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            int cgeru_(int *m, int *n, fcomplex *alpha, fcomplex *x, int *incx,
         
     | 
| 
      
 75 
     | 
    
         
            +
                       fcomplex *y, int *incy, fcomplex *a, int *lda);
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            int chbmv_(char *uplo, int *n, int *k, fcomplex *alpha, fcomplex *a,
         
     | 
| 
      
 78 
     | 
    
         
            +
                       int *lda, fcomplex *x, int *incx, fcomplex *beta, fcomplex *y,
         
     | 
| 
      
 79 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            int chemm_(char *side, char *uplo, int *m, int *n, fcomplex *alpha,
         
     | 
| 
      
 82 
     | 
    
         
            +
                       fcomplex *a, int *lda, fcomplex *b, int *ldb, fcomplex *beta,
         
     | 
| 
      
 83 
     | 
    
         
            +
                       fcomplex *c, int *ldc);
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            int chemv_(char *uplo, int *n, fcomplex *alpha, fcomplex *a, int *lda,
         
     | 
| 
      
 86 
     | 
    
         
            +
                       fcomplex *x, int *incx, fcomplex *beta, fcomplex *y, int *incy);
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            int cher_(char *uplo, int *n, float *alpha, fcomplex *x, int *incx,
         
     | 
| 
      
 89 
     | 
    
         
            +
                      fcomplex *a, int *lda);
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            int cher2_(char *uplo, int *n, fcomplex *alpha, fcomplex *x, int *incx,
         
     | 
| 
      
 92 
     | 
    
         
            +
                       fcomplex *y, int *incy, fcomplex *a, int *lda);
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            int cher2k_(char *uplo, char *trans, int *n, int *k, fcomplex *alpha,
         
     | 
| 
      
 95 
     | 
    
         
            +
                        fcomplex *a, int *lda, fcomplex *b, int *ldb, float *beta,
         
     | 
| 
      
 96 
     | 
    
         
            +
                        fcomplex *c, int *ldc);
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            int cherk_(char *uplo, char *trans, int *n, int *k, float *alpha,
         
     | 
| 
      
 99 
     | 
    
         
            +
                       fcomplex *a, int *lda, float *beta, fcomplex *c, int *ldc);
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
            int chpmv_(char *uplo, int *n, fcomplex *alpha, fcomplex *ap, fcomplex *x,
         
     | 
| 
      
 102 
     | 
    
         
            +
                       int *incx, fcomplex *beta, fcomplex *y, int *incy);
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
            int chpr_(char *uplo, int *n, float *alpha, fcomplex *x, int *incx,
         
     | 
| 
      
 105 
     | 
    
         
            +
                      fcomplex *ap);
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            int chpr2_(char *uplo, int *n, fcomplex *alpha, fcomplex *x, int *incx,
         
     | 
| 
      
 108 
     | 
    
         
            +
                       fcomplex *y, int *incy, fcomplex *ap);
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            int crotg_(fcomplex *ca, fcomplex *cb, float *c, fcomplex *s);
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            int cscal_(int *n, fcomplex *ca, fcomplex *cx, int *incx);
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            int csscal_(int *n, float *sa, fcomplex *cx, int *incx);
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            int cswap_(int *n, fcomplex *cx, int *incx, fcomplex *cy, int *incy);
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            int csymm_(char *side, char *uplo, int *m, int *n, fcomplex *alpha,
         
     | 
| 
      
 119 
     | 
    
         
            +
                       fcomplex *a, int *lda, fcomplex *b, int *ldb, fcomplex *beta,
         
     | 
| 
      
 120 
     | 
    
         
            +
                       fcomplex *c, int *ldc);
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
            int csyr2k_(char *uplo, char *trans, int *n, int *k, fcomplex *alpha,
         
     | 
| 
      
 123 
     | 
    
         
            +
                        fcomplex *a, int *lda, fcomplex *b, int *ldb, fcomplex *beta,
         
     | 
| 
      
 124 
     | 
    
         
            +
                        fcomplex *c, int *ldc);
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
            int csyrk_(char *uplo, char *trans, int *n, int *k, fcomplex *alpha,
         
     | 
| 
      
 127 
     | 
    
         
            +
                       fcomplex *a, int *lda, fcomplex *beta, fcomplex *c, int *ldc);
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            int ctbmv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 130 
     | 
    
         
            +
                       fcomplex *a, int *lda, fcomplex *x, int *incx);
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
            int ctbsv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 133 
     | 
    
         
            +
                       fcomplex *a, int *lda, fcomplex *x, int *incx);
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
            int ctpmv_(char *uplo, char *trans, char *diag, int *n, fcomplex *ap,
         
     | 
| 
      
 136 
     | 
    
         
            +
                       fcomplex *x, int *incx);
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
            int ctpsv_(char *uplo, char *trans, char *diag, int *n, fcomplex *ap,
         
     | 
| 
      
 139 
     | 
    
         
            +
                       fcomplex *x, int *incx);
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
            int ctrmm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 142 
     | 
    
         
            +
                       int *n, fcomplex *alpha, fcomplex *a, int *lda, fcomplex *b,
         
     | 
| 
      
 143 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
            int ctrmv_(char *uplo, char *trans, char *diag, int *n, fcomplex *a,
         
     | 
| 
      
 146 
     | 
    
         
            +
                       int *lda, fcomplex *x, int *incx);
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
            int ctrsm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 149 
     | 
    
         
            +
                       int *n, fcomplex *alpha, fcomplex *a, int *lda, fcomplex *b,
         
     | 
| 
      
 150 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
            int ctrsv_(char *uplo, char *trans, char *diag, int *n, fcomplex *a,
         
     | 
| 
      
 153 
     | 
    
         
            +
                       int *lda, fcomplex *x, int *incx);
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
            int daxpy_(int *n, double *sa, double *sx, int *incx, double *sy,
         
     | 
| 
      
 156 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 157 
     | 
    
         
            +
             
     | 
| 
      
 158 
     | 
    
         
            +
            int dcopy_(int *n, double *sx, int *incx, double *sy, int *incy);
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
            int dgbmv_(char *trans, int *m, int *n, int *kl, int *ku,
         
     | 
| 
      
 161 
     | 
    
         
            +
                       double *alpha, double *a, int *lda, double *x, int *incx,
         
     | 
| 
      
 162 
     | 
    
         
            +
                       double *beta, double *y, int *incy);
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
            int dgemm_(char *transa, char *transb, int *m, int *n, int *k,
         
     | 
| 
      
 165 
     | 
    
         
            +
                       double *alpha, double *a, int *lda, double *b, int *ldb,
         
     | 
| 
      
 166 
     | 
    
         
            +
                       double *beta, double *c, int *ldc);
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
            int dgemv_(char *trans, int *m, int *n, double *alpha, double *a,
         
     | 
| 
      
 169 
     | 
    
         
            +
                       int *lda, double *x, int *incx, double *beta, double *y, 
         
     | 
| 
      
 170 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
      
 172 
     | 
    
         
            +
            int dger_(int *m, int *n, double *alpha, double *x, int *incx,
         
     | 
| 
      
 173 
     | 
    
         
            +
                      double *y, int *incy, double *a, int *lda);
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
            int drot_(int *n, double *sx, int *incx, double *sy, int *incy,
         
     | 
| 
      
 176 
     | 
    
         
            +
                      double *c, double *s);
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
            int drotg_(double *sa, double *sb, double *c, double *s);
         
     | 
| 
      
 179 
     | 
    
         
            +
             
     | 
| 
      
 180 
     | 
    
         
            +
            int dsbmv_(char *uplo, int *n, int *k, double *alpha, double *a,
         
     | 
| 
      
 181 
     | 
    
         
            +
                       int *lda, double *x, int *incx, double *beta, double *y, 
         
     | 
| 
      
 182 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
      
 184 
     | 
    
         
            +
            int dscal_(int *n, double *sa, double *sx, int *incx);
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
            int dspmv_(char *uplo, int *n, double *alpha, double *ap, double *x,
         
     | 
| 
      
 187 
     | 
    
         
            +
                       int *incx, double *beta, double *y, int *incy);
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
      
 189 
     | 
    
         
            +
            int dspr_(char *uplo, int *n, double *alpha, double *x, int *incx,
         
     | 
| 
      
 190 
     | 
    
         
            +
                      double *ap);
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
            int dspr2_(char *uplo, int *n, double *alpha, double *x, int *incx,
         
     | 
| 
      
 193 
     | 
    
         
            +
                       double *y, int *incy, double *ap);
         
     | 
| 
      
 194 
     | 
    
         
            +
             
     | 
| 
      
 195 
     | 
    
         
            +
            int dswap_(int *n, double *sx, int *incx, double *sy, int *incy);
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
            int dsymm_(char *side, char *uplo, int *m, int *n, double *alpha,
         
     | 
| 
      
 198 
     | 
    
         
            +
                       double *a, int *lda, double *b, int *ldb, double *beta,
         
     | 
| 
      
 199 
     | 
    
         
            +
                       double *c, int *ldc);
         
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
            int dsymv_(char *uplo, int *n, double *alpha, double *a, int *lda,
         
     | 
| 
      
 202 
     | 
    
         
            +
                       double *x, int *incx, double *beta, double *y, int *incy);
         
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
            int dsyr_(char *uplo, int *n, double *alpha, double *x, int *incx,
         
     | 
| 
      
 205 
     | 
    
         
            +
                      double *a, int *lda);
         
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
            int dsyr2_(char *uplo, int *n, double *alpha, double *x, int *incx,
         
     | 
| 
      
 208 
     | 
    
         
            +
                       double *y, int *incy, double *a, int *lda);
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
            int dsyr2k_(char *uplo, char *trans, int *n, int *k, double *alpha,
         
     | 
| 
      
 211 
     | 
    
         
            +
                        double *a, int *lda, double *b, int *ldb, double *beta,
         
     | 
| 
      
 212 
     | 
    
         
            +
                        double *c, int *ldc);
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
            int dsyrk_(char *uplo, char *trans, int *n, int *k, double *alpha,
         
     | 
| 
      
 215 
     | 
    
         
            +
                       double *a, int *lda, double *beta, double *c, int *ldc);
         
     | 
| 
      
 216 
     | 
    
         
            +
             
     | 
| 
      
 217 
     | 
    
         
            +
            int dtbmv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 218 
     | 
    
         
            +
                       double *a, int *lda, double *x, int *incx);
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
            int dtbsv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 221 
     | 
    
         
            +
                       double *a, int *lda, double *x, int *incx);
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
            int dtpmv_(char *uplo, char *trans, char *diag, int *n, double *ap,
         
     | 
| 
      
 224 
     | 
    
         
            +
                       double *x, int *incx);
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
            int dtpsv_(char *uplo, char *trans, char *diag, int *n, double *ap,
         
     | 
| 
      
 227 
     | 
    
         
            +
                       double *x, int *incx);
         
     | 
| 
      
 228 
     | 
    
         
            +
             
     | 
| 
      
 229 
     | 
    
         
            +
            int dtrmm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 230 
     | 
    
         
            +
                       int *n, double *alpha, double *a, int *lda, double *b, 
         
     | 
| 
      
 231 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 232 
     | 
    
         
            +
             
     | 
| 
      
 233 
     | 
    
         
            +
            int dtrmv_(char *uplo, char *trans, char *diag, int *n, double *a,
         
     | 
| 
      
 234 
     | 
    
         
            +
                       int *lda, double *x, int *incx);
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
            int dtrsm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 237 
     | 
    
         
            +
                       int *n, double *alpha, double *a, int *lda, double *b, 
         
     | 
| 
      
 238 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 239 
     | 
    
         
            +
             
     | 
| 
      
 240 
     | 
    
         
            +
            int dtrsv_(char *uplo, char *trans, char *diag, int *n, double *a,
         
     | 
| 
      
 241 
     | 
    
         
            +
                       int *lda, double *x, int *incx);
         
     | 
| 
      
 242 
     | 
    
         
            +
             
     | 
| 
      
 243 
     | 
    
         
            +
             
     | 
| 
      
 244 
     | 
    
         
            +
            int saxpy_(int *n, float *sa, float *sx, int *incx, float *sy, int *incy);
         
     | 
| 
      
 245 
     | 
    
         
            +
             
     | 
| 
      
 246 
     | 
    
         
            +
            int scopy_(int *n, float *sx, int *incx, float *sy, int *incy);
         
     | 
| 
      
 247 
     | 
    
         
            +
             
     | 
| 
      
 248 
     | 
    
         
            +
            int sgbmv_(char *trans, int *m, int *n, int *kl, int *ku,
         
     | 
| 
      
 249 
     | 
    
         
            +
                       float *alpha, float *a, int *lda, float *x, int *incx,
         
     | 
| 
      
 250 
     | 
    
         
            +
                       float *beta, float *y, int *incy);
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
            int sgemm_(char *transa, char *transb, int *m, int *n, int *k,
         
     | 
| 
      
 253 
     | 
    
         
            +
                       float *alpha, float *a, int *lda, float *b, int *ldb,
         
     | 
| 
      
 254 
     | 
    
         
            +
                       float *beta, float *c, int *ldc);
         
     | 
| 
      
 255 
     | 
    
         
            +
             
     | 
| 
      
 256 
     | 
    
         
            +
            int sgemv_(char *trans, int *m, int *n, float *alpha, float *a,
         
     | 
| 
      
 257 
     | 
    
         
            +
                       int *lda, float *x, int *incx, float *beta, float *y, 
         
     | 
| 
      
 258 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 259 
     | 
    
         
            +
             
     | 
| 
      
 260 
     | 
    
         
            +
            int sger_(int *m, int *n, float *alpha, float *x, int *incx,
         
     | 
| 
      
 261 
     | 
    
         
            +
                      float *y, int *incy, float *a, int *lda);
         
     | 
| 
      
 262 
     | 
    
         
            +
             
     | 
| 
      
 263 
     | 
    
         
            +
            int srot_(int *n, float *sx, int *incx, float *sy, int *incy,
         
     | 
| 
      
 264 
     | 
    
         
            +
                      float *c, float *s);
         
     | 
| 
      
 265 
     | 
    
         
            +
             
     | 
| 
      
 266 
     | 
    
         
            +
            int srotg_(float *sa, float *sb, float *c, float *s);
         
     | 
| 
      
 267 
     | 
    
         
            +
             
     | 
| 
      
 268 
     | 
    
         
            +
            int ssbmv_(char *uplo, int *n, int *k, float *alpha, float *a,
         
     | 
| 
      
 269 
     | 
    
         
            +
                       int *lda, float *x, int *incx, float *beta, float *y, 
         
     | 
| 
      
 270 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 271 
     | 
    
         
            +
             
     | 
| 
      
 272 
     | 
    
         
            +
            int sscal_(int *n, float *sa, float *sx, int *incx);
         
     | 
| 
      
 273 
     | 
    
         
            +
             
     | 
| 
      
 274 
     | 
    
         
            +
            int sspmv_(char *uplo, int *n, float *alpha, float *ap, float *x,
         
     | 
| 
      
 275 
     | 
    
         
            +
                       int *incx, float *beta, float *y, int *incy);
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     | 
| 
      
 277 
     | 
    
         
            +
            int sspr_(char *uplo, int *n, float *alpha, float *x, int *incx,
         
     | 
| 
      
 278 
     | 
    
         
            +
                      float *ap);
         
     | 
| 
      
 279 
     | 
    
         
            +
             
     | 
| 
      
 280 
     | 
    
         
            +
            int sspr2_(char *uplo, int *n, float *alpha, float *x, int *incx,
         
     | 
| 
      
 281 
     | 
    
         
            +
                       float *y, int *incy, float *ap);
         
     | 
| 
      
 282 
     | 
    
         
            +
             
     | 
| 
      
 283 
     | 
    
         
            +
            int sswap_(int *n, float *sx, int *incx, float *sy, int *incy);
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
            int ssymm_(char *side, char *uplo, int *m, int *n, float *alpha,
         
     | 
| 
      
 286 
     | 
    
         
            +
                       float *a, int *lda, float *b, int *ldb, float *beta,
         
     | 
| 
      
 287 
     | 
    
         
            +
                       float *c, int *ldc);
         
     | 
| 
      
 288 
     | 
    
         
            +
             
     | 
| 
      
 289 
     | 
    
         
            +
            int ssymv_(char *uplo, int *n, float *alpha, float *a, int *lda,
         
     | 
| 
      
 290 
     | 
    
         
            +
                       float *x, int *incx, float *beta, float *y, int *incy);
         
     | 
| 
      
 291 
     | 
    
         
            +
             
     | 
| 
      
 292 
     | 
    
         
            +
            int ssyr_(char *uplo, int *n, float *alpha, float *x, int *incx,
         
     | 
| 
      
 293 
     | 
    
         
            +
                      float *a, int *lda);
         
     | 
| 
      
 294 
     | 
    
         
            +
             
     | 
| 
      
 295 
     | 
    
         
            +
            int ssyr2_(char *uplo, int *n, float *alpha, float *x, int *incx,
         
     | 
| 
      
 296 
     | 
    
         
            +
                       float *y, int *incy, float *a, int *lda);
         
     | 
| 
      
 297 
     | 
    
         
            +
             
     | 
| 
      
 298 
     | 
    
         
            +
            int ssyr2k_(char *uplo, char *trans, int *n, int *k, float *alpha,
         
     | 
| 
      
 299 
     | 
    
         
            +
                        float *a, int *lda, float *b, int *ldb, float *beta,
         
     | 
| 
      
 300 
     | 
    
         
            +
                        float *c, int *ldc);
         
     | 
| 
      
 301 
     | 
    
         
            +
             
     | 
| 
      
 302 
     | 
    
         
            +
            int ssyrk_(char *uplo, char *trans, int *n, int *k, float *alpha,
         
     | 
| 
      
 303 
     | 
    
         
            +
                       float *a, int *lda, float *beta, float *c, int *ldc);
         
     | 
| 
      
 304 
     | 
    
         
            +
             
     | 
| 
      
 305 
     | 
    
         
            +
            int stbmv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 306 
     | 
    
         
            +
                       float *a, int *lda, float *x, int *incx);
         
     | 
| 
      
 307 
     | 
    
         
            +
             
     | 
| 
      
 308 
     | 
    
         
            +
            int stbsv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 309 
     | 
    
         
            +
                       float *a, int *lda, float *x, int *incx);
         
     | 
| 
      
 310 
     | 
    
         
            +
             
     | 
| 
      
 311 
     | 
    
         
            +
            int stpmv_(char *uplo, char *trans, char *diag, int *n, float *ap,
         
     | 
| 
      
 312 
     | 
    
         
            +
                       float *x, int *incx);
         
     | 
| 
      
 313 
     | 
    
         
            +
             
     | 
| 
      
 314 
     | 
    
         
            +
            int stpsv_(char *uplo, char *trans, char *diag, int *n, float *ap,
         
     | 
| 
      
 315 
     | 
    
         
            +
                       float *x, int *incx);
         
     | 
| 
      
 316 
     | 
    
         
            +
             
     | 
| 
      
 317 
     | 
    
         
            +
            int strmm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 318 
     | 
    
         
            +
                       int *n, float *alpha, float *a, int *lda, float *b, 
         
     | 
| 
      
 319 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 320 
     | 
    
         
            +
             
     | 
| 
      
 321 
     | 
    
         
            +
            int strmv_(char *uplo, char *trans, char *diag, int *n, float *a,
         
     | 
| 
      
 322 
     | 
    
         
            +
                       int *lda, float *x, int *incx);
         
     | 
| 
      
 323 
     | 
    
         
            +
             
     | 
| 
      
 324 
     | 
    
         
            +
            int strsm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 325 
     | 
    
         
            +
                       int *n, float *alpha, float *a, int *lda, float *b, 
         
     | 
| 
      
 326 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 327 
     | 
    
         
            +
             
     | 
| 
      
 328 
     | 
    
         
            +
            int strsv_(char *uplo, char *trans, char *diag, int *n, float *a,
         
     | 
| 
      
 329 
     | 
    
         
            +
                       int *lda, float *x, int *incx);
         
     | 
| 
      
 330 
     | 
    
         
            +
             
     | 
| 
      
 331 
     | 
    
         
            +
            int zaxpy_(int *n, dcomplex *ca, dcomplex *cx, int *incx, dcomplex *cy,
         
     | 
| 
      
 332 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
            int zcopy_(int *n, dcomplex *cx, int *incx, dcomplex *cy, int *incy);
         
     | 
| 
      
 335 
     | 
    
         
            +
             
     | 
| 
      
 336 
     | 
    
         
            +
            int zdscal_(int *n, double *sa, dcomplex *cx, int *incx);
         
     | 
| 
      
 337 
     | 
    
         
            +
             
     | 
| 
      
 338 
     | 
    
         
            +
            int zgbmv_(char *trans, int *m, int *n, int *kl, int *ku,
         
     | 
| 
      
 339 
     | 
    
         
            +
                       dcomplex *alpha, dcomplex *a, int *lda, dcomplex *x, int *incx,
         
     | 
| 
      
 340 
     | 
    
         
            +
                       dcomplex *beta, dcomplex *y, int *incy);
         
     | 
| 
      
 341 
     | 
    
         
            +
             
     | 
| 
      
 342 
     | 
    
         
            +
            int zgemm_(char *transa, char *transb, int *m, int *n, int *k,
         
     | 
| 
      
 343 
     | 
    
         
            +
                       dcomplex *alpha, dcomplex *a, int *lda, dcomplex *b, int *ldb,
         
     | 
| 
      
 344 
     | 
    
         
            +
                       dcomplex *beta, dcomplex *c, int *ldc);
         
     | 
| 
      
 345 
     | 
    
         
            +
             
     | 
| 
      
 346 
     | 
    
         
            +
            int zgemv_(char *trans, int *m, int *n, dcomplex *alpha, dcomplex *a,
         
     | 
| 
      
 347 
     | 
    
         
            +
                       int *lda, dcomplex *x, int *incx, dcomplex *beta, dcomplex *y,
         
     | 
| 
      
 348 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 349 
     | 
    
         
            +
             
     | 
| 
      
 350 
     | 
    
         
            +
            int zgerc_(int *m, int *n, dcomplex *alpha, dcomplex *x, int *incx,
         
     | 
| 
      
 351 
     | 
    
         
            +
                       dcomplex *y, int *incy, dcomplex *a, int *lda);
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
      
 353 
     | 
    
         
            +
            int zgeru_(int *m, int *n, dcomplex *alpha, dcomplex *x, int *incx,
         
     | 
| 
      
 354 
     | 
    
         
            +
                       dcomplex *y, int *incy, dcomplex *a, int *lda);
         
     | 
| 
      
 355 
     | 
    
         
            +
             
     | 
| 
      
 356 
     | 
    
         
            +
            int zhbmv_(char *uplo, int *n, int *k, dcomplex *alpha, dcomplex *a,
         
     | 
| 
      
 357 
     | 
    
         
            +
                       int *lda, dcomplex *x, int *incx, dcomplex *beta, dcomplex *y,
         
     | 
| 
      
 358 
     | 
    
         
            +
                       int *incy);
         
     | 
| 
      
 359 
     | 
    
         
            +
             
     | 
| 
      
 360 
     | 
    
         
            +
            int zhemm_(char *side, char *uplo, int *m, int *n, dcomplex *alpha,
         
     | 
| 
      
 361 
     | 
    
         
            +
                       dcomplex *a, int *lda, dcomplex *b, int *ldb, dcomplex *beta,
         
     | 
| 
      
 362 
     | 
    
         
            +
                       dcomplex *c, int *ldc);
         
     | 
| 
      
 363 
     | 
    
         
            +
             
     | 
| 
      
 364 
     | 
    
         
            +
            int zhemv_(char *uplo, int *n, dcomplex *alpha, dcomplex *a, int *lda,
         
     | 
| 
      
 365 
     | 
    
         
            +
                       dcomplex *x, int *incx, dcomplex *beta, dcomplex *y, int *incy);
         
     | 
| 
      
 366 
     | 
    
         
            +
             
     | 
| 
      
 367 
     | 
    
         
            +
            int zher_(char *uplo, int *n, double *alpha, dcomplex *x, int *incx,
         
     | 
| 
      
 368 
     | 
    
         
            +
                      dcomplex *a, int *lda);
         
     | 
| 
      
 369 
     | 
    
         
            +
             
     | 
| 
      
 370 
     | 
    
         
            +
            int zher2_(char *uplo, int *n, dcomplex *alpha, dcomplex *x, int *incx,
         
     | 
| 
      
 371 
     | 
    
         
            +
                       dcomplex *y, int *incy, dcomplex *a, int *lda);
         
     | 
| 
      
 372 
     | 
    
         
            +
             
     | 
| 
      
 373 
     | 
    
         
            +
            int zher2k_(char *uplo, char *trans, int *n, int *k, dcomplex *alpha,
         
     | 
| 
      
 374 
     | 
    
         
            +
                        dcomplex *a, int *lda, dcomplex *b, int *ldb, double *beta,
         
     | 
| 
      
 375 
     | 
    
         
            +
                        dcomplex *c, int *ldc);
         
     | 
| 
      
 376 
     | 
    
         
            +
             
     | 
| 
      
 377 
     | 
    
         
            +
            int zherk_(char *uplo, char *trans, int *n, int *k, double *alpha,
         
     | 
| 
      
 378 
     | 
    
         
            +
                       dcomplex *a, int *lda, double *beta, dcomplex *c, int *ldc);
         
     | 
| 
      
 379 
     | 
    
         
            +
             
     | 
| 
      
 380 
     | 
    
         
            +
            int zhpmv_(char *uplo, int *n, dcomplex *alpha, dcomplex *ap, dcomplex *x,
         
     | 
| 
      
 381 
     | 
    
         
            +
                       int *incx, dcomplex *beta, dcomplex *y, int *incy);
         
     | 
| 
      
 382 
     | 
    
         
            +
             
     | 
| 
      
 383 
     | 
    
         
            +
            int zhpr_(char *uplo, int *n, double *alpha, dcomplex *x, int *incx,
         
     | 
| 
      
 384 
     | 
    
         
            +
                      dcomplex *ap);
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
            int zhpr2_(char *uplo, int *n, dcomplex *alpha, dcomplex *x, int *incx,
         
     | 
| 
      
 387 
     | 
    
         
            +
                       dcomplex *y, int *incy, dcomplex *ap);
         
     | 
| 
      
 388 
     | 
    
         
            +
             
     | 
| 
      
 389 
     | 
    
         
            +
            int zrotg_(dcomplex *ca, dcomplex *cb, double *c, dcomplex *s);
         
     | 
| 
      
 390 
     | 
    
         
            +
             
     | 
| 
      
 391 
     | 
    
         
            +
            int zscal_(int *n, dcomplex *ca, dcomplex *cx, int *incx);
         
     | 
| 
      
 392 
     | 
    
         
            +
             
     | 
| 
      
 393 
     | 
    
         
            +
            int zswap_(int *n, dcomplex *cx, int *incx, dcomplex *cy, int *incy);
         
     | 
| 
      
 394 
     | 
    
         
            +
             
     | 
| 
      
 395 
     | 
    
         
            +
            int zsymm_(char *side, char *uplo, int *m, int *n, dcomplex *alpha,
         
     | 
| 
      
 396 
     | 
    
         
            +
                       dcomplex *a, int *lda, dcomplex *b, int *ldb, dcomplex *beta,
         
     | 
| 
      
 397 
     | 
    
         
            +
                       dcomplex *c, int *ldc);
         
     | 
| 
      
 398 
     | 
    
         
            +
             
     | 
| 
      
 399 
     | 
    
         
            +
            int zsyr2k_(char *uplo, char *trans, int *n, int *k, dcomplex *alpha,
         
     | 
| 
      
 400 
     | 
    
         
            +
                        dcomplex *a, int *lda, dcomplex *b, int *ldb, dcomplex *beta,
         
     | 
| 
      
 401 
     | 
    
         
            +
                        dcomplex *c, int *ldc);
         
     | 
| 
      
 402 
     | 
    
         
            +
             
     | 
| 
      
 403 
     | 
    
         
            +
            int zsyrk_(char *uplo, char *trans, int *n, int *k, dcomplex *alpha,
         
     | 
| 
      
 404 
     | 
    
         
            +
                       dcomplex *a, int *lda, dcomplex *beta, dcomplex *c, int *ldc);
         
     | 
| 
      
 405 
     | 
    
         
            +
             
     | 
| 
      
 406 
     | 
    
         
            +
            int ztbmv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 407 
     | 
    
         
            +
                       dcomplex *a, int *lda, dcomplex *x, int *incx);
         
     | 
| 
      
 408 
     | 
    
         
            +
             
     | 
| 
      
 409 
     | 
    
         
            +
            int ztbsv_(char *uplo, char *trans, char *diag, int *n, int *k,
         
     | 
| 
      
 410 
     | 
    
         
            +
                       dcomplex *a, int *lda, dcomplex *x, int *incx);
         
     | 
| 
      
 411 
     | 
    
         
            +
             
     | 
| 
      
 412 
     | 
    
         
            +
            int ztpmv_(char *uplo, char *trans, char *diag, int *n, dcomplex *ap,
         
     | 
| 
      
 413 
     | 
    
         
            +
                       dcomplex *x, int *incx);
         
     | 
| 
      
 414 
     | 
    
         
            +
             
     | 
| 
      
 415 
     | 
    
         
            +
            int ztpsv_(char *uplo, char *trans, char *diag, int *n, dcomplex *ap,
         
     | 
| 
      
 416 
     | 
    
         
            +
                       dcomplex *x, int *incx);
         
     | 
| 
      
 417 
     | 
    
         
            +
             
     | 
| 
      
 418 
     | 
    
         
            +
            int ztrmm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 419 
     | 
    
         
            +
                       int *n, dcomplex *alpha, dcomplex *a, int *lda, dcomplex *b,
         
     | 
| 
      
 420 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 421 
     | 
    
         
            +
             
     | 
| 
      
 422 
     | 
    
         
            +
            int ztrmv_(char *uplo, char *trans, char *diag, int *n, dcomplex *a,
         
     | 
| 
      
 423 
     | 
    
         
            +
                       int *lda, dcomplex *x, int *incx);
         
     | 
| 
      
 424 
     | 
    
         
            +
             
     | 
| 
      
 425 
     | 
    
         
            +
            int ztrsm_(char *side, char *uplo, char *transa, char *diag, int *m,
         
     | 
| 
      
 426 
     | 
    
         
            +
                       int *n, dcomplex *alpha, dcomplex *a, int *lda, dcomplex *b,
         
     | 
| 
      
 427 
     | 
    
         
            +
                       int *ldb);
         
     | 
| 
      
 428 
     | 
    
         
            +
             
     | 
| 
      
 429 
     | 
    
         
            +
            int ztrsv_(char *uplo, char *trans, char *diag, int *n, dcomplex *a,
         
     | 
| 
      
 430 
     | 
    
         
            +
                       int *lda, dcomplex *x, int *incx);
         
     |