Changeset 2983

Show
Ignore:
Timestamp:
07/02/08 06:31:19 (5 months ago)
Author:
dumas
Message:

ported to new g++ way of handling double template class
with defaults

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/linbox/linbox/algorithms/smith-form-sparseelim-local.h

    r2454 r2983  
    283283// ------------------------------------------------------ 
    284284 
    285         template<class Modulo, class BB, class D, template<class X> class Container> 
    286         void gauss_rankin(Modulo FMOD, Modulo PRIME, Container<size_t>& ranks, BB& LigneA, const size_t Ni, const size_t Nj, const D& density_trait) { 
     285        template<class Modulo, class BB, class D, class Container> 
     286        void gauss_rankin(Modulo FMOD, Modulo PRIME, Container& ranks, BB& LigneA, const size_t Ni, const size_t Nj, const D& density_trait) { 
    287287            ranks.resize(0); 
    288288 
     
    398398        } 
    399399 
    400         template<class Modulo, class BB, class D, template<class X> class Container> 
    401         void prime_power_rankin (Modulo FMOD, Modulo PRIME, Container<size_t>& ranks, BB& SLA, const size_t Ni, const size_t Nj, const D& density_trait){ 
     400        template<class Modulo, class BB, class D, class Container> 
     401        void prime_power_rankin (Modulo FMOD, Modulo PRIME, Container& ranks, BB& SLA, const size_t Ni, const size_t Nj, const D& density_trait){ 
    402402            gauss_rankin(FMOD,PRIME,ranks, SLA, Ni, Nj, density_trait); 
    403403        } 
    404404 
    405        template<template<class X> class Container, class Matrix> 
    406        Container<std::pair<size_t,size_t> >& operator()(Container<std::pair<size_t,size_t> >& L, Matrix& A, size_t FMOD, size_t PRIME) {  
    407            Container<size_t> ranks; 
     405 
     406       template<class Matrix, template<class, class> class Container, template<class> class Alloc> 
     407       Container<std::pair<size_t,size_t>, Alloc<std::pair<size_t,size_t> > >& operator()(Container<std::pair<size_t,size_t>, Alloc<std::pair<size_t,size_t> > >& L, Matrix& A, size_t FMOD, size_t PRIME) {  
     408           Container<size_t, Alloc<size_t> > ranks; 
    408409           prime_power_rankin( FMOD, PRIME, ranks, A, A.rowdim(), A.coldim(), std::vector<size_t>()); 
    409410           L.resize( 0 ) ; 
    410411           size_t MOD = 1; 
    411412           size_t num = 0, diff; 
    412            for( typename Container<size_t>::const_iterator it = ranks.begin(); it != ranks.end(); ++it) { 
     413           for( typename Container<size_t, Alloc<size_t> >::const_iterator it = ranks.begin(); it != ranks.end(); ++it) { 
    413414               diff = *it-num; 
    414415               if (diff > 0)