Skip to content

Commit 5db070a

Browse files
authored
Merge pull request #119 from johnmyleswhite/ml/drop0405
drop support for 0.4 and 0.5, fix some deprecations on 0.7
2 parents dbdd746 + f804b3a commit 5db070a

File tree

8 files changed

+57
-66
lines changed

8 files changed

+57
-66
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ os:
33
- linux
44
- osx
55
julia:
6-
- 0.4
7-
- 0.5
6+
- 0.6
87
- nightly
98
notifications:
109
email: false

REQUIRE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
julia 0.4
1+
julia 0.6
22
Compat 0.17.0

src/Calculus.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
isdefined(Base, :__precompile__) && __precompile__()
2-
1+
__precompile__()
32
module Calculus
43
import Compat
54
export check_derivative,

src/check_derivative.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
Compat.@compat function check_derivative(f, g, x::Number)
1+
function check_derivative(f, g, x::Number)
22
auto_g = derivative(f)
33
return maximum(abs.(g(x) - auto_g(x)))
44
end
55

6-
Compat.@compat function check_gradient{T <: Number}(f, g, x::Vector{T})
6+
function check_gradient(f, g, x::Vector{T}) where T <: Number
77
auto_g = gradient(f)
88
return maximum(abs.(g(x) - auto_g(x)))
99
end
1010

11-
Compat.@compat function check_second_derivative(f, h, x::Number)
11+
function check_second_derivative(f, h, x::Number)
1212
auto_h = second_derivative(f)
1313
return maximum(abs.(h(x) - auto_h(x)))
1414
end
1515

16-
Compat.@compat function check_hessian{T <: Number}(f, h, x::Vector{T})
16+
function check_hessian(f, h, x::Vector{T}) where T <: Number
1717
auto_h = hessian(f)
1818
return maximum(abs.(h(x) - auto_h(x)))
1919
end

src/derivative.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ function derivative(f, ftype::Symbol, dtype::Symbol)
77
error("ftype must :scalar or :vector")
88
end
99
end
10-
Compat.@compat derivative{T <: Number}(f, x::Union{T, Vector{T}}, dtype::Symbol = :central) = finite_difference(f, float(x), dtype)
10+
derivative(f, x::Union{T, Vector{T}}, dtype::Symbol = :central) where {T <: Number} = finite_difference(f, float(x), dtype)
1111
derivative(f, dtype::Symbol = :central) = derivative(f, :scalar, dtype)
1212

13-
Compat.@compat gradient{T <: Number}(f, x::Union{T, Vector{T}}, dtype::Symbol = :central) = finite_difference(f, float(x), dtype)
13+
gradient(f, x::Union{T, Vector{T}}, dtype::Symbol = :central) where {T <: Number} = finite_difference(f, float(x), dtype)
1414
gradient(f, dtype::Symbol = :central) = derivative(f, :vector, dtype)
1515

16-
Compat.@compat function Base.gradient{T <: Number}(f, x::Union{T, Vector{T}}, dtype::Symbol = :central)
16+
function Base.gradient(f, x::Union{T, Vector{T}}, dtype::Symbol = :central) where T <: Number
1717
Base.warn_once("The finite difference methods from Calculus.jl no longer extend Base.gradient and should be called as Calculus.gradient instead. This usage is deprecated.")
1818
Calculus.gradient(f,x,dtype)
1919
end
@@ -29,7 +29,7 @@ else
2929
Base.ctranspose(f::Function) = derivative(f)
3030
end
3131

32-
function jacobian{T <: Number}(f, x::Vector{T}, dtype::Symbol)
32+
function jacobian(f, x::Vector{T}, dtype::Symbol) where T <: Number
3333
finite_difference_jacobian(f, x, dtype)
3434
end
3535
function jacobian(f, dtype::Symbol)
@@ -47,16 +47,16 @@ function second_derivative(f, g, ftype::Symbol, dtype::Symbol)
4747
error("ftype must :scalar or :vector")
4848
end
4949
end
50-
Compat.@compat function second_derivative{T <: Number}(f, g, x::Union{T, Vector{T}}, dtype::Symbol)
50+
function second_derivative(f, g, x::Union{T, Vector{T}}, dtype::Symbol) where T <: Number
5151
finite_difference_hessian(f, g, x, dtype)
5252
end
53-
Compat.@compat function hessian{T <: Number}(f, g, x::Union{T, Vector{T}}, dtype::Symbol)
53+
function hessian(f, g, x::Union{T, Vector{T}}, dtype::Symbol) where T <: Number
5454
finite_difference_hessian(f, g, x, dtype)
5555
end
56-
Compat.@compat function second_derivative{T <: Number}(f, g, x::Union{T, Vector{T}})
56+
function second_derivative(f, g, x::Union{T, Vector{T}}) where T <: Number
5757
finite_difference_hessian(f, g, x, :central)
5858
end
59-
Compat.@compat function hessian{T <: Number}(f, g, x::Union{T, Vector{T}})
59+
function hessian(f, g, x::Union{T, Vector{T}}) where T <: Number
6060
finite_difference_hessian(f, g, x, :central)
6161
end
6262
function second_derivative(f, x::Number, dtype::Symbol)
@@ -65,10 +65,10 @@ end
6565
function hessian(f, x::Number, dtype::Symbol)
6666
finite_difference_hessian(f, derivative(f), x, dtype)
6767
end
68-
function second_derivative{T <: Number}(f, x::Vector{T}, dtype::Symbol)
68+
function second_derivative(f, x::Vector{T}, dtype::Symbol) where T <: Number
6969
finite_difference_hessian(f, gradient(f), x, dtype)
7070
end
71-
function hessian{T <: Number}(f, x::Vector{T}, dtype::Symbol)
71+
function hessian(f, x::Vector{T}, dtype::Symbol) where T <: Number
7272
finite_difference_hessian(f, gradient(f), x, dtype)
7373
end
7474
function second_derivative(f, x::Number)
@@ -77,10 +77,10 @@ end
7777
function hessian(f, x::Number)
7878
finite_difference_hessian(f, derivative(f), x, :central)
7979
end
80-
function second_derivative{T <: Number}(f, x::Vector{T})
80+
function second_derivative(f, x::Vector{T}) where T <: Number
8181
finite_difference_hessian(f, gradient(f), x, :central)
8282
end
83-
function hessian{T <: Number}(f, x::Vector{T})
83+
function hessian(f, x::Vector{T}) where T <: Number
8484
finite_difference_hessian(f, gradient(f), x, :central)
8585
end
8686
second_derivative(f, g, dtype::Symbol) = second_derivative(f, g, :scalar, dtype)

src/differentiate.jl

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function differentiate(ex::Expr,wrt)
1919
simplify(differentiate(SymbolParameter(ex.args[1]), ex.args[2:end], wrt))
2020
end
2121

22-
differentiate{T}(x::SymbolParameter{T}, args, wrt) = error("Derivative of function " * string(T) * " not supported")
22+
differentiate(x::SymbolParameter{T}, args, wrt) where {T} = error("Derivative of function " * string(T) * " not supported")
2323

2424
# The Power Rule:
2525
function differentiate(::SymbolParameter{:^}, args, wrt)
@@ -184,13 +184,6 @@ symbolic_derivative_1arg_list = [
184184
( :dawson, :( (1 - 2x * dawson(x)) ))
185185
]
186186

187-
# `airy` and `airyprime` are deprecated in v0.6 (see JuliaLang/julia#18050)
188-
if VERSION < v"0.6.0-dev.1767"
189-
push!(symbolic_derivative_1arg_list, (:airy, :(airyprime(x))))
190-
push!(symbolic_derivative_1arg_list, (:airyprime, :(x * airy(x))))
191-
end
192-
193-
194187
# This is the public interface for accessing the list of symbolic
195188
# derivatives. The format is a list of (Symbol,Expr) tuples
196189
# (:f, deriv_expr), where deriv_expr is a symbolic
@@ -280,4 +273,4 @@ end
280273
differentiate(ex::Expr) = differentiate(ex, :x)
281274
differentiate(s::Compat.AbstractString, target...) = differentiate(parse(s), target...)
282275
differentiate(s::Compat.AbstractString, target::Compat.AbstractString) = differentiate(parse(s), symbol(target))
283-
differentiate{T <: Compat.AbstractString}(s::Compat.AbstractString, targets::Vector{T}) = differentiate(parse(s), map(symbol, targets))
276+
differentiate(s::Compat.AbstractString, targets::Vector{T}) where {T <: Compat.AbstractString} = differentiate(parse(s), map(symbol, targets))

src/finite_difference.jl

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ macro complexrule(x, e)
4242
end
4343
end
4444

45-
function finite_difference{T <: Number}(f,
46-
x::T,
47-
dtype::Symbol = :central)
45+
function finite_difference(f,
46+
x::T,
47+
dtype::Symbol = :central) where T <: Number
4848
if dtype == :forward
4949
@forwardrule x epsilon
5050
xplusdx = x + epsilon
@@ -83,7 +83,7 @@ end
8383
##
8484
##############################################################################
8585

86-
function complex_differentiable_abs{T <: Complex}(z::T)
86+
function complex_differentiable_abs(z::T) where T <: Complex
8787
if real(z) < 0
8888
return -real(z) - im * imag(z)
8989
else
@@ -97,10 +97,10 @@ end
9797
##
9898
##############################################################################
9999

100-
function finite_difference!{S <: Number, T <: Number}(f,
101-
x::AbstractVector{S},
102-
g::AbstractVector{T},
103-
dtype::Symbol)
100+
function finite_difference!(f,
101+
x::AbstractVector{S},
102+
g::AbstractVector{T},
103+
dtype::Symbol) where {S <: Number, T <: Number}
104104
# What is the dimension of x?
105105
n = length(x)
106106

@@ -135,9 +135,9 @@ function finite_difference!{S <: Number, T <: Number}(f,
135135

136136
return
137137
end
138-
function finite_difference{T <: Number}(f,
139-
x::AbstractVector{T},
140-
dtype::Symbol = :central)
138+
function finite_difference(f,
139+
x::AbstractVector{T},
140+
dtype::Symbol = :central) where T <: Number
141141
# Allocate memory for gradient
142142
g = Vector{Float64}(length(x))
143143

@@ -154,13 +154,13 @@ end
154154
##
155155
##############################################################################
156156

157-
function finite_difference_jacobian!{R <: Number,
158-
S <: Number,
159-
T <: Number}(f,
160-
x::AbstractVector{R},
161-
f_x::AbstractVector{S},
162-
J::Array{T},
163-
dtype::Symbol = :central)
157+
function finite_difference_jacobian!(f,
158+
x::AbstractVector{R},
159+
f_x::AbstractVector{S},
160+
J::Array{T},
161+
dtype::Symbol = :central) where {R <: Number,
162+
S <: Number,
163+
T <: Number}
164164
# What is the dimension of x?
165165
m, n = size(J)
166166

@@ -190,9 +190,9 @@ function finite_difference_jacobian!{R <: Number,
190190

191191
return
192192
end
193-
function finite_difference_jacobian{T <: Number}(f,
194-
x::AbstractVector{T},
195-
dtype::Symbol = :central)
193+
function finite_difference_jacobian(f,
194+
x::AbstractVector{T},
195+
dtype::Symbol = :central) where T <: Number
196196
# Establish a baseline for f_x
197197
f_x = f(x)
198198

@@ -212,8 +212,8 @@ end
212212
##
213213
##############################################################################
214214

215-
function finite_difference_hessian{T <: Number}(f,
216-
x::T)
215+
function finite_difference_hessian(f,
216+
x::T) where T <: Number
217217
@hessianrule x epsilon
218218
(f(x + epsilon) - 2*f(x) + f(x - epsilon))/epsilon^2
219219
end
@@ -230,10 +230,10 @@ end
230230
##
231231
##############################################################################
232232

233-
function finite_difference_hessian!{S <: Number,
234-
T <: Number}(f,
235-
x::AbstractVector{S},
236-
H::Array{T})
233+
function finite_difference_hessian!(f,
234+
x::AbstractVector{S},
235+
H::Array{T}) where {S <: Number,
236+
T <: Number}
237237
# What is the dimension of x?
238238
n = length(x)
239239

@@ -263,8 +263,8 @@ function finite_difference_hessian!{S <: Number,
263263
end
264264
Base.LinAlg.copytri!(H,'U')
265265
end
266-
function finite_difference_hessian{T <: Number}(f,
267-
x::AbstractVector{T})
266+
function finite_difference_hessian(f,
267+
x::AbstractVector{T}) where T <: Number
268268
# What is the dimension of x?
269269
n = length(x)
270270

@@ -277,10 +277,10 @@ function finite_difference_hessian{T <: Number}(f,
277277
# Return the Hessian
278278
return H
279279
end
280-
function finite_difference_hessian{T <: Number}(f,
281-
g,
282-
x::AbstractVector{T},
283-
dtype::Symbol = :central)
280+
function finite_difference_hessian(f,
281+
g,
282+
x::AbstractVector{T},
283+
dtype::Symbol = :central) where T <: Number
284284
finite_difference_jacobian(g, x, dtype)
285285
end
286286

src/symbolic.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const SymbolicVariable = Union{Symbol, AbstractVariable}
2323
#
2424
#################################################################
2525

26-
type BasicVariable <: AbstractVariable
26+
mutable struct BasicVariable <: AbstractVariable
2727
sym::Symbol
2828
end
2929
# The following is probably too plain.
@@ -66,7 +66,7 @@ end
6666
#
6767
#################################################################
6868

69-
type SymbolParameter{T}
69+
mutable struct SymbolParameter{T}
7070
end
7171
SymbolParameter(s::Symbol) = SymbolParameter{s}()
7272

@@ -86,7 +86,7 @@ simplify(n::Number) = n
8686
simplify(s::SymbolicVariable) = s
8787

8888
# The default is just to simplify arguments.
89-
simplify{T}(x::SymbolParameter{T}, args) = Expr(:call, T, map(simplify, args)...)
89+
simplify(x::SymbolParameter{T}, args) where {T} = Expr(:call, T, map(simplify, args)...)
9090

9191
function simplify(ex::Expr)
9292
if ex.head != :call

0 commit comments

Comments
 (0)