CG_Gen namespace

class RandomGeneratorWithSeed The Random Generator With Seed class is a C++ class designed to generate random numbers using a specified seed value

class TruthTable Represents a truth table for a combinational logic circuit This class encapsulates the functionality to generate, manipulate, and analyze truth tables for combinational logic circuits.

Namespaces

namespace AuxMethods
namespace AuxMethods It was created to organize a set of auxiliary functions and methods that can be used in various parts of a software project Functions: Random number generation, Reading files, Data sorting and processing (includes methods for sorting dictionaries by their values and for working with spaces in strings) TO DO: list the other functions
namespace FilesTools
namespace FilesTools The Files Tools namespace contains a set of functions designed to work with the file system *‍/
namespace MutationTruthTable
namespace RecombinationsTruthTable
namespace SelectionsTruthTable

Classes

class ALUGenerator
class ArithmeticGenerator
class CascadeGenerator
class ChiselProject
class ChiselProject This class is for temporary Chisel project management.
template<typename T>
class Chromosome
template<typename Type, typename ParametersTypes>
class ChromosomeType
class Circuit
class Circuit
struct CircuitArgs
class CircuitParameters
class CNNFromTruthTableParameters
class CNNFromTruthTableParameters
class CoderGenerator
class ComparisonGenerator
class DataBaseGenerator
class DataBaseGenerator
class DataBaseGeneratorParameters
class DataBaseGeneratorParameters
class DotGenerator
class FromTruthTableGenerator
class GenerationParameters
class GeneratorALUParameters
class GeneratorCascadeParameters
class GeneratorCascadeParameters
class GeneratorComparisonParameters
class GeneratorComparisonParameters
class GeneratorDotToGraphParameters
class GeneratorDotToGraphParameters
class GeneratorMealyMooreParameters
class GeneratorMealyMooreParameters
class GeneratorNumOperationParameters
class GeneratorNumOperationParameters
class GeneratorRandLevelParameters
class GeneratorRandLevelParameters
class GeneratorSubtractorParameters
class GeneratorSummatorParameters
GeneratorSummatorParameters.
template<typename Type, typename ParametersType>
class GeneticGenerator
GeneticGenerator Template class for generating genetic populations.
class GeneticParameters
class MealyMooreGenerator
struct ModuleInfo
class MutationParameters
class NumOperationsGenerator
class OrientedGraphParameters
class ParentsParameters
class ParityGenerator
class Parser
class Parser
class PlexerGenerator
class RandLevelGenerator
class RandomGeneratorWithSeed
class RecombinationParameters
class SelectionParameters
class Settings
class SimpleGenerator
class TempProjectDir
class TempProjectDir This class is for temporary project directory creation and management
class TruthTable
class TruthTableParameters
Parameters for generating truth tables The class provides the parameters needed to generate truth tables.
class zhegalkinFromTruthTableParameters
zhegalkinFromTruthTableParameters

Enums

enum GenotypeParametersTypes { TruthTableEnum }
enum ReturnType { DEFAULT, GRAPH, PATH, FUNCTION }
enum class BasisType { AIG, NOR }
enum MutationTypes { Binary, Density, AccessionDel, InsertDel, Exchange, Delete }
enum ParentsTypes { Panmixia, Inbringing, Outbrinding, Tournament, Roulette }
enum RecombinationTypes { CrossingEachExitInTurnMany, CrossingUniform, CrossingTriadic, CrossingReducedReplacement, CrossingShuffling }
enum SelectionTypes { Base }
enum LibrariesTypes { SKY_LIB }
enum GenerationTypes { FromRandomTruthTable, RandLevel, RandLevelExperimental, NumOperation, Comparison, Summator, Multiplier, Subtractor, Multiplexer, Demultiplexer, Encoder, Decoder, Genetic, Parity, ALU, MealyMoore, DotToGraph, Cascade }
GenerationTypes Enumeration of the types of digital circuit generation.

Functions

auto deleteExtraSpace(const std::string& i_s) -> std::string
auto convertGraphToBasis(GraphPtr graph, GenerationParameters::GatesInputsInfo gatesInputsInfo) -> GraphPtr
template<>
auto MutationType(MutationParameters i_mutationParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<ChromosomeType<TruthTable, TruthTableParameters>>
template<typename Type, typename ParametersType>
auto MutationType(MutationParameters i_mutationParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population) -> std::vector<ChromosomeType<Type, ParametersType>>
template<>
auto MutationType(MutationParameters i_mutationParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<ChromosomeType<TruthTable, TruthTableParameters>>
template<typename Type, typename ParametersType>
auto ParentsTypesWorker(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population) -> std::vector<int32_t>
template<>
auto ParentsTypesWorker(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
auto GenerateContent(DotReturn d_dot) -> std::string
auto sanitizeName(std::string name) -> std::string
void parseDotContent(GraphPtr graph, const std::string& content, bool isMoore)
template<>
auto MutationType(MutationParameters i_mutationParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<ChromosomeType<TruthTable, TruthTableParameters>>
auto GetHemming(int32_t i_t, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
auto ParentsPanmixia(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
auto ParentsInbrinding(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
auto ParentsOutbrinding(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
auto ParentsTournament(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
auto ParentsRoulette(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<int32_t>
template<typename Type, typename ParametersType>
auto RecombinationType(RecombinationParameters i_recombinationParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population) -> std::vector<ChromosomeType<Type, ParametersType>>
template<>
auto RecombinationType(RecombinationParameters i_recombinationParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<ChromosomeType<TruthTable, TruthTableParameters>>
template<typename Type, typename ParametersType>
auto SelectionType(SelectionParameters i_selectionParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population) -> std::vector<ChromosomeType<Type, ParametersType>>
template<>
auto SelectionType(SelectionParameters i_selectionParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population) -> std::vector<ChromosomeType<TruthTable, TruthTableParameters>>

Variables

static const std::map<std::string, GenotypeParametersTypes> GenotypeParametersType2Name
static const std::map<std::string, MutationTypes> MutationType2Name
static const std::map<std::string, ParentsTypes> ParentsType2Name
static const std::map<std::string, RecombinationTypes> RecombinationType2Name
static const std::map<std::string, SelectionTypes> SelectionType2Name
static const std::map<std::string, GenerationTypes> GenerationTypes2Name

Enum documentation

enum CG_Gen::GenerationTypes

GenerationTypes Enumeration of the types of digital circuit generation.

This enumeration defines the various types of digital circuit generation that can be used to create a variety of logic circuits.

Enumerators
FromRandomTruthTable

RandLevel

Generating a circuit from a random truth table.

RandLevelExperimental

Random level (experimental)

NumOperation

Experimental random level generation.

Comparison

Generating a circuit with numerical operations.

Summator

The comparison block.

Multiplier

Adder.

Subtractor

Multiplier.

Multiplexer

Subtractor.

Demultiplexer

Multiplexer.

Encoder

Demultiplexer.

Decoder

Encoder.

Genetic

Decoder.

Parity

Genetic generation of the circuit.

ALU

Parity.

MealyMoore

Arithmetic Logic Unit (ALU)

DotToGraph

Mealy and Moore.

Cascade

Dot to graph converter (Mealy and Moore only for now)

Cascade

Function documentation

std::string CG_Gen::deleteExtraSpace(const std::string& i_s)

template<typename Type, typename ParametersType>
std::vector<ChromosomeType<Type, ParametersType>> CG_Gen::MutationType(MutationParameters i_mutationParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population)

template<typename Type, typename ParametersType>
std::vector<int32_t> CG_Gen::ParentsTypesWorker(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population)

template<>
std::vector<int32_t> CG_Gen::ParentsTypesWorker(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

std::string CG_Gen::sanitizeName(std::string name)

void CG_Gen::parseDotContent(GraphPtr graph, const std::string& content, bool isMoore)

std::vector<int32_t> CG_Gen::GetHemming(int32_t i_t, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

std::vector<int32_t> CG_Gen::ParentsPanmixia(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

std::vector<int32_t> CG_Gen::ParentsInbrinding(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

std::vector<int32_t> CG_Gen::ParentsOutbrinding(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

std::vector<int32_t> CG_Gen::ParentsTournament(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

std::vector<int32_t> CG_Gen::ParentsRoulette(ParentsParameters i_parentsParameters, std::vector<ChromosomeType<TruthTable, TruthTableParameters>> i_population)

template<typename Type, typename ParametersType>
std::vector<ChromosomeType<Type, ParametersType>> CG_Gen::RecombinationType(RecombinationParameters i_recombinationParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population)

template<typename Type, typename ParametersType>
std::vector<ChromosomeType<Type, ParametersType>> CG_Gen::SelectionType(SelectionParameters i_selectionParameters, std::vector<ChromosomeType<Type, ParametersType>> i_population)

Variable documentation

static const std::map<std::string, GenerationTypes> CG_Gen::GenerationTypes2Name