I1M-0.0.1: Code for the Haskell course taught at the University od Seville.

LicenseCreative Commons
MaintainerJosé A. Alonso
Safe HaskellSafe
LanguageHaskell2010

I1M.Pol

Description

TAD (tipo abstracto de datos) de los polinomios

Este módulo contiene el código del TAD de los polinomios estudiado en el tema 21 del curso.

En los ejemplos se usarán los siguientes polinomios:

ejPol1, ejPol2, ejPol3:: Polinomio Int
ejPol1 = consPol 4 3 (consPol 2 (-5) (consPol 0 3 polCero))
ejPol2 = consPol 5 1 (consPol 2 5 (consPol 1 4 polCero))
ejPol3 = consPol 4 6 (consPol 1 2 polCero)
ejPol5, ejPol6, ejPol7:: Polinomio Float
ejPol5 = consPol 4 3 (consPol 2 (-5) (consPol 0 3 polCero))
ejPol6 = consPol 5 1 (consPol 2 5 (consPol 1 4 polCero))
ejPol7 = consPol 1 2 (consPol 4 6 polCero)

Su escritura es

ejPol1  ==  3*x^4 + -5*x^2 + 3
ejPol2  ==  x^5 + 5*x^2 + 4*x
ejPol3  ==  6*x^4 + 2*x
ejPol5  ==  3.0*x^4 + -5.0*x^2 + 3.0
ejPol6  ==  x^5 + 5.0*x^2 + 4.0*x
ejPol7  ==  6.0*x^4 + 2.0*x
Synopsis

Documentation

data Polinomio a Source #

Tipo de dato de polinomios.

Instances
Eq a => Eq (Polinomio a) Source # 
Instance details

Defined in I1M.Pol

Methods

(==) :: Polinomio a -> Polinomio a -> Bool #

(/=) :: Polinomio a -> Polinomio a -> Bool #

(Num a, Show a, Eq a) => Show (Polinomio a) Source # 
Instance details

Defined in I1M.Pol

polCero :: Polinomio a Source #

polCero es el polinomio cero. Por ejemplo,

> polCero
0

esPolCero :: Polinomio a -> Bool Source #

(esPolCero p) se verifica si p es el polinomio cero. Por ejemplo,

esPolCero polCero  ==  True
esPolCero ejPol1   ==  False

consPol :: (Num a, Eq a) => Int -> a -> Polinomio a -> Polinomio a Source #

(consPol n b p) es el polinomio bx^n+p. Por ejemplo,

ejPol2               ==  x^5 + 5*x^2 + 4*x
consPol 3 0 ejPol2   ==  x^5 + 5*x^2 + 4*x
consPol 3 2 polCero  ==  2*x^3
consPol 6 7 ejPol2   ==  7*x^6 + x^5 + 5*x^2 + 4*x
consPol 4 7 ejPol2   ==  x^5 + 7*x^4 + 5*x^2 + 4*x
consPol 5 7 ejPol2   ==  8*x^5 + 5*x^2 + 4*x

grado :: Polinomio a -> Int Source #

(grado p) es el grado del polinomio p. Por ejemplo,

ejPol3        ==  6*x^4 + 2*x
grado ejPol3  ==  4

coefLider :: Num t => Polinomio t -> t Source #

(coefLider p) es el coeficiente líder del polinomio p. Por ejemplo,

ejPol3            ==  6*x^4 + 2*x
coefLider ejPol3  ==  6

restoPol :: Polinomio t -> Polinomio t Source #

(restoPol p) es el resto del polinomio p. Por ejemplo,

ejPol3           ==  6*x^4 + 2*x
restoPol ejPol3  ==  2*x
ejPol2           ==  x^5 + 5*x^2 + 4*x
restoPol ejPol2  ==  5*x^2 + 4*x