Skip to content

Commit 5553f1a

Browse files
committed
CalcFactor -> CalcFactorNormSq and Abstract
1 parent 8101563 commit 5553f1a

File tree

7 files changed

+22
-13
lines changed

7 files changed

+22
-13
lines changed

src/ExportAPI.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ export CSMHistory,
236236

237237
# Factor operational memory
238238
CommonConvWrapper,
239-
AbstractCalcFactor,
240239
CalcFactor,
241240
getCliqVarInitOrderUp,
242241
getCliqNumAssocFactorsPerVar,

src/Factors/Circular.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ CircularCircular(::UniformScaling) = CircularCircular(Normal())
2121

2222
DFG.getManifold(::CircularCircular) = RealCircleGroup()
2323

24-
function (cf::AbstractCalcFactor{<:CircularCircular})(X, p, q)
24+
function (cf::CalcFactor{<:CircularCircular})(X, p, q)
2525
#
2626
M = cf.manifold # getManifold(cf.factor)
2727
return distanceTangent2Point(M, X, p, q)

src/Factors/DefaultPrior.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ getManifold(pr::Prior) = TranslationGroup(getDimension(pr.Z))
1414
# getSample(cf::CalcFactor{<:Prior}) = rand(cf.factor.Z)
1515

1616
# basic default
17-
(s::AbstractCalcFactor{<:Prior})(z, x1) = z .- x1
17+
(s::CalcFactor{<:Prior})(z, x1) = z .- x1
1818

1919
## packed types are still developed by hand. Future versions would likely use a @packable macro to write Protobuf safe versions of factors
2020

src/Factors/EuclidDistance.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ getManifold(::InstanceType{EuclidDistance}) = TranslationGroup(1)
1717
getDimension(::InstanceType{<:EuclidDistance}) = 1
1818

1919
# new and simplified interface for both nonparametric and parametric
20-
(s::AbstractCalcFactor{<:EuclidDistance})(z, x1, x2) = z .- norm(x2 .- x1)
20+
(s::CalcFactor{<:EuclidDistance})(z, x1, x2) = z .- norm(x2 .- x1)
2121

2222
function Base.convert(::Type{<:MB.AbstractManifold}, ::InstanceType{EuclidDistance})
2323
return Manifolds.TranslationGroup(1)

src/Factors/LinearRelative.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ getManifold(::InstanceType{LinearRelative{N}}) where {N} = getManifold(Continuou
3939
getDimension(::InstanceType{LinearRelative{N}}) where {N} = N
4040

4141
# new and simplified interface for both nonparametric and parametric
42-
function (s::AbstractCalcFactor{<:LinearRelative})(z, x1, x2)
42+
function (s::CalcFactor{<:LinearRelative})(z, x1, x2)
4343
# TODO convert to distance(distance(x2,x1),z) # or use dispatch on `-` -- what to do about `.-`
4444
# if s._sampleIdx < 5
4545
# @info "LinearRelative" s._sampleIdx "$z" "$x1" "$x2" s.solvefor getLabel.(s.fullvariables)

src/Factors/MsgPrior.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ getManifold(mp::MsgPrior{<:ManifoldKernelDensity}) = mp.Z.manifold
3333
getManifold(mp::MsgPrior) = mp.M
3434

3535
#FIXME this will not work on manifolds
36-
(cfo::AbstractCalcFactor{<:MsgPrior})(z, x1) = z .- x1
36+
(cfo::CalcFactor{<:MsgPrior})(z, x1) = z .- x1
3737

3838
Base.@kwdef struct PackedMsgPrior <: AbstractPackedFactor
3939
Z::PackedSamplableBelief

src/entities/CalcFactor.jl

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
abstract type AbstractMaxMixtureSolver end
33

44

5-
abstract type AbstractCalcFactor{T<:AbstractFactor} end
5+
abstract type CalcFactor{T<:AbstractFactor} end
6+
67

78
"""
89
$TYPEDEF
@@ -23,18 +24,19 @@ end
2324
2425
DevNotes
2526
- Follow the Github project in IIF to better consolidate CCW FMD CPT CF CFM
26-
27+
- TODO CalcFactorNormSq is a step towards having a dedicated structure for non-parametric solve.
28+
CalcFactorNormSq will calculate the Norm Squared of the factor.
2729
Related
2830
2931
[`CalcFactorMahalanobis`](@ref), [`CommonConvWrapper`](@ref)
3032
"""
31-
struct CalcFactor{
33+
struct CalcFactorNormSq{
3234
FT <: AbstractFactor,
3335
X,
3436
C,
3537
VT <: Tuple,
3638
M <: AbstractManifold
37-
} <: AbstractCalcFactor{FT}
39+
} <: CalcFactor{FT}
3840
""" the interface compliant user object functor containing the data and logic """
3941
factor::FT
4042
""" what is the sample (particle) id for which the residual is being calculated """
@@ -56,7 +58,15 @@ struct CalcFactor{
5658
manifold::M
5759
end
5860

59-
61+
#TODO deprecate after CalcFactor is updated to CalcFactorNormSq
62+
function CalcFactor(args...; kwargs...)
63+
Base.depwarn(
64+
"`CalcFactor` changed to an abstract type, use CalcFactorNormSq, CalcFactorMahalanobis, or CalcFactorResidual",
65+
:CalcFactor
66+
)
67+
68+
CalcFactorNormSq(args...; kwargs...)
69+
end
6070

6171
"""
6272
$TYPEDEF
@@ -75,7 +85,7 @@ struct CalcFactorMahalanobis{
7585
D,
7686
L,
7787
S <: Union{Nothing, AbstractMaxMixtureSolver}
78-
} <: AbstractCalcFactor{FT}
88+
} <: CalcFactor{FT}
7989
faclbl::Symbol
8090
factor::FT
8191
cache::C
@@ -94,7 +104,7 @@ struct CalcFactorResidual{
94104
P,
95105
MEAS <: AbstractArray,
96106
N
97-
} <: AbstractCalcFactor{FT}
107+
} <: CalcFactor{FT}
98108
faclbl::Symbol
99109
factor::FT
100110
cache::C

0 commit comments

Comments
 (0)