Sign in

    python123-ops/moon-cv-geometry/ransac does not have a README file

    AdaptiveConsensus

    pub(all) struct AdaptiveConsensus {
    ratio : Double
    threshold : Double
    iterations : Int
    }

    AdaptiveConsensus::iterations

    fn AdaptiveConsensus::iterations(state : AdaptiveConsensus) -> Int

    AdaptiveConsensus::new

    fn AdaptiveConsensus::new(threshold~ : Double) -> AdaptiveConsensus

    AdaptiveConsensus::ratio

    fn AdaptiveConsensus::ratio(state : AdaptiveConsensus) -> Double

    AdaptiveConsensus::should_stop

    fn AdaptiveConsensus::should_stop(state : AdaptiveConsensus, minimum_ratio : Double, minimum_iterations : Int) -> Bool

    AdaptiveConsensus::update

    fn AdaptiveConsensus::update(state : AdaptiveConsensus, residuals : ArrayView[Double]) -> Unit

    AdaptiveStopState

    pub(all) struct AdaptiveStopState {
    minimum_iterations : Int
    target_ratio : Double
    iterations : Int
    best_ratio : Double
    stable_iterations : Int
    } derive(Eq,
    Debug
    )

    Running consensus state for early stopping and budget control.

    AdaptiveStopState::is_stable

    fn AdaptiveStopState::is_stable(state : AdaptiveStopState, minimum_repetitions : Int) -> Bool

    AdaptiveStopState::new

    fn AdaptiveStopState::new(minimum_iterations~ : Int, target_ratio~ : Double) -> AdaptiveStopState

    AdaptiveStopState::observe

    fn AdaptiveStopState::observe(state : AdaptiveStopState, inliers~ : Int, total~ : Int) -> Unit

    AdaptiveStopState::progress

    fn AdaptiveStopState::progress(state : AdaptiveStopState, maximum_iterations : Int) -> Double

    AdaptiveStopState::remaining

    fn AdaptiveStopState::remaining(state : AdaptiveStopState, maximum_iterations : Int) -> Int

    AdaptiveStopState::should_stop

    fn AdaptiveStopState::should_stop(state : AdaptiveStopState) -> Bool

    ConsensusCandidate2

    pub(all) struct ConsensusCandidate2 {
    inliers : Int
    total : Int
    ratio : Double
    score : Double
    residual_sum : Double
    threshold : Double
    } derive(Eq,
    Debug
    )

    Candidate consensus summary used for deterministic model ranking.

    ConsensusRecord

    pub(all) struct ConsensusRecord {
    inlier_count : Int
    score : Double
    residual_sum : Double
    } derive(Eq,
    Debug
    )

    Ranked consensus record for repeated model evaluation.

    ConsensusReport

    pub(all) struct ConsensusReport {
    total : Int
    inliers : Int
    ratio : Double
    mean_inlier_error : Double
    max_inlier_error : Double
    } derive(Eq,
    Debug
    )

    ConsensusReport::acceptable

    fn ConsensusReport::acceptable(report : ConsensusReport, minimum_ratio~ : Double, maximum_mean_error~ : Double) -> Bool

    ConsensusReport::summary_score

    fn ConsensusReport::summary_score(report : ConsensusReport) -> Double

    ConsensusTable

    pub(all) struct ConsensusTable {
    threshold : Double
    records : Array[ConsensusRecord]
    }

    ConsensusTable::best_inlier_count

    fn ConsensusTable::best_inlier_count(table : ConsensusTable) -> Int

    ConsensusTable::best_record

    fn ConsensusTable::best_record(table : ConsensusTable) -> ConsensusRecord?

    ConsensusTable::best_score

    fn ConsensusTable::best_score(table : ConsensusTable) -> Double

    ConsensusTable::clear

    fn ConsensusTable::clear(table : ConsensusTable) -> Unit

    ConsensusTable::evaluated_models

    fn ConsensusTable::evaluated_models(table : ConsensusTable) -> Int

    ConsensusTable::new

    fn ConsensusTable::new(threshold~ : Double) -> ConsensusTable

    ConsensusTable::observe

    fn ConsensusTable::observe(table : ConsensusTable, residuals : ArrayView[Double]) -> Unit

    DeterministicSampler

    pub(all) struct DeterministicSampler {
    state : Int
    }

    A small deterministic integer generator for reproducible RANSAC sampling.

    DeterministicSampler::new

    DeterministicSampler::next

    fn DeterministicSampler::next(sampler : DeterministicSampler, bound : Int) -> Int

    DiagnosticReport

    pub(all) struct DiagnosticReport {
    total : Int
    inliers : Int
    outliers : Int
    inlier_ratio : Double
    mean_inlier : Double
    rms : Double
    maximum : Double
    label : String
    } derive(Eq,
    Debug
    )

    Detailed diagnostics for a residual consensus set.

    InlierMask

    pub(all) struct InlierMask {
    values : Array[Bool]
    } derive(Eq,
    Debug
    )

    InlierMask::count

    fn InlierMask::count(mask : InlierMask) -> Int

    InlierMask::indices

    fn InlierMask::indices(mask : InlierMask) -> Array[Int]

    InlierMask::is_inlier

    InlierMask::length

    fn InlierMask::length(mask : InlierMask) -> Int

    IterationSchedule

    pub(all) struct IterationSchedule {
    max_iterations : Int
    confidence : Double
    }

    IterationSchedule::limit_for

    fn IterationSchedule::limit_for(schedule : IterationSchedule, inlier_ratio : Double, sample_size : Int) -> Int

    IterationSchedule::new

    fn IterationSchedule::new(max_iterations~ : Int, confidence~ : Double) -> IterationSchedule

    IterationSchedule::progress

    fn IterationSchedule::progress(schedule : IterationSchedule, iteration~ : Int, observed_inlier_ratio~ : Double, sample_size~ : Int) -> ScheduleProgress

    MlesacConfig

    pub(all) struct MlesacConfig {
    inlier_scale : Double
    outlier_scale : Double
    } derive(Eq,
    Debug
    )

    MlesacConfig::new

    fn MlesacConfig::new(inlier_scale~ : Double, outlier_scale~ : Double) -> MlesacConfig

    MlesacConfig::valid

    fn MlesacConfig::valid(config : MlesacConfig) -> Bool

    ModelReport

    pub(all) struct ModelReport {
    iterations : Int
    inliers : Int
    total : Int
    ratio : Double
    score : Double
    converged : Bool
    } derive(Eq,
    Debug
    )

    Human- and machine-readable summary for an estimated model.

    ModelReport::confidence

    fn ModelReport::confidence(report : ModelReport) -> Double

    ModelReport::is_usable

    fn ModelReport::is_usable(report : ModelReport, minimum_ratio : Double, minimum_inliers : Int) -> Bool

    ModelSelectionSummary

    pub(all) struct ModelSelectionSummary {
    candidates : Int
    usable : Int
    best_index : Int
    best_score : Double
    mean_ratio : Double
    mean_iterations : Double
    } derive(Eq,
    Debug
    )

    Model-selection and audit helpers for production consensus pipelines.

    RansacConfig

    pub(all) struct RansacConfig {
    iterations : Int
    threshold : Double
    min_inliers : Int
    seed : UInt
    } derive(Eq,
    Debug
    )

    RansacConfig::new

    fn RansacConfig::new(iterations? : Int, threshold? : Double, min_inliers? : Int, seed? : UInt) -> RansacConfig

    RansacConfig::validated

    RansacResult

    pub(all) struct RansacResult[T] {
    model : T
    inliers : InlierMask
    inlier_count : Int
    score : Double
    } derive(Eq,
    Debug
    )

    RansacResult::inlier_ratio

    fn[T] RansacResult::inlier_ratio(result : RansacResult[T]) -> Double

    RansacResult::is_confident

    fn[T] RansacResult::is_confident(result : RansacResult[T], minimum_ratio? : Double) -> Bool

    RansacResult::outlier_count

    fn[T] RansacResult::outlier_count(result : RansacResult[T]) -> Int

    SampleBatchSummary

    pub(all) struct SampleBatchSummary {
    samples : Int
    dimensions : Int
    unique : Int
    duplicate_count : Int
    coverage : Double
    score : Double
    } derive(Eq,
    Debug
    )

    Deterministic sample-set diagnostics for reproducible RANSAC runs.

    ScheduleProgress

    pub(all) struct ScheduleProgress {
    iteration : Int
    iterations_remaining : Int
    best_ratio : Double
    expected_success : Double
    } derive(Eq,
    Debug
    )

    ThresholdSweepResult

    pub(all) struct ThresholdSweepResult {
    threshold : Double
    inliers : Int
    score : Double
    } derive(Eq,
    Debug
    )

    ThresholdSweepResult::acceptable

    fn ThresholdSweepResult::acceptable(result : ThresholdSweepResult, total : Int, minimum_ratio~ : Double) -> Bool

    ThresholdSweepResult::ratio

    fn ThresholdSweepResult::ratio(result : ThresholdSweepResult, total : Int) -> Double

    adaptive_budget_schedule

    fn adaptive_budget_schedule(initial : Int, decay : Double, count : Int) -> Array[Int]

    adaptive_confidence

    fn adaptive_confidence(ratio : Double, sample_size : Int, iterations : Int) -> Double

    adaptive_iteration_bound

    fn adaptive_iteration_bound(inlier_ratio~ : Double, sample_size~ : Int, confidence? : Double) -> Int raise
    GeometryError

    adaptive_required_iterations

    fn adaptive_required_iterations(ratio : Double, sample_size : Int, target_confidence : Double, maximum : Int) -> Int

    adaptive_threshold

    fn adaptive_threshold(residuals : ArrayView[Double], floor : Double, multiplier : Double) -> Double raise
    GeometryError

    adaptive_threshold_schedule

    fn adaptive_threshold_schedule(initial : Double, growth : Double, count : Int) -> Array[Double]

    best_model_report

    fn best_model_report(reports : ArrayView[ModelReport]) -> ModelReport?

    better_result

    fn[T] better_result(candidate : RansacResult[T], incumbent : RansacResult[T]) -> Bool

    candidate_inlier_residuals

    fn candidate_inlier_residuals(candidate : ConsensusCandidate2, residuals : ArrayView[Double]) -> Array[Double]

    candidate_is_confident

    fn candidate_is_confident(best : ConsensusCandidate2, second : ConsensusCandidate2, minimum_margin : Double) -> Bool

    candidate_margin

    fn candidate_margin(best : ConsensusCandidate2, second : ConsensusCandidate2) -> Double

    candidate_mask

    fn candidate_mask(candidate : ConsensusCandidate2, residuals : ArrayView[Double]) -> Array[Bool]

    candidate_outlier_residuals

    fn candidate_outlier_residuals(candidate : ConsensusCandidate2, residuals : ArrayView[Double]) -> Array[Double]

    candidate_refined_threshold

    fn candidate_refined_threshold(candidate : ConsensusCandidate2, residuals : ArrayView[Double], multiplier : Double, minimum : Double) -> Double raise
    GeometryError

    candidate_score_per_point

    fn candidate_score_per_point(candidate : ConsensusCandidate2) -> Double

    candidate_support_score

    fn candidate_support_score(candidate : ConsensusCandidate2, expected_minimum : Int) -> Double

    cauchy_loss2

    fn cauchy_loss2(residual : Double, scale : Double) -> Double

    cauchy_weight2

    fn cauchy_weight2(residual : Double, scale : Double) -> Double

    clipped_residuals

    fn clipped_residuals(residuals : ArrayView[Double], cutoff~ : Double) -> Array[Double]

    confidence_from_success

    fn confidence_from_success(iterations~ : Int, success_probability~ : Double) -> Double raise
    GeometryError

    consensus_candidate

    fn consensus_candidate(residuals : ArrayView[Double], threshold : Double) -> ConsensusCandidate2

    consensus_candidate_better

    fn consensus_candidate_better(left : ConsensusCandidate2, right : ConsensusCandidate2) -> Bool

    consensus_mask

    fn consensus_mask(residuals : ArrayView[Double], threshold : Double) -> Array[Bool]

    consensus_ratio

    fn consensus_ratio(mask : InlierMask) -> Double

    deterministic_indices

    fn deterministic_indices(length~ : Int, count~ : Int, seed~ : UInt) -> Array[Int] raise
    GeometryError

    deterministic_sample_indices

    fn deterministic_sample_indices(population~ : Int, sample_size~ : Int, seed~ : Int) -> Array[Int]

    diagnostic_adaptive_threshold

    fn diagnostic_adaptive_threshold(residuals : ArrayView[Double], multiplier : Double, minimum : Double) -> Double raise
    GeometryError

    diagnostic_compare

    fn diagnostic_compare(left : DiagnosticReport, right : DiagnosticReport) -> Int

    diagnostic_csv_document

    fn diagnostic_csv_document(reports : ArrayView[DiagnosticReport]) -> String

    diagnostic_csv_header

    fn diagnostic_csv_header() -> String

    diagnostic_csv_row

    fn diagnostic_csv_row(report : DiagnosticReport) -> String

    Stable comma-separated diagnostic row for CI and benchmark artifacts.

    diagnostic_inlier_indices

    fn diagnostic_inlier_indices(residuals : ArrayView[Double], threshold : Double) -> Array[Int]

    diagnostic_json_like

    fn diagnostic_json_like(report : DiagnosticReport) -> String

    diagnostic_label

    fn diagnostic_label(inlier_ratio : Double, mean_inlier : Double, threshold : Double) -> String

    diagnostic_mad

    fn diagnostic_mad(residuals : ArrayView[Double]) -> Double raise
    GeometryError

    diagnostic_outlier_indices

    fn diagnostic_outlier_indices(residuals : ArrayView[Double], threshold : Double) -> Array[Int]

    diagnostic_percentile

    fn diagnostic_percentile(residuals : ArrayView[Double], probability : Double) -> Double raise
    GeometryError

    diagnostic_quality_bucket

    fn diagnostic_quality_bucket(report : DiagnosticReport) -> Int

    diagnostic_quality_name

    fn diagnostic_quality_name(bucket : Int) -> String

    diagnostic_rank

    fn diagnostic_rank(reports : ArrayView[DiagnosticReport]) -> Array[DiagnosticReport]

    diagnostic_report_acceptable

    fn diagnostic_report_acceptable(report : DiagnosticReport, minimum_ratio : Double, maximum_rms : Double) -> Bool

    diagnostic_report_confidence

    fn diagnostic_report_confidence(report : DiagnosticReport, iterations : Int) -> Double

    diagnostic_report_csv_full

    fn diagnostic_report_csv_full(report : DiagnosticReport) -> String

    diagnostic_report_error_ratio

    fn diagnostic_report_error_ratio(report : DiagnosticReport) -> Double

    diagnostic_report_header

    fn diagnostic_report_header() -> String

    Compact diagnostic exports used by CI benchmark artifacts.

    diagnostic_report_health

    fn diagnostic_report_health(report : DiagnosticReport, minimum_ratio : Double, maximum_rms : Double) -> Double

    diagnostic_report_health_label

    fn diagnostic_report_health_label(report : DiagnosticReport, minimum_ratio : Double, maximum_rms : Double) -> String

    diagnostic_report_inlier_fraction

    fn diagnostic_report_inlier_fraction(report : DiagnosticReport) -> Double

    diagnostic_report_is_empty

    fn diagnostic_report_is_empty(report : DiagnosticReport) -> Bool

    diagnostic_report_is_good

    fn diagnostic_report_is_good(report : DiagnosticReport, minimum_ratio : Double, maximum_rms : Double) -> Bool

    diagnostic_report_json_full

    fn diagnostic_report_json_full(report : DiagnosticReport) -> String

    diagnostic_report_margin

    fn diagnostic_report_margin(report : DiagnosticReport, minimum_ratio : Double, maximum_rms : Double) -> Double

    diagnostic_report_merge

    fn diagnostic_report_merge(left : DiagnosticReport, right : DiagnosticReport) -> DiagnosticReport

    diagnostic_report_outlier_fraction

    fn diagnostic_report_outlier_fraction(report : DiagnosticReport) -> Double

    diagnostic_report_passes

    fn diagnostic_report_passes(report : DiagnosticReport, minimum_inliers : Int, maximum_rms : Double) -> Bool

    diagnostic_report_rows

    fn diagnostic_report_rows(reports : ArrayView[DiagnosticReport]) -> Array[String]

    diagnostic_report_scale

    fn diagnostic_report_scale(report : DiagnosticReport, scale : Double) -> DiagnosticReport

    diagnostic_report_signal_to_error

    fn diagnostic_report_signal_to_error(report : DiagnosticReport) -> Double

    diagnostic_report_threshold

    fn diagnostic_report_threshold(report : DiagnosticReport) -> Double

    diagnostic_reports_csv

    fn diagnostic_reports_csv(reports : ArrayView[DiagnosticReport]) -> String

    diagnostic_reports_json

    fn diagnostic_reports_json(reports : ArrayView[DiagnosticReport]) -> String

    diagnostic_residual_histogram

    fn diagnostic_residual_histogram(residuals : ArrayView[Double], bins : Int, maximum : Double) -> Array[Int]

    diagnostic_score

    fn diagnostic_score(report : DiagnosticReport, scale : Double) -> Double

    diagnostic_series_append

    fn diagnostic_series_append(target : Array[DiagnosticReport], reports : ArrayView[DiagnosticReport]) -> Unit

    diagnostic_series_best

    fn diagnostic_series_best(reports : ArrayView[DiagnosticReport]) -> DiagnosticReport?

    diagnostic_series_buckets

    fn diagnostic_series_buckets(reports : ArrayView[DiagnosticReport]) -> Array[Int]

    diagnostic_series_drop

    fn diagnostic_series_drop(reports : ArrayView[DiagnosticReport], count : Int) -> Array[DiagnosticReport]

    diagnostic_series_improvement

    fn diagnostic_series_improvement(reports : ArrayView[DiagnosticReport]) -> Double

    diagnostic_series_inlier_mean

    fn diagnostic_series_inlier_mean(reports : ArrayView[DiagnosticReport]) -> Double

    diagnostic_series_labels

    fn diagnostic_series_labels(reports : ArrayView[DiagnosticReport]) -> Array[String]

    diagnostic_series_last

    fn diagnostic_series_last(reports : ArrayView[DiagnosticReport]) -> DiagnosticReport?

    diagnostic_series_maximum

    fn diagnostic_series_maximum(reports : ArrayView[DiagnosticReport]) -> Double

    diagnostic_series_mean

    fn diagnostic_series_mean(reports : ArrayView[DiagnosticReport]) -> Double

    Diagnostic time-series helpers for monitoring robust estimators in production.

    diagnostic_series_merge

    fn diagnostic_series_merge(left : ArrayView[DiagnosticReport], right : ArrayView[DiagnosticReport]) -> Array[DiagnosticReport]

    diagnostic_series_minimum

    fn diagnostic_series_minimum(reports : ArrayView[DiagnosticReport]) -> Double

    diagnostic_series_pass_count

    fn diagnostic_series_pass_count(reports : ArrayView[DiagnosticReport], minimum_inliers : Int, maximum_rms : Double) -> Int

    diagnostic_series_pass_ratio

    fn diagnostic_series_pass_ratio(reports : ArrayView[DiagnosticReport], minimum_inliers : Int, maximum_rms : Double) -> Double

    diagnostic_series_quality

    fn diagnostic_series_quality(reports : ArrayView[DiagnosticReport], minimum_inliers : Int, maximum_rms : Double) -> Double

    diagnostic_series_scale

    fn diagnostic_series_scale(reports : ArrayView[DiagnosticReport], scale : Double) -> Array[DiagnosticReport]

    diagnostic_series_stable

    fn diagnostic_series_stable(reports : ArrayView[DiagnosticReport], tolerance : Double) -> Bool

    diagnostic_series_summary

    fn diagnostic_series_summary(reports : ArrayView[DiagnosticReport]) -> String

    diagnostic_series_take

    fn diagnostic_series_take(reports : ArrayView[DiagnosticReport], count : Int) -> Array[DiagnosticReport]

    diagnostic_series_window

    fn diagnostic_series_window(reports : ArrayView[DiagnosticReport], start : Int, width : Int) -> Array[DiagnosticReport]

    diagnostic_summary_line

    fn diagnostic_summary_line(report : DiagnosticReport) -> String

    evaluate_consensus_candidates

    fn evaluate_consensus_candidates(residual_sets : ArrayView[Array[Double]], threshold~ : Double) -> Array[ConsensusCandidate2]

    expected_successes

    fn expected_successes(iterations~ : Int, inlier_ratio~ : Double, sample_size~ : Int) -> Double raise
    GeometryError

    geman_mcclure_loss2

    fn geman_mcclure_loss2(residual : Double, scale : Double) -> Double

    geman_mcclure_weight2

    fn geman_mcclure_weight2(residual : Double, scale : Double) -> Double

    huber_loss

    fn huber_loss(residual~ : Double, delta? : Double) -> Double

    huber_loss2

    fn huber_loss2(residual~ : Double, delta? : Double) -> Double

    Huber loss with an explicit transition scale.

    huber_weight2

    fn huber_weight2(residual : Double, delta : Double) -> Double

    inlier_indices

    fn inlier_indices(residuals : ArrayView[Double], threshold : Double) -> Array[Int]

    Small diagnostics used by CLI reports and CI smoke checks.

    inlier_ratio_from_mask

    fn inlier_ratio_from_mask(mask : InlierMask) -> Double

    inlier_weight

    fn inlier_weight(residual~ : Double, threshold~ : Double) -> Double

    make_diagnostic_report

    fn make_diagnostic_report(residuals : ArrayView[Double], threshold~ : Double) -> DiagnosticReport

    make_model_report

    fn make_model_report(iterations~ : Int, inliers~ : Int, total~ : Int, score~ : Double, converged~ : Bool) -> ModelReport

    median_inlier_residual

    fn median_inlier_residual(residuals : ArrayView[Double], threshold : Double) -> Double raise
    GeometryError

    minimum_consensus_count

    fn minimum_consensus_count(total~ : Int, ratio~ : Double) -> Int raise
    GeometryError

    model_report_best

    fn model_report_best(reports : ArrayView[ModelReport], minimum_ratio : Double, minimum_inliers : Int) -> ModelReport?

    model_report_best_index

    fn model_report_best_index(reports : ArrayView[ModelReport], minimum_ratio : Double, minimum_inliers : Int) -> Int

    model_report_bucket_counts

    fn model_report_bucket_counts(reports : ArrayView[ModelReport]) -> Array[Int]

    model_report_budget

    fn model_report_budget(report : ModelReport, maximum_iterations : Int) -> Int

    model_report_consensus_ratio

    fn model_report_consensus_ratio(reports : ArrayView[ModelReport]) -> Double

    model_report_consensus_spread

    fn model_report_consensus_spread(reports : ArrayView[ModelReport]) -> Double

    model_report_expected_success

    fn model_report_expected_success(report : ModelReport, confidence : Double) -> Double

    model_report_filter_converged

    fn model_report_filter_converged(reports : ArrayView[ModelReport]) -> Array[ModelReport]

    model_report_filter_inliers

    fn model_report_filter_inliers(reports : ArrayView[ModelReport], minimum_inliers : Int) -> Array[ModelReport]

    model_report_filter_ratio

    fn model_report_filter_ratio(reports : ArrayView[ModelReport], minimum_ratio : Double) -> Array[ModelReport]

    model_report_is_degenerate

    fn model_report_is_degenerate(report : ModelReport) -> Bool

    model_report_merge

    fn model_report_merge(left : ModelReport, right : ModelReport) -> ModelReport

    model_report_merge_all

    fn model_report_merge_all(reports : ArrayView[ModelReport]) -> ModelReport

    model_report_quality_bucket

    fn model_report_quality_bucket(report : ModelReport) -> Int

    model_report_rank

    fn model_report_rank(reports : ArrayView[ModelReport], minimum_ratio : Double, minimum_inliers : Int) -> Array[Int]

    model_report_reliability

    fn model_report_reliability(report : ModelReport, maximum_iterations : Int) -> Double

    model_report_score

    fn model_report_score(report : ModelReport, ratio_weight : Double, iteration_weight : Double) -> Double

    model_report_sort_by_ratio

    fn model_report_sort_by_ratio(reports : ArrayView[ModelReport]) -> Array[ModelReport]

    model_report_sort_by_score

    fn model_report_sort_by_score(reports : ArrayView[ModelReport]) -> Array[ModelReport]

    model_report_stability

    fn model_report_stability(reports : ArrayView[ModelReport], maximum_spread : Double) -> Double

    model_report_to_csv

    fn model_report_to_csv(report : ModelReport) -> String

    model_reports_to_csv

    fn model_reports_to_csv(reports : ArrayView[ModelReport]) -> String

    model_selection_summary

    fn model_selection_summary(reports : ArrayView[ModelReport], minimum_ratio : Double, minimum_inliers : Int) -> ModelSelectionSummary

    normalized_score

    fn[T] normalized_score(result : RansacResult[T]) -> Double

    outlier_ratio

    fn outlier_ratio(residuals : ArrayView[Double], threshold : Double) -> Double

    pseudo_huber_loss2

    fn pseudo_huber_loss2(residual : Double, delta : Double) -> Double

    pseudo_huber_weight2

    fn pseudo_huber_weight2(residual : Double, delta : Double) -> Double

    quality_label

    fn quality_label(inlier_ratio : Double, median_error : Double, good_ratio : Double, max_error : Double) -> String

    rank_consensus_candidates

    fn rank_consensus_candidates(candidates : ArrayView[ConsensusCandidate2]) -> Array[ConsensusCandidate2]

    rank_model_reports

    fn rank_model_reports(reports : ArrayView[ModelReport]) -> Array[ModelReport]

    rank_results

    fn[T] rank_results(results : ArrayView[RansacResult[T]]) -> Array[Int]

    report_from_residuals

    fn report_from_residuals(residuals : ArrayView[Double], threshold~ : Double) -> ConsensusReport raise
    GeometryError

    report_summary

    fn report_summary(reports : ArrayView[ModelReport]) -> (Int, Int, Double)

    required_iterations

    fn required_iterations(success_probability~ : Double, confidence? : Double) -> Int raise
    GeometryError

    residual_is_inlier

    fn residual_is_inlier(residual~ : Double, threshold~ : Double) -> Bool

    residual_mean_for_mask

    fn residual_mean_for_mask(residuals : ArrayView[Double], mask : InlierMask) -> Double raise
    GeometryError

    residual_threshold_from_sigma

    fn residual_threshold_from_sigma(sigma~ : Double, confidence_multiplier? : Double) -> Double raise
    GeometryError

    robust_cost

    fn robust_cost(residuals : ArrayView[Double], delta? : Double) -> Double

    robust_loss_batch

    fn robust_loss_batch(residuals : ArrayView[Double], scale : Double) -> Array[Double]

    robust_loss_mean

    fn robust_loss_mean(residuals : ArrayView[Double], scale : Double) -> Double

    robust_loss_sum

    fn robust_loss_sum(residuals : ArrayView[Double], scale : Double) -> Double

    robust_weight_batch

    fn robust_weight_batch(residuals : ArrayView[Double], scale : Double) -> Array[Double]

    robust_weighted_batch

    fn robust_weighted_batch(residuals : ArrayView[Double], weights : ArrayView[Double]) -> Array[Double]

    robust_weighted_residual

    fn robust_weighted_residual(residual : Double, weight : Double) -> Double

    sample_batch_coverage

    fn sample_batch_coverage(indices : ArrayView[Int], population : Int) -> Double

    sample_batch_delta

    fn sample_batch_delta(indices : ArrayView[Int]) -> Array[Int]

    sample_batch_difference

    fn sample_batch_difference(left : ArrayView[Int], right : ArrayView[Int]) -> Array[Int]

    sample_batch_duplicate_count

    fn sample_batch_duplicate_count(indices : ArrayView[Int]) -> Int

    sample_batch_evenness

    fn sample_batch_evenness(indices : ArrayView[Int]) -> Double

    sample_batch_intersection

    fn sample_batch_intersection(left : ArrayView[Int], right : ArrayView[Int]) -> Array[Int]

    sample_batch_is_valid

    fn sample_batch_is_valid(indices : ArrayView[Int], population : Int, minimum : Int) -> Bool

    sample_batch_jaccard

    fn sample_batch_jaccard(left : ArrayView[Int], right : ArrayView[Int]) -> Double

    sample_batch_maximum

    fn sample_batch_maximum(indices : ArrayView[Int]) -> Int

    sample_batch_mean_delta

    fn sample_batch_mean_delta(indices : ArrayView[Int]) -> Double

    sample_batch_minimum

    fn sample_batch_minimum(indices : ArrayView[Int]) -> Int

    sample_batch_out_of_range

    fn sample_batch_out_of_range(indices : ArrayView[Int], population : Int) -> Array[Int]

    sample_batch_partition

    fn sample_batch_partition(indices : ArrayView[Int], partition_count : Int) -> Array[Array[Int]]

    sample_batch_partition_balance

    fn sample_batch_partition_balance(indices : ArrayView[Int], partition_count : Int) -> Double

    sample_batch_repeat

    fn sample_batch_repeat(indices : ArrayView[Int], repetitions : Int) -> Array[Int]

    sample_batch_rotate

    fn sample_batch_rotate(indices : ArrayView[Int], offset : Int) -> Array[Int]

    sample_batch_sorted

    fn sample_batch_sorted(indices : ArrayView[Int]) -> Array[Int]

    sample_batch_span

    fn sample_batch_span(indices : ArrayView[Int]) -> Int

    sample_batch_stride

    fn sample_batch_stride(population : Int, stride : Int, offset : Int) -> Array[Int]

    sample_batch_summary

    fn sample_batch_summary(indices : ArrayView[Int], population : Int, dimensions : Int) -> SampleBatchSummary

    sample_batch_union

    fn sample_batch_union(left : ArrayView[Int], right : ArrayView[Int]) -> Array[Int]

    sample_batch_unique

    fn sample_batch_unique(indices : ArrayView[Int]) -> Array[Int]

    sample_batch_window

    fn sample_batch_window(population : Int, start : Int, width : Int) -> Array[Int]

    sample_batches

    fn sample_batches(population : Int, sample_size : Int, count : Int, seed : Int) -> Array[Array[Int]]

    sample_complement

    fn sample_complement(population : Int, selected : ArrayView[Int]) -> Array[Int]

    sample_frequency

    fn sample_frequency(batches : ArrayView[Array[Int]], population : Int) -> Array[Int]

    sample_intersection

    fn sample_intersection(left : ArrayView[Int], right : ArrayView[Int]) -> Array[Int]

    sample_is_valid

    fn sample_is_valid(indices : ArrayView[Int], population : Int, sample_size : Int) -> Bool

    sample_probability

    fn sample_probability(inlier_ratio~ : Double, sample_size~ : Int) -> Double raise
    GeometryError

    sample_union

    fn sample_union(left : ArrayView[Int], right : ArrayView[Int]) -> Array[Int]

    sample_without_replacement

    fn sample_without_replacement(length~ : Int, count~ : Int, seed~ : UInt) -> Array[Int] raise
    GeometryError

    sampling_coverage

    fn sampling_coverage(batches : ArrayView[Array[Int]], population : Int) -> Double

    schedule_checkpoints

    fn schedule_checkpoints(schedule : IterationSchedule, count : Int) -> Array[Int]

    Generate deterministic checkpoints for progress reporting and early stopping.

    schedule_required_iterations

    fn schedule_required_iterations(sample_size : Int, inlier_ratio : Double, confidence : Double) -> Int

    Numerically stable RANSAC iteration estimate.

    score_margin

    fn score_margin(best : Double, second : Double) -> Double

    score_mlesac

    fn score_mlesac(residuals : ArrayView[Double], config : MlesacConfig) -> Double

    score_mlesac_with_threshold

    fn score_mlesac_with_threshold(residuals : ArrayView[Double], threshold~ : Double, config : MlesacConfig) -> Double

    score_residuals

    fn score_residuals(residuals : ArrayView[Double], threshold~ : Double) -> RansacResult[Array[Double]] raise
    GeometryError

    select_best_candidate

    fn select_best_candidate(candidates : ArrayView[ConsensusCandidate2]) -> ConsensusCandidate2

    select_best_score

    fn select_best_score(scores : ArrayView[Double]) -> Int raise
    GeometryError

    sorted_indices

    fn sorted_indices(indices : ArrayView[Int]) -> Array[Int]

    stable_model

    fn stable_model(best : ModelReport, second : ModelReport, minimum_margin : Double) -> Bool

    sweep_thresholds

    fn sweep_thresholds(residuals : ArrayView[Double], thresholds : ArrayView[Double]) -> ThresholdSweepResult

    threshold_from_mad

    fn threshold_from_mad(residuals : ArrayView[Double], multiplier? : Double) -> Double raise
    GeometryError

    tukey_loss2

    fn tukey_loss2(residual : Double, cutoff : Double) -> Double

    tukey_weight

    fn tukey_weight(residual~ : Double, cutoff~ : Double) -> Double

    tukey_weight2

    fn tukey_weight2(residual : Double, cutoff : Double) -> Double

    unique_index_count

    fn unique_index_count(indices : ArrayView[Int]) -> Int

    update_inlier_ratio

    fn update_inlier_ratio(previous : Double, observed : Int, total : Int, momentum? : Double) -> Double

    Update an inlier estimate without restarting a running solver.

    validate_mask

    fn validate_mask(mask : InlierMask, expected_length~ : Int) -> Bool

    weighted_consensus

    fn weighted_consensus(residuals : ArrayView[Double], threshold~ : Double) -> Double