pub enum SwChangeState {
    InvalidAdjecency,
    BlockedByExistingEdge,
    Nothing,
    Rewire(usizeusizeusize),
    Reset(usizeusizeusize),
    GError(GraphErrors),
}
Expand description

Returned by markov steps

  • information about the performed step and possible errors

Variants

InvalidAdjecency

ERROR adjecency list invalid?

BlockedByExistingEdge

Can not add edge twice

Nothing

Nothing happend

Rewire(usizeusizeusize)

old edge: (Rewire.0, Rewire.1), new edge (Rewire.0, Rewire.2)

Reset(usizeusizeusize)

old edge: (Reset.0, Reset.1), new edge (Reset.0, Reset.2)

GError(GraphErrors)

A GraphError occurred

Implementations

checks if self is Nothing variant

checks if self is Nothing or BlockedByExistingEdge

result is equal to !self.is_nothing_or_blocked()

valid states:
  • SwChangeState::Rewire(..)
  • SwChangeState::Reset(..)
  • SwChangeState::Nothing
  • SwChangeState::BlockedByExistingEdge
invalid states:
  • SwChangeState::InvalidAdjecency
  • SwChangeState::GError(..)

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Markov step
  • use this to perform a markov step
  • keep in mind, that it is not unlikely for a step to do Nothing as it works by drawing an edge and then reseting it with r_prob, else the edge is rewired
  • result SwChangeState can be used to undo the step with self.undo_step(result)
  • result should never be InvalidAdjecency or GError if used on a valid graph
Undo a markov step
  • rewires edge to old state
  • Note: cannot undo InvalidAdjecency or GError, will just return InvalidAdjecency or GError respectively
  • returns result of rewire
Important:

Restored graph is the same as before the random step except the order of nodes in the adjacency list might be shuffled!

Undo a Monte Carlo step
  • rewires edge to old state
  • panics if you try to undo InvalidAdjecency or GError
  • panics if rewire result (SwChangeState) is invalid (i.e. !result.is_valid())
Important:

Restored graph is the same as before the random step except the order of nodes in the adjacency list might be shuffled!

Markov steps Read more
Markov steps without return Read more
Accumulating markov step Read more
Accumulating markov steps Read more
Accumulating markov steps Read more
Undo markov steps Read more
Undo markov steps Read more
Function called whenever the steps are accepted. Read more
Function called whenever the steps are rejected. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Cast from Self to T
Try converting from Self to T
Cast to integer, truncating Read more
Cast to the nearest integer Read more
Cast the floor to an integer Read more
Cast the ceiling to an integer Read more
Try converting to integer with truncation Read more
Try converting to the nearest integer Read more
Try converting the floor to an integer Read more
Try convert the ceiling to an integer Read more
Convert from T to Self
Try converting from T to Self

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.