why is this broken
parent
8e61f745fa
commit
356383c5d2
239
.idea/editor.xml
239
.idea/editor.xml
|
@ -240,5 +240,244 @@
|
||||||
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IdentifierTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IdentifierTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSmartPointerVsMakeFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCStyleCast/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionalStyleCast/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReinterpretCastFromVoidPtr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConvertingConstructor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConversionOperator/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDiscardedPostfixOperatorResult/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstValueFunctionReturnType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeConst/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeStatic/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMayBeConst/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConst/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVariableCanBeMadeConstexpr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConstPtrOrRef/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPassValueParameterByConstReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppThrowExpressionCanBeReplacedWithRethrow/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroConstantCanBeReplacedWithNullptr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCompileTimeConstantCanBeReplacedWithBooleanConstant/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIfCanBeReplacedByConstexprIf/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IfStdIsConstantEvaluatedCanBeReplaced/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StdIsConstantEvaluatedWillAlwaysEvaluateToConstant/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstevalIfIsAlwaysConstant/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassCanBeFinal/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStructuredBinding/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseTypeTraitAlias/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAlgorithmWithCount/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseRangeAlgorithm/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseElementsView/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStdSize/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForLoopCanBeReplacedWithWhile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppJoinDeclarationAndAssignment/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceTieWithStructuredBinding/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceMemsetWithZeroInitialization/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAssociativeContains/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseEraseAlgorithm/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseFamiliarTemplateSyntaxForGenericLambdas/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScope/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScopeInitStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantNamespaceDefinition/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineFunctionDefinitionInHeaderFile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineVariableDefinitionInHeaderFile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionIsNotImplemented/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrivateSpecialMemberFunctionIsNotImplemented/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHiddenFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHidingFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPolymorphicClassWithNonVirtualPublicDestructor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractClassWithoutSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompleteSwitchStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultCaseNotHandledInSwitchStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyErroneousEmptyStatements/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExpressionWithoutSideEffects/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNoDiscardExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionResultShouldBeUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingKeywordThrow/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTypeWithoutTypenameKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTemplateWithoutTemplateKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppImplicitDefaultConstructorNotAvailable/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeedsConstructorBecauseOfUninitializedMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedNonStaticDataMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRangeBasedForIncompatibleReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroValuedExpressionUsedAsNullPointer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUnintendedObjectSlicing/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUninitializedMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorDisambiguatedAsFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionInFinalClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMustBePublicVirtualToImplementInterface/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationSpecifierWithoutDeclarators/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEmptyDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesLocal/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesUncapturedLocal/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMismatchedClassTags/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUsingResultOfAssignmentAsCondition/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIntegralToPointerConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerToIntegralConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompatiblePointerConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerConversionDropsQualifiers/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStringLiteralToCharPointerConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExceptionSafeResourceAcquisition/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionCallInsideCtor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractVirtualFunctionCallInCtor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInvalidLineContinuation/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfBadFormat/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfRiskyFormat/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfMissedArg/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfExtraArg/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatBadCode/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatLegacyCode/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatMixedArgs/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooFewArgs/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooManyArgs/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedEntity/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingIncludeGuard/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenSyntaxError/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUnresolvedReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUndocumentedParameter/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeletingVoidPointer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBooleanIncrementExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedRegisterStorageClassSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIdenticalOperandsInBinaryExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEqualOperandsInBinaryExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedefinitionOfDefaultArgumentInOverrideFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnamedNamespaceInHeaderFile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNamesMismatch/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNodiscardFunctionWithoutReturnValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantComplexityInComparison/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractFinalClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSpecialFunctionWithoutNoexceptSpecification/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnsignedZeroComparison/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterLiteral/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterWideLiteral/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantQualifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantAccessSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAccessSpecifierWithNoDeclarations/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTypenameKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeywordInsideCompoundStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantControlFlowJump/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantParentheses/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantLambdaParameterList/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantCastExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHeaderHasBeenAlreadyIncluded/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateArgumentsCanBeDeduced/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateArguments/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticSpecifierOnAnonymousNamespaceMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnMemberAllocationFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnThreadLocalLocalVariable/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassAccessSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantInlineSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConstSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBooleanExpressionArgument/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantVoidArgumentList/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantMemberInitializer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassInitializer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstParameterInDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVolatileParameterInDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalFunctionInFinalClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalNonOverridingVirtualFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElaboratedTypeSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantDereferencingAndTakingAddress/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConditionalExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConditionalExpressionCanBeSimplified/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantExportKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantZeroInitializerInAggregateInitialization/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassIsIncomplete/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterShadowing/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMutableSpecifierOnReferenceMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultInitializationWithNoUserConstructor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExplicitSpecializationInNonNamespaceScope/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnionMemberOfReferenceType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedDependentBaseClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderIsNotIncluded/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderNotFound/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCoroutineCallResolveError/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAwaiterTypeIsNotClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppOutParameterMustBeWritten/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWarningDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticAssertFailure/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEvaluationFailure/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTypeAliasNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConceptNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnumeratorNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLambdaCaptureNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableWithNonTrivialDtorIsNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityAssignedButNoRead/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityUsedOnlyInUnevaluatedContext/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMightNotBeInitialized/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppObjectMemberMightNotBeInitialized/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSomeObjectMembersMightNotBeInitialized/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorUsedBeforeInitialization/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnusedIncludeDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNotAllPathsReturnValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CDeclarationWithImplicitIntType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionDoesntReturnValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReturnNoValueInNonVoidFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCVQualifierCanNotBeAppliedToReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDereferenceOperatorLimitExceeded/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForwardEnumDeclarationWithoutUnderlyingType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaRegionDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaEndRegionDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticDataMemberInUnnamedStruct/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultIsUsedAsIdentifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLongFloat/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtReinterpretCastFromNullptr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtBindingRValueToLvalueReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtAddressOfClassRValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtDoubleUserConversionInCopyInit/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtCopyElisionInCopyInitDeclarator/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtNotInitializedStaticConstLocalVar/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRemoveRedundantBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceIfStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceForStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceWhileStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceDoStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongIncludesOrder/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongSlashesInIncludeDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceNestedNamespacesStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceTypeAliasCodeStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceFunctionDeclarationStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberInitializersOrder/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingFunctionStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingDestructorStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAuto/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAutoForNumeric/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersPlacement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersOrder/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnecessaryWhitespace/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTabsAreDisallowed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantConditions/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANullDereference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANotInitializedField/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALoopConditionNotUpdated/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFADeletedPointer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAMemoryLeak/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInvalidatedMemory/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesScope/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantParameter/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantFunctionResult/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAArrayIndexOutOfBounds/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableCode/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableFunctionCall/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAEndlessLoop/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInfiniteRecursion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnusedValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreadVariable/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFATimeOver/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInconsistentNaming/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IdentifierTypo/@EntryIndexRemoved" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -1,5 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.25)
|
cmake_minimum_required(VERSION 3.25)
|
||||||
project(COSC-4P80-Assignment-3 VERSION 0.0.25)
|
project(COSC-4P80-Assignment-3 VERSION 0.0.26)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
|
||||||
option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF)
|
option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF)
|
||||||
|
|
Binary file not shown.
|
@ -64,9 +64,9 @@ namespace assign3
|
||||||
};
|
};
|
||||||
|
|
||||||
inline std::array<std::string, 3> init_names{
|
inline std::array<std::string, 3> init_names{
|
||||||
"Completely Random",
|
"Random Unit",
|
||||||
"Random Data Based",
|
"Random Bounded",
|
||||||
"Sample Based"
|
"Random Sample"
|
||||||
};
|
};
|
||||||
|
|
||||||
inline std::array<std::string, 3> init_helps{
|
inline std::array<std::string, 3> init_helps{
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import matplotlib
|
|
||||||
import matplotlib as mpl
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
filename = sys.argv[1]
|
filename = sys.argv[1]
|
||||||
|
@ -25,8 +23,8 @@ plt.yticks(np.arange(height), np.arange(height))
|
||||||
|
|
||||||
plt.xlabel('X Pos')
|
plt.xlabel('X Pos')
|
||||||
plt.ylabel('Y Pos')
|
plt.ylabel('Y Pos')
|
||||||
plt.title('Heatmap of Motor Data (Bins: {})'.format(size))
|
plt.suptitle('Heatmap of Motor Data (Bins: {})'.format(size))
|
||||||
plt.suptitle(subtitle)
|
plt.title(subtitle)
|
||||||
|
|
||||||
plt.gca().invert_yaxis()
|
plt.gca().invert_yaxis()
|
||||||
|
|
||||||
|
|
|
@ -2,17 +2,28 @@ import pandas as pd
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import sys
|
import sys
|
||||||
|
import os
|
||||||
from plot_heatmap import subtitle
|
|
||||||
|
|
||||||
file1 = sys.argv[1]
|
file1 = sys.argv[1]
|
||||||
file2 = sys.argv[2]
|
file2 = sys.argv[2]
|
||||||
bins = sys.argv[3]
|
bins = sys.argv[3]
|
||||||
split = sys.argv[4]
|
split = sys.argv[4]
|
||||||
if len(sys.argv) > 4:
|
if len(sys.argv) > 4:
|
||||||
subtitle = sys.argv[5]
|
subtitle1 = sys.argv[5]
|
||||||
|
subtitle2 = sys.argv[6]
|
||||||
else:
|
else:
|
||||||
subtitle = ""
|
subtitle1 = ""
|
||||||
|
subtitle2 = ""
|
||||||
|
|
||||||
|
print(file1)
|
||||||
|
print(file2)
|
||||||
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
cwd = os.getcwd()
|
||||||
|
print(dir_path)
|
||||||
|
print(cwd)
|
||||||
|
|
||||||
|
with open(file1, "r+") as f:
|
||||||
|
print(f.name)
|
||||||
|
|
||||||
df1 = pd.read_csv(file1)
|
df1 = pd.read_csv(file1)
|
||||||
df2 = pd.read_csv(file2)
|
df2 = pd.read_csv(file2)
|
||||||
|
@ -41,7 +52,7 @@ if split.lower() == "false":
|
||||||
ax2.set_ylim(y_min, y_max)
|
ax2.set_ylim(y_min, y_max)
|
||||||
|
|
||||||
ax1.set_title('Topological and Quantization Error (Bins: {})'.format(bins))
|
ax1.set_title('Topological and Quantization Error (Bins: {})'.format(bins))
|
||||||
fig.suptitle(subtitle)
|
fig.suptitle(subtitle1)
|
||||||
|
|
||||||
plt.savefig("errors{}.png".format(bins))
|
plt.savefig("errors{}.png".format(bins))
|
||||||
else:
|
else:
|
||||||
|
@ -51,8 +62,8 @@ else:
|
||||||
plt.tick_params(axis='y', labelcolor='b')
|
plt.tick_params(axis='y', labelcolor='b')
|
||||||
plt.ylim(0, 1)
|
plt.ylim(0, 1)
|
||||||
|
|
||||||
plt.title("Topological Error (Bins: {})".format(bins))
|
plt.suptitle("Topological Error (Bins: {})".format(bins))
|
||||||
plt.suptitle(subtitle)
|
plt.title(subtitle1)
|
||||||
|
|
||||||
plt.savefig("errors-topological{}.png".format(bins))
|
plt.savefig("errors-topological{}.png".format(bins))
|
||||||
|
|
||||||
|
@ -62,8 +73,8 @@ else:
|
||||||
plt.tick_params(axis='y', labelcolor='b')
|
plt.tick_params(axis='y', labelcolor='b')
|
||||||
plt.ylim(y_min, y_max)
|
plt.ylim(y_min, y_max)
|
||||||
|
|
||||||
plt.title("Quantization Error (Bins: {})".format(bins))
|
plt.suptitle("Quantization Error (Bins: {})".format(bins))
|
||||||
plt.suptitle(subtitle)
|
plt.title(subtitle2)
|
||||||
|
|
||||||
plt.savefig("errors-quantization{}.png".format(bins))
|
plt.savefig("errors-quantization{}.png".format(bins))
|
||||||
|
|
||||||
|
|
158
src/main.cpp
158
src/main.cpp
|
@ -12,28 +12,26 @@
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
void plot_heatmap(const std::string& path, const std::string& activations_csv, blt::size_t bin_size, const std::string& subtitle)
|
void plot_heatmap(const std::string& activations_csv, const blt::size_t bin_size, const std::string& subtitle)
|
||||||
{
|
{
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
auto pwd = std::filesystem::current_path();
|
const auto path = std::filesystem::current_path().string();
|
||||||
if (!blt::string::ends_with(pwd.string(), '/'))
|
const std::string command = "cd '" + path + "' && python3 ../plot_heatmap.py '" + activations_csv + "' '" + std::to_string(bin_size) + "' '" +
|
||||||
pwd += '/';
|
subtitle + "'";
|
||||||
std::string command = "cd '" + path + "' && python3 " + pwd.string() + "plot_heatmap.py '" + activations_csv + "' " + std::to_string(bin_size) + " '" +
|
BLT_TRACE(command);
|
||||||
subtitle + "'";
|
std::system(command.c_str());
|
||||||
std::system(("sh -c \"" + command + "\"").c_str());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void plot_line_graph(const std::string& path, const std::string& topological_csv, const std::string& quantization_csv, blt::size_t bin_size,
|
void plot_line_graph(const std::string& topological_csv, const std::string& quantization_csv, blt::size_t bin_size,
|
||||||
const std::string& subtitle)
|
const std::string& subtitle, const std::string& subtitle2)
|
||||||
{
|
{
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
auto pwd = std::filesystem::current_path();
|
const auto path = std::filesystem::current_path().string();
|
||||||
if (!blt::string::ends_with(pwd.string(), '/'))
|
const std::string command = "cd '" + path + "' && python3 ../plot_line_graph.py \"" + topological_csv + "\" \"" + quantization_csv + "\" " +
|
||||||
pwd += '/';
|
std::to_string(bin_size) + " true \"" + subtitle + "\" \"" + subtitle2 + "\"";
|
||||||
std::string command = "cd '" + path + "' && python3 " + pwd.string() + "plot_line_graph.py '" + topological_csv + "' '" + quantization_csv + "' " +
|
BLT_TRACE(command);
|
||||||
std::to_string(bin_size) + " false '" + subtitle + "'";
|
std::system(command.c_str());
|
||||||
std::system(("sh -c \"" + command + "\"").c_str());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,11 +47,11 @@ void init(const blt::gfx::window_data&)
|
||||||
{
|
{
|
||||||
using namespace blt::gfx;
|
using namespace blt::gfx;
|
||||||
BLT_INFO("Hello World!");
|
BLT_INFO("Hello World!");
|
||||||
|
|
||||||
global_matrices.create_internals();
|
global_matrices.create_internals();
|
||||||
resources.load_resources();
|
resources.load_resources();
|
||||||
renderer.create();
|
renderer.create();
|
||||||
|
|
||||||
ImPlot::CreateContext();
|
ImPlot::CreateContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,11 +59,11 @@ void update(const blt::gfx::window_data& window_data)
|
||||||
{
|
{
|
||||||
using namespace blt::gfx;
|
using namespace blt::gfx;
|
||||||
global_matrices.update_perspectives(window_data.width, window_data.height, 90, 0.1, 2000);
|
global_matrices.update_perspectives(window_data.width, window_data.height, 90, 0.1, 2000);
|
||||||
|
|
||||||
camera.update();
|
camera.update();
|
||||||
camera.update_view(global_matrices);
|
camera.update_view(global_matrices);
|
||||||
global_matrices.update();
|
global_matrices.update();
|
||||||
|
|
||||||
renderer.render();
|
renderer.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,15 +89,15 @@ void action_start_graphics(const std::vector<std::string>& argv_vector)
|
||||||
{
|
{
|
||||||
blt::arg_parse parser{};
|
blt::arg_parse parser{};
|
||||||
parser.setHelpExtras("graphics");
|
parser.setHelpExtras("graphics");
|
||||||
|
|
||||||
parser.addArgument(blt::arg_builder{"--file", "-f"}
|
parser.addArgument(blt::arg_builder{"--file", "-f"}
|
||||||
.setDefault("../data")
|
.setDefault("../data")
|
||||||
.setHelp("Path to data files").build());
|
.setHelp("Path to data files").build());
|
||||||
|
|
||||||
auto args = parser.parse_args(argv_vector);
|
auto args = parser.parse_args(argv_vector);
|
||||||
|
|
||||||
load_data_files(args.get<std::string>("file"));
|
load_data_files(args.get<std::string>("file"));
|
||||||
|
|
||||||
blt::gfx::init(blt::gfx::window_data{"My Sexy Window", init, update, destroy}.setSyncInterval(1).setMaximized(true));
|
blt::gfx::init(blt::gfx::window_data{"My Sexy Window", init, update, destroy}.setSyncInterval(1).setMaximized(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,13 +109,14 @@ struct task_t // NOLINT
|
||||||
shape_t shape;
|
shape_t shape;
|
||||||
init_t init;
|
init_t init;
|
||||||
Scalar initial_learn_rate;
|
Scalar initial_learn_rate;
|
||||||
|
|
||||||
task_t() = default; // NOLINT
|
task_t() = default; // NOLINT
|
||||||
|
|
||||||
task_t(data_file_t* file, blt::u32 width, blt::u32 height, size_t maxEpochs, shape_t shape, init_t init, Scalar initial_learn_rate):
|
task_t(data_file_t* file, blt::u32 width, blt::u32 height, size_t maxEpochs, shape_t shape, init_t init, Scalar initial_learn_rate):
|
||||||
file(file), width(width), height(height), max_epochs(maxEpochs), shape(shape), init(init), initial_learn_rate(initial_learn_rate)
|
file(file), width(width), height(height), max_epochs(maxEpochs), shape(shape), init(init), initial_learn_rate(initial_learn_rate)
|
||||||
{}
|
{
|
||||||
|
}
|
||||||
|
|
||||||
gaussian_function_t topology_func{};
|
gaussian_function_t topology_func{};
|
||||||
std::vector<std::vector<Scalar>> topological_errors{};
|
std::vector<std::vector<Scalar>> topological_errors{};
|
||||||
std::vector<std::vector<Scalar>> quantization_errors{};
|
std::vector<std::vector<Scalar>> quantization_errors{};
|
||||||
|
@ -128,26 +127,27 @@ void action_test(const std::vector<std::string>& argv_vector)
|
||||||
{
|
{
|
||||||
blt::arg_parse parser{};
|
blt::arg_parse parser{};
|
||||||
parser.setHelpExtras("test");
|
parser.setHelpExtras("test");
|
||||||
|
|
||||||
parser.addArgument(blt::arg_builder{"--file", "-f"}
|
parser.addArgument(blt::arg_builder{"--file", "-f"}
|
||||||
.setDefault("../data")
|
.setDefault("../data")
|
||||||
.setHelp("Path to data files").build());
|
.setHelp("Path to data files").build());
|
||||||
|
|
||||||
auto args = parser.parse_args(argv_vector);
|
auto args = parser.parse_args(argv_vector);
|
||||||
|
|
||||||
load_data_files(args.get<std::string>("file"));
|
load_data_files(args.get<std::string>("file"));
|
||||||
|
|
||||||
std::vector<task_t> tasks;
|
std::vector<task_t> tasks;
|
||||||
std::vector<std::thread> threads;
|
std::vector<std::thread> threads;
|
||||||
std::mutex task_mutex;
|
std::mutex task_mutex;
|
||||||
|
|
||||||
tasks.emplace_back(&data.files[1], 5, 5, 1000, shape_t::GRID, init_t::RANDOM_DATA, 0.1);
|
tasks.emplace_back(&data.files[1], 5, 5, 1000, shape_t::GRID, init_t::RANDOM_DATA, 0.1);
|
||||||
|
|
||||||
static blt::size_t runs = 30;
|
static blt::size_t runs = 30;
|
||||||
|
|
||||||
for (blt::size_t _ = 0; _ < std::thread::hardware_concurrency(); _++)
|
for (blt::size_t _ = 0; _ < std::thread::hardware_concurrency(); _++)
|
||||||
{
|
{
|
||||||
threads.emplace_back([&task_mutex, &tasks]() {
|
threads.emplace_back([&task_mutex, &tasks]()
|
||||||
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
task_t task;
|
task_t task;
|
||||||
|
@ -158,26 +158,26 @@ void action_test(const std::vector<std::string>& argv_vector)
|
||||||
task = std::move(tasks.back());
|
task = std::move(tasks.back());
|
||||||
tasks.pop_back();
|
tasks.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (blt::size_t run = 0; run < runs; run++)
|
for (blt::size_t run = 0; run < runs; run++)
|
||||||
{
|
{
|
||||||
gaussian_function_t func{};
|
gaussian_function_t func{};
|
||||||
auto dist = distance_function_t::from_shape(task.shape, task.width, task.height);
|
auto dist = distance_function_t::from_shape(task.shape, task.width, task.height);
|
||||||
std::unique_ptr<som_t> som = std::make_unique<som_t>(*task.file, task.width, task.height, task.max_epochs, dist.get(),
|
auto som = std::make_unique<som_t>(*task.file, task.width, task.height, task.max_epochs, dist.get(),
|
||||||
&task.topology_func, task.shape, task.init, false);
|
&task.topology_func, task.shape, task.init, false);
|
||||||
while (som->get_current_epoch() < som->get_max_epochs())
|
while (som->get_current_epoch() < som->get_max_epochs())
|
||||||
som->train_epoch(task.initial_learn_rate);
|
som->train_epoch(task.initial_learn_rate);
|
||||||
|
|
||||||
task.topological_errors.push_back(som->get_topological_errors());
|
task.topological_errors.push_back(som->get_topological_errors());
|
||||||
task.quantization_errors.push_back(som->get_quantization_errors());
|
task.quantization_errors.push_back(som->get_quantization_errors());
|
||||||
|
|
||||||
std::vector<Scalar> acts;
|
std::vector<Scalar> acts;
|
||||||
for (const auto& v : som->get_array().get_map())
|
for (const auto& v : som->get_array().get_map())
|
||||||
acts.push_back(v.get_activation());
|
acts.push_back(v.get_activation());
|
||||||
task.activations.emplace_back(std::move(acts));
|
task.activations.emplace_back(std::move(acts));
|
||||||
}
|
}
|
||||||
std::stringstream paths;
|
std::stringstream paths;
|
||||||
paths << "./bins-" << task.file->data_points.begin()->bins.size() << "/";
|
paths << "bins-" << task.file->data_points.begin()->bins.size() << "/";
|
||||||
paths << task.width << "x" << task.height << '-' << task.max_epochs << '/';
|
paths << task.width << "x" << task.height << '-' << task.max_epochs << '/';
|
||||||
std::string shape_name = shape_names[static_cast<int>(task.shape)];
|
std::string shape_name = shape_names[static_cast<int>(task.shape)];
|
||||||
blt::string::replaceAll(shape_name, " ", "-");
|
blt::string::replaceAll(shape_name, " ", "-");
|
||||||
|
@ -187,15 +187,15 @@ void action_test(const std::vector<std::string>& argv_vector)
|
||||||
paths << init_name << '-' << task.initial_learn_rate << '/';
|
paths << init_name << '-' << task.initial_learn_rate << '/';
|
||||||
auto path = paths.str();
|
auto path = paths.str();
|
||||||
std::filesystem::create_directories(path);
|
std::filesystem::create_directories(path);
|
||||||
|
|
||||||
std::vector<Scalar> average_topological_errors;
|
std::vector<Scalar> average_topological_errors;
|
||||||
std::vector<Scalar> average_quantization_errors;
|
std::vector<Scalar> average_quantization_errors;
|
||||||
std::vector<Scalar> average_activations;
|
std::vector<Scalar> average_activations;
|
||||||
|
|
||||||
average_topological_errors.resize(task.topological_errors.begin()->size());
|
average_topological_errors.resize(task.topological_errors.begin()->size());
|
||||||
average_quantization_errors.resize(task.quantization_errors.begin()->size());
|
average_quantization_errors.resize(task.quantization_errors.begin()->size());
|
||||||
average_activations.resize(task.activations.begin()->size());
|
average_activations.resize(task.activations.begin()->size());
|
||||||
|
|
||||||
for (const auto& vec : task.topological_errors)
|
for (const auto& vec : task.topological_errors)
|
||||||
for (auto [index, v] : blt::enumerate(vec))
|
for (auto [index, v] : blt::enumerate(vec))
|
||||||
average_topological_errors[index] += v;
|
average_topological_errors[index] += v;
|
||||||
|
@ -205,11 +205,18 @@ void action_test(const std::vector<std::string>& argv_vector)
|
||||||
for (const auto& vec : task.activations)
|
for (const auto& vec : task.activations)
|
||||||
for (auto [index, v] : blt::enumerate(vec))
|
for (auto [index, v] : blt::enumerate(vec))
|
||||||
average_activations[index] += v;
|
average_activations[index] += v;
|
||||||
|
|
||||||
|
auto min_quant = *std::min_element(average_quantization_errors.begin(), average_quantization_errors.end()) / static_cast<Scalar>(runs);
|
||||||
|
auto max_quant = *std::max_element(average_quantization_errors.begin(), average_quantization_errors.end()) / static_cast<Scalar>(runs);
|
||||||
|
|
||||||
|
auto min_topo = *std::min_element(average_topological_errors.begin(), average_topological_errors.end()) / static_cast<Scalar>(runs);
|
||||||
|
auto max_topo = *std::max_element(average_topological_errors.begin(), average_topological_errors.end()) / static_cast<Scalar>(runs);
|
||||||
|
|
||||||
std::ofstream topological{path + "topological_avg.csv"};
|
std::ofstream topological{path + "topological_avg.csv"};
|
||||||
std::ofstream quantization{path + "quantization_avg.csv"};
|
std::ofstream quantization{path + "quantization_avg.csv"};
|
||||||
std::ofstream activations{path + "activations_avg.csv"};
|
std::ofstream activations_avg{path + "activations_avg.csv"};
|
||||||
|
std::ofstream activations{path + "activations.csv"};
|
||||||
|
|
||||||
topological << "error\n";
|
topological << "error\n";
|
||||||
quantization << "error\n";
|
quantization << "error\n";
|
||||||
for (auto [i, v] : blt::enumerate(average_topological_errors))
|
for (auto [i, v] : blt::enumerate(average_topological_errors))
|
||||||
|
@ -221,6 +228,15 @@ void action_test(const std::vector<std::string>& argv_vector)
|
||||||
quantization << v / static_cast<Scalar>(runs) << '\n';
|
quantization << v / static_cast<Scalar>(runs) << '\n';
|
||||||
}
|
}
|
||||||
for (auto [i, v] : blt::enumerate(average_activations))
|
for (auto [i, v] : blt::enumerate(average_activations))
|
||||||
|
{
|
||||||
|
activations_avg << v / static_cast<Scalar>(runs);
|
||||||
|
if (i % task.width == task.width - 1)
|
||||||
|
activations_avg << '\n';
|
||||||
|
else
|
||||||
|
activations_avg << ',';
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto [i, v] : blt::enumerate(task.activations.front()))
|
||||||
{
|
{
|
||||||
activations << v / static_cast<Scalar>(runs);
|
activations << v / static_cast<Scalar>(runs);
|
||||||
if (i % task.width == task.width - 1)
|
if (i % task.width == task.width - 1)
|
||||||
|
@ -228,13 +244,24 @@ void action_test(const std::vector<std::string>& argv_vector)
|
||||||
else
|
else
|
||||||
activations << ',';
|
activations << ',';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
plot_heatmap(path + "activations.csv", task.file->data_points.front().bins.size(),
|
||||||
|
std::to_string(task.width) + "x" + std::to_string(task.height) + " " += shape_name + ", " += init_name + ", " +
|
||||||
|
std::to_string(task.max_epochs) + " Epochs");
|
||||||
|
|
||||||
|
plot_line_graph(path + "topological_avg.csv", path + "quantization_avg.csv", task.file->data_points.front().bins.size(),
|
||||||
|
std::to_string(task.width) + "x" + std::to_string(task.height) + " " += shape_name + ", " += init_name + ", Min: " +
|
||||||
|
std::to_string(min_topo) + ", Max: " + std::to_string(max_topo) + ", " + std::to_string(task.max_epochs) + " Epochs",
|
||||||
|
std::to_string(task.width) + "x" + std::to_string(task.height) + " " += shape_name + ", " += init_name + ", Min: " +
|
||||||
|
std::to_string(min_quant) + ", Max: " + std::to_string(max_quant) + ", " + std::to_string(task.max_epochs) +
|
||||||
|
" Epochs");
|
||||||
|
|
||||||
BLT_INFO("Task '%s' Complete", path.c_str());
|
BLT_INFO("Task '%s' Complete", path.c_str());
|
||||||
|
}
|
||||||
} while (true);
|
while (true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!threads.empty())
|
while (!threads.empty())
|
||||||
{
|
{
|
||||||
if (threads.back().joinable())
|
if (threads.back().joinable())
|
||||||
|
@ -249,7 +276,7 @@ void action_convert(const std::vector<std::string>& argv_vector)
|
||||||
{
|
{
|
||||||
blt::arg_parse parser{};
|
blt::arg_parse parser{};
|
||||||
parser.setHelpExtras("convert");
|
parser.setHelpExtras("convert");
|
||||||
|
|
||||||
auto args = parser.parse_args(argv_vector);
|
auto args = parser.parse_args(argv_vector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,28 +285,28 @@ int main(int argc, const char** argv)
|
||||||
std::vector<std::string> argv_vector;
|
std::vector<std::string> argv_vector;
|
||||||
for (int i = 0; i < argc; i++)
|
for (int i = 0; i < argc; i++)
|
||||||
argv_vector.emplace_back(argv[i]);
|
argv_vector.emplace_back(argv[i]);
|
||||||
|
|
||||||
blt::arg_parse parser{};
|
blt::arg_parse parser{};
|
||||||
|
|
||||||
parser.addArgument(blt::arg_builder{"action"}
|
parser.addArgument(blt::arg_builder{"action"}
|
||||||
.setAction(blt::arg_action_t::SUBCOMMAND)
|
.setAction(blt::arg_action_t::SUBCOMMAND)
|
||||||
.setHelp("Action to run. Can be: [graphics, test, convert]").build());
|
.setHelp("Action to run. Can be: [graphics, test, convert]").build());
|
||||||
|
|
||||||
auto args = parser.parse_args(argv_vector);
|
auto args = parser.parse_args(argv_vector);
|
||||||
|
|
||||||
if (!args.contains("action"))
|
if (!args.contains("action"))
|
||||||
{
|
{
|
||||||
BLT_ERROR("Please provide an action");
|
BLT_ERROR("Please provide an action");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// argv_vector.erase(argv_vector.begin() + 1);
|
// argv_vector.erase(argv_vector.begin() + 1);
|
||||||
|
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
action_start_graphics(argv_vector);
|
action_start_graphics(argv_vector);
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto action = blt::string::toLowerCase(args.get<std::string>("action"));
|
auto action = blt::string::toLowerCase(args.get<std::string>("action"));
|
||||||
if (action == "graphics")
|
if (action == "graphics")
|
||||||
action_start_graphics(argv_vector);
|
action_start_graphics(argv_vector);
|
||||||
|
@ -287,5 +314,4 @@ int main(int argc, const char** argv)
|
||||||
action_test(argv_vector);
|
action_test(argv_vector);
|
||||||
else if (action == "convert")
|
else if (action == "convert")
|
||||||
action_convert(argv_vector);
|
action_convert(argv_vector);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue