# `Sidereon.GNSS.PrecisePositioning.FixedSolution`
[🔗](https://github.com/neilberkman/sidereon-ex/blob/main/lib/sidereon/gnss/precise_positioning.ex#L206)

Static multi-epoch integer-fixed carrier-phase solution.

# `epoch_clock`

```elixir
@type epoch_clock() :: %{
  epoch: NaiveDateTime.t(),
  rx_clock_s: float(),
  rx_clock_m: float()
}
```

# `position`

```elixir
@type position() :: %{x_m: float(), y_m: float(), z_m: float()}
```

# `residual`

```elixir
@type residual() :: %{
  :epoch =&gt; NaiveDateTime.t(),
  :satellite_id =&gt; String.t(),
  :code_m =&gt; float(),
  :phase_m =&gt; float(),
  optional(:code_weight) =&gt; float(),
  optional(:phase_weight) =&gt; float()
}
```

# `t`

```elixir
@type t() :: %Sidereon.GNSS.PrecisePositioning.FixedSolution{
  epoch_clocks: [epoch_clock()],
  epochs: [NaiveDateTime.t()],
  fixed_ambiguities_cycles: %{required(String.t()) =&gt; integer()},
  fixed_ambiguities_m: %{required(String.t()) =&gt; float()},
  float_solution: Sidereon.GNSS.PrecisePositioning.MultiEpochSolution.t(),
  formal_position_covariance: term(),
  formal_tropo_gradient_covariance_m2: term(),
  metadata: %{
    :iterations =&gt; pos_integer(),
    :converged =&gt; boolean(),
    :status =&gt; :state_tolerance | :max_iterations,
    :n_epochs =&gt; pos_integer(),
    :n_observations =&gt; pos_integer(),
    :code_rms_m =&gt; float(),
    :phase_rms_m =&gt; float(),
    :weighted_rms_m =&gt; float(),
    :integer_status =&gt; :fixed | :not_fixed,
    :integer_method =&gt; :lambda,
    :integer_ratio =&gt; float() | :infinity,
    :integer_best_score =&gt; float(),
    :integer_second_best_score =&gt; float() | nil,
    :integer_candidates =&gt; pos_integer(),
    :troposphere_applied =&gt; boolean(),
    :ztd_estimated =&gt; boolean(),
    optional(:ambiguity_search) =&gt; %{
      order: [String.t()],
      float_cycles: %{required(String.t()) =&gt; float()},
      covariance_cycles: [[float()]],
      covariance_inverse_cycles: [[float()]]
    }
  },
  position: position(),
  position_covariance: term(),
  residual_ionosphere_m: term(),
  residuals_m: [residual()],
  temporal_position_covariance: term(),
  tropo_gradient_covariance_m2: term(),
  tropo_gradient_east_m: term(),
  tropo_gradient_north_m: term(),
  used_sats: [String.t()],
  ztd_residual_m: float() | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
