[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["The C++ `cp_model_symmetries` library provides functionalities for detecting and handling symmetries in constraint programming models."],["It offers functions to identify symmetries within a `CpModelProto` and add them to the problem definition using `DetectAndAddSymmetryToProto`."],["Symmetries can also be exploited during presolve to simplify the model with `DetectAndExploitSymmetriesInPresolve`, potentially improving solver performance."],["`FindCpModelSymmetries` can be used to explicitly find and return symmetry generators for a given `CpModelProto`."]]],["The `cp_model_symmetries` documentation outlines three core functions: `DetectAndAddSymmetryToProto` adds detected symmetries to a `CpModelProto`. `DetectAndExploitSymmetriesInPresolve` checks for and exploits symmetries during presolving. `FindCpModelSymmetries` identifies symmetries within a `CpModelProto` problem, storing them as `SparsePermutation` generators. These functions take parameters, model protocol buffers, logger and context for analysis. The functions are automatically generated.\n"]]