Documentation
¶
Index ¶
- func ComplementaryMaxAngleError() float64
- func Compute(probe, candidate *templates.SearchTemplate, pairing *PairingGraph, ...)
- func Crawl(pedges, cedges [][]*features.NeighborEdge, pairing *PairingGraph, ...)
- func Enumerate(probe *Probe, candidate *templates.SearchTemplate, roots *RootList)
- func Hash(edge *features.EdgeShape) int
- func Matching(probe *features.IndexedEdge, candidate *features.EdgeShape) bool
- type EdgeHashBuilder
- type HashTableLogger
- type Matcher
- type MatcherLogger
- type MatcherThread
- type MinutiaPair
- type MinutiaPairPool
- type PairingGraph
- type PriorityQueue
- type Probe
- type RootList
- type ScoringData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ComplementaryMaxAngleError ¶
func ComplementaryMaxAngleError() float64
func Compute ¶
func Compute(probe, candidate *templates.SearchTemplate, pairing *PairingGraph, score *ScoringData)
func Crawl ¶
func Crawl(pedges, cedges [][]*features.NeighborEdge, pairing *PairingGraph, root *MinutiaPair, queue *PriorityQueue)
Types ¶
type EdgeHashBuilder ¶
type EdgeHashBuilder struct {
// contains filtered or unexported fields
}
func NewEdgeHashBuilder ¶
func NewEdgeHashBuilder(logger HashTableLogger) *EdgeHashBuilder
func (*EdgeHashBuilder) Build ¶
func (b *EdgeHashBuilder) Build(template *templates.SearchTemplate) (map[int][]*features.IndexedEdge, error)
type HashTableLogger ¶
type HashTableLogger interface {
LogEdgeHash(map[int][]*features.IndexedEdge) error
}
type Matcher ¶
type Matcher struct {
// contains filtered or unexported fields
}
func NewMatcher ¶
func NewMatcher(logger MatcherLogger) *Matcher
type MatcherLogger ¶
type MatcherLogger interface { LogRootPairs(count int, roots []*MinutiaPair) error LogPairing(pairing *PairingGraph) error LogBestPairing(pairing *PairingGraph) error LogScore(score *ScoringData) error LogBestScore(score *ScoringData) error LogBestMatch(int) error }
type MatcherThread ¶
type MatcherThread struct { Roots *RootList Pairing *PairingGraph Queue PriorityQueue Score *ScoringData }
func CurrentThread ¶
func CurrentThread(ctx context.Context) *MatcherThread
type MinutiaPair ¶
type MinutiaPair struct {
Probe, Candidate, ProbeRef, CandidateRef int
// contains filtered or unexported fields
}
type MinutiaPairPool ¶
type MinutiaPairPool struct {
// contains filtered or unexported fields
}
func NewMinutiaPairPool ¶
func NewMinutiaPairPool() *MinutiaPairPool
func (*MinutiaPairPool) Allocate ¶
func (p *MinutiaPairPool) Allocate() *MinutiaPair
func (*MinutiaPairPool) Release ¶
func (p *MinutiaPairPool) Release(pair *MinutiaPair)
type PairingGraph ¶
type PairingGraph struct { Count int Tree, Support []*MinutiaPair // contains filtered or unexported fields }
func NewPairingGraph ¶
func NewPairingGraph(pool *MinutiaPairPool) *PairingGraph
func (*PairingGraph) AddPair ¶
func (g *PairingGraph) AddPair(pair *MinutiaPair)
func (*PairingGraph) Clear ¶
func (g *PairingGraph) Clear()
func (*PairingGraph) ReserveCandidate ¶
func (g *PairingGraph) ReserveCandidate(candidate *templates.SearchTemplate)
func (*PairingGraph) ReserveProbe ¶
func (g *PairingGraph) ReserveProbe(probe *Probe)
func (*PairingGraph) SupportPair ¶
func (g *PairingGraph) SupportPair(pair *MinutiaPair)
type PriorityQueue ¶
type PriorityQueue []*MinutiaPair
func (PriorityQueue) Len ¶
func (pq PriorityQueue) Len() int
func (PriorityQueue) Less ¶
func (pq PriorityQueue) Less(i, j int) bool
func (*PriorityQueue) Pop ¶
func (pq *PriorityQueue) Pop() any
func (*PriorityQueue) Push ¶
func (pq *PriorityQueue) Push(x any)
func (PriorityQueue) Swap ¶
func (pq PriorityQueue) Swap(i, j int)
type Probe ¶
type Probe struct {
// contains filtered or unexported fields
}
func NewProbe ¶
func NewProbe(template *templates.SearchTemplate, hash map[int][]*features.IndexedEdge) *Probe
type RootList ¶
type RootList struct {
// contains filtered or unexported fields
}
func NewRootList ¶
func NewRootList(pool *MinutiaPairPool) *RootList
func (*RootList) Add ¶
func (r *RootList) Add(pair *MinutiaPair)
type ScoringData ¶
type ScoringData struct { MinutiaCount int MinutiaScore float64 MinutiaFractionInProbe float64 MinutiaFractionInCandidate float64 MinutiaFraction float64 MinutiaFractionScore float64 SupportingEdgeSum int EdgeCount int EdgeScore float64 SupportedMinutiaCount int SupportedMinutiaScore float64 MinutiaTypeHits int MinutiaTypeScore float64 DistanceErrorSum int DistanceAccuracySum int DistanceAccuracyScore float64 AngleErrorSum float64 AngleAccuracySum float64 AngleAccuracyScore float64 TotalScore float64 ShapedScore float64 }
Click to show internal directories.
Click to hide internal directories.