@@ -38,7 +38,6 @@ function fromroots(P::Type{<:AbstractPolynomial}, roots::AbstractVector; var::Sy
38
38
return truncate! (reduce (* , p))
39
39
end
40
40
fromroots (r:: AbstractVector{<:Number} ; var:: SymbolLike = :x ) = fromroots (Polynomial, r, var = var)
41
- fromroots (r; var:: SymbolLike = :x ) = fromroots (collect (r), var = var)
42
41
43
42
"""
44
43
fromroots(::AbstractMatrix{<:Number}; var=:x)
@@ -66,7 +65,7 @@ Fit the given data as a polynomial type with the given degree. Uses linear least
66
65
function fit (P:: Type{<:AbstractPolynomial} ,
67
66
x:: AbstractVector{T} ,
68
67
y:: AbstractVector{T} ;
69
- weights = nothing , deg:: Integer = length (x) - 1 , var = :x ) where {T <: Number }
68
+ weights = nothing , deg:: Integer = length (x) - 1 , var = :x ) where {T}
70
69
x = mapdomain (P, x)
71
70
vand = vander (P, x, deg)
72
71
if weights != = nothing
@@ -77,17 +76,12 @@ function fit(P::Type{<:AbstractPolynomial},
77
76
return P (T .(coeffs), var)
78
77
end
79
78
80
- fit (x, y; weights = nothing , deg = length (x) - 1 , var = :x ) = fit (Polynomial{eltype (y)}, collect (x), collect (y); weights = weights, deg = deg, var = var)
79
+ fit (P:: Type{<:AbstractPolynomial} , x, y;
80
+ weights = nothing , deg:: Integer = length (x) - 1 , var = :x ) = fit (P, promote (collect (x), collect (y))... ; weights= weights, deg= deg, var= var)
81
81
82
- fit (P:: Type{<:AbstractPolynomial} , x, y; weights = nothing , deg = length (x) - 1 , var = :x ) = fit (P, collect (x), collect (y); weights = weights, deg = deg, var = var)
83
-
84
- function fit (P:: Type{<:AbstractPolynomial} ,
85
- x:: AbstractVector{T} ,
86
- y:: AbstractVector{S} ;
87
- weights = nothing , deg = length (x) - 1 , var = :x ) where {T,S}
88
- x, y = promote (x, y)
89
- fit (P, x, y; weights = weights, deg = deg, var = var)
90
- end
82
+ fit (x:: AbstractVector ,
83
+ y:: AbstractVector ;
84
+ weights = nothing , deg:: Integer = length (x) - 1 , var = :x ) = fit (Polynomial, x, y; weights= weights, deg= deg, var= var)
91
85
92
86
# Weighted linear least squares
93
87
_wlstsq (vand, y, W:: Number ) = _wlstsq (vand, y, fill! (similar (y), W))
0 commit comments