hmatrix-special 0.1.1 → 0.2.0
raw patch · 32 files changed
+82/−69 lines, 32 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Numeric.GSL.Special.Bessel: bessel_Knu_scaled_e10_e :: Double -> Double -> (Double, Int, Double)
Files
- hmatrix-special.cabal +7/−7
- lib/Numeric/GSL/Special/Airy.hs +2/−2
- lib/Numeric/GSL/Special/Bessel.hs +7/−2
- lib/Numeric/GSL/Special/Clausen.hs +2/−2
- lib/Numeric/GSL/Special/Coulomb.hs +2/−2
- lib/Numeric/GSL/Special/Coupling.hs +2/−2
- lib/Numeric/GSL/Special/Dawson.hs +2/−2
- lib/Numeric/GSL/Special/Debye.hs +2/−2
- lib/Numeric/GSL/Special/Dilog.hs +2/−2
- lib/Numeric/GSL/Special/Elementary.hs +2/−2
- lib/Numeric/GSL/Special/Ellint.hs +2/−2
- lib/Numeric/GSL/Special/Elljac.hs +5/−2
- lib/Numeric/GSL/Special/Erf.hs +2/−2
- lib/Numeric/GSL/Special/Exp.hs +2/−2
- lib/Numeric/GSL/Special/Expint.hs +2/−2
- lib/Numeric/GSL/Special/Fermi_dirac.hs +2/−2
- lib/Numeric/GSL/Special/Gamma.hs +2/−2
- lib/Numeric/GSL/Special/Gegenbauer.hs +2/−2
- lib/Numeric/GSL/Special/Hyperg.hs +2/−2
- lib/Numeric/GSL/Special/Internal.hsc +5/−2
- lib/Numeric/GSL/Special/Laguerre.hs +2/−2
- lib/Numeric/GSL/Special/Lambert.hs +2/−2
- lib/Numeric/GSL/Special/Legendre.hs +2/−2
- lib/Numeric/GSL/Special/Log.hs +2/−2
- lib/Numeric/GSL/Special/Pow_int.hs +2/−2
- lib/Numeric/GSL/Special/Psi.hs +2/−2
- lib/Numeric/GSL/Special/Synchrotron.hs +2/−2
- lib/Numeric/GSL/Special/Transport.hs +2/−2
- lib/Numeric/GSL/Special/Trig.hs +2/−2
- lib/Numeric/GSL/Special/Zeta.hs +2/−2
- lib/Numeric/GSL/Special/auto.hs +5/−3
- lib/Numeric/GSL/Special/replace.hs +1/−1
hmatrix-special.cabal view
@@ -1,17 +1,17 @@ Name: hmatrix-special-Version: 0.1.1+Version: 0.2.0 License: GPL License-file: LICENSE Author: Alberto Ruiz Maintainer: Alberto Ruiz <aruiz@um.es> Stability: experimental-Homepage: http://code.haskell.org/hmatrix+Homepage: http://perception.inf.um.es/hmatrix Synopsis: Interface to GSL special functions Description: Interface to GSL special functions. Category: Math-tested-with: GHC ==6.12.3+tested-with: GHC ==7.4 cabal-version: >=1.6 build-type: Simple@@ -66,14 +66,14 @@ other-modules: Numeric.GSL.Special.Internal - ghc-options: -Wall -fno-warn-unused-binds-+ ghc-options: -Wall -fno-warn-unused-binds+ if flag(safe-cheap) cpp-options: -DSAFE_CHEAP=safe else cpp-options: -DSAFE_CHEAP=unsafe source-repository head- type: darcs- location: http://code.haskell.org/hmatrix+ type: git+ location: https://github.com/AlbertoRuiz/hmatrix
lib/Numeric/GSL/Special/Airy.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Airy--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -41,7 +41,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal airy_Ai_e :: Double -> Precision -> (Double,Double)
lib/Numeric/GSL/Special/Bessel.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Bessel--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -91,6 +91,7 @@ , bessel_Inu , bessel_Knu_scaled_e , bessel_Knu_scaled+, bessel_Knu_scaled_e10_e , bessel_Knu_e , bessel_Knu , bessel_lnKnu_e@@ -104,7 +105,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal bessel_J0_e :: Double -> (Double,Double)@@ -466,6 +467,10 @@ bessel_Knu_scaled :: Double -> Double -> Double bessel_Knu_scaled = gsl_sf_bessel_Knu_scaled foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Knu_scaled" gsl_sf_bessel_Knu_scaled :: Double -> Double -> Double++bessel_Knu_scaled_e10_e :: Double -> Double -> (Double,Int,Double)+bessel_Knu_scaled_e10_e nu x = createSFR_E10 "bessel_Knu_scaled_e10_e" $ gsl_sf_bessel_Knu_scaled_e10_e nu x+foreign import ccall SAFE_CHEAP "gsl_sf_bessel_Knu_scaled_e10_e" gsl_sf_bessel_Knu_scaled_e10_e :: Double -> Double -> Ptr () -> IO CInt bessel_Knu_e :: Double -> Double -> (Double,Double) bessel_Knu_e nu x = createSFR "bessel_Knu_e" $ gsl_sf_bessel_Knu_e nu x
lib/Numeric/GSL/Special/Clausen.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Clausen--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -18,7 +18,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal clausen_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Coulomb.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Coulomb--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -21,7 +21,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal hydrogenicR_1_e :: Double -> Double -> (Double,Double)
lib/Numeric/GSL/Special/Coupling.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Coupling--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -24,7 +24,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal coupling_3j_e :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> (Double,Double)
lib/Numeric/GSL/Special/Dawson.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Dawson--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -18,7 +18,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal dawson_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Debye.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Debye--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -28,7 +28,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal debye_1_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Dilog.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Dilog--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -21,7 +21,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal dilog_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Elementary.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Elementary--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -19,7 +19,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal multiply_e :: Double -> Double -> (Double,Double)
lib/Numeric/GSL/Special/Ellint.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Ellint--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -40,7 +40,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal ellint_Kcomp_e :: Double -> Precision -> (Double,Double)
lib/Numeric/GSL/Special/Elljac.hs view
@@ -16,8 +16,11 @@ elljac_e ) where -import Foreign-import Foreign.C.Types(CInt)+import System.IO.Unsafe+import Foreign.Ptr+import Foreign.Storable+import Foreign.Marshal+import Foreign.C.Types elljac_e :: Double -> Double -> (Double,Double,Double) elljac_e u m = unsafePerformIO $ do
lib/Numeric/GSL/Special/Erf.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Erf--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -28,7 +28,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal erfc_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Exp.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Exp--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -35,7 +35,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal exp_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Expint.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Expint--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -44,7 +44,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal expint_E1_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Fermi_dirac.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Fermi_dirac--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -34,7 +34,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal fermi_dirac_m1_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Gamma.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Gamma--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -57,7 +57,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal lngamma_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Gegenbauer.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Gegenbauer--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -24,7 +24,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal gegenpoly_1_e :: Double -> Double -> (Double,Double)
lib/Numeric/GSL/Special/Hyperg.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Hyperg--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -38,7 +38,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal hyperg_0F1_e :: Double -> Double -> (Double,Double)
lib/Numeric/GSL/Special/Internal.hsc view
@@ -29,9 +29,12 @@ ) where -import Foreign+import Foreign.Storable+import Foreign.Ptr+import Foreign.Marshal+import System.IO.Unsafe(unsafePerformIO) import Data.Packed.Development(check,(//))-import Foreign.C.Types(CSize,CInt)+import Foreign.C.Types data Precision = PrecDouble | PrecSingle | PrecApprox
lib/Numeric/GSL/Special/Laguerre.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Laguerre--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -24,7 +24,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal laguerre_1_e :: Double -> Double -> (Double,Double)
lib/Numeric/GSL/Special/Lambert.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Lambert--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -20,7 +20,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal lambert_W0_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Legendre.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Legendre--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -53,7 +53,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal legendre_Pl_e :: CInt -> Double -> (Double,Double)
lib/Numeric/GSL/Special/Log.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Log--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -25,7 +25,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal log_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Pow_int.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Pow_int--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -18,7 +18,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal pow_int_e :: Double -> CInt -> (Double,Double)
lib/Numeric/GSL/Special/Psi.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Psi--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -29,7 +29,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal psi_int_e :: CInt -> (Double,Double)
lib/Numeric/GSL/Special/Synchrotron.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Synchrotron--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -20,7 +20,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal synchrotron_1_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Transport.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Transport--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -24,7 +24,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal transport_2_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Trig.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Trig--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -39,7 +39,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal sin_e :: Double -> (Double,Double)
lib/Numeric/GSL/Special/Zeta.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------ -- | -- Module : Numeric.GSL.Special.Zeta--- Copyright : (c) Alberto Ruiz 2006+-- Copyright : (c) Alberto Ruiz 2006-11 -- License : GPL -- Maintainer : Alberto Ruiz (aruiz at um dot es) -- Stability : provisional@@ -30,7 +30,7 @@ ) where import Foreign(Ptr)-import Foreign.C.Types(CInt)+import Foreign.C.Types import Numeric.GSL.Special.Internal zeta_int_e :: CInt -> (Double,Double)
lib/Numeric/GSL/Special/auto.hs view
@@ -2,8 +2,10 @@ -- automatic generation of wrappers for simple GSL special functions +{-# LANGUAGE NoMonomorphismRestriction #-}+ import Text.ParserCombinators.Parsec-import System+import System.Environment(getArgs) import Data.List(intersperse, isPrefixOf) import Data.Char(toUpper,isUpper,toLower) @@ -64,7 +66,7 @@ let exports = rep (")",") where") $ rep ("(\n","(\n ") $ rep (",\n",", ") $ unlines $ ["("]++intersperse "," (map (\(Header _ n _) -> hName n) (filter safe parsed))++[")"] let defs = unlines $ map (showFull (name ++".h")) parsed let imports = "\nimport Foreign(Ptr)\n"- ++"import Foreign.C.Types(CInt)\n"+ ++"import Foreign.C.Types\n" ++"import Numeric.GSL.Special.Internal\n" let mod = modhead name ++ "module Numeric.GSL.Special."++ upperFirst name++exports++imports++defs writeFile (upperFirst name ++ ".hs") mod@@ -80,7 +82,7 @@ modhead name = replicate 60 '-' ++ "\n-- |\n" ++"-- Module : Numeric.GSL.Special."++upperFirst name++"\n"- ++"-- Copyright : (c) Alberto Ruiz 2006\n"+ ++"-- Copyright : (c) Alberto Ruiz 2006-11\n" ++"-- License : GPL\n" ++"-- Maintainer : Alberto Ruiz (aruiz at um dot es)\n" ++"-- Stability : provisional\n"
lib/Numeric/GSL/Special/replace.hs view
@@ -1,7 +1,7 @@ #!/usr/bin/env runhaskell import Data.List(isPrefixOf)-import System(getArgs)+import System.Environment(getArgs) rep (c,r) [] = [] rep (c,r) f@(x:xs)