fractal_algebra 0.3.8

A library for fractal algebra experimentation
Documentation
use fractal_algebra::stochastic::StochasticAmplitudePhase;
use fractal_algebra::{
    CriticSuite, EntropyCritic, EvolutionaryGenerator, GeneratorCriticLoop, MutationSuite,
    SymmetryCritic,
};

fn main() {
    let mut critics = CriticSuite::new();
    critics.add_critic(SymmetryCritic, 0.7);
    critics.add_critic(EntropyCritic, 0.3);

    let mut mutations = MutationSuite::new();
    mutations.add_strategy(
        StochasticAmplitudePhase {
            amplitude_jitter: 0.5,
            phase_jitter: 0.3,
        },
        1.0,
    );

    let generator = EvolutionaryGenerator {
        mutations,
        count: 12,
    };

    let loop_engine = GeneratorCriticLoop {
        generator,
        critic_suite: critics,
        iterations: 20,
    };

    if let Some(best_field) = loop_engine.run() {
        println!("best field signature: {:?}", best_field.signature());
        println!("best field edge count: {}", best_field.edges.len());
    } else {
        println!("no field was generated");
    }
}