Skip to content

Commit

Permalink
Bugfixes and new test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaimueller committed Aug 15, 2024
1 parent 6719400 commit 6fa34f2
Show file tree
Hide file tree
Showing 350 changed files with 3,220 additions and 784 deletions.
30 changes: 24 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
## release build in release mode ##
## debug build in debug mode ##
## test performs unit tests ##
## benchmark performs benchmarks ##
## clean remove output directories ##
## ##
##################################################
Expand All @@ -20,26 +21,30 @@
INC_DIRS = inc

# Source directories with the .c and .cpp files. Separate multiple directories with a space.
TEST_SRC = "ut src/Software src/Hardware src/Util"
BENCHMARK_SRC = "benchmarks src/Software src/Hardware src/Util"
TEST_SRC = "tests src/Software src/Hardware src/Util"
DEBUG_SRC = src
RELEASE_SRC = src

LIB_DIR = lib

# Output directories for release and debug configurations.
# If both point to the same directory, the final binaries will be suffixed with "_release" and "_debug".
BENCHMARK_DIR = benchmark
RELEASE_DIR = release
DEBUG_DIR = debug
TEST_DIR = test

EXCLUDED_FILES := test/obj_test/ut/full/aes_rp_d1_ccode/aes_rp_d1_ccode_c.c
EXCLUDED_FILES := test/obj_test/tests/full/aes_rp_d1_ccode/aes_rp_d1_ccode_c.c

# Compiler options
INCLUDE_PYTHON3=`pkg-config --cflags python3-embed`
C_BENCHMARK_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-frame-pointer -std=c11 $(INCLUDE_PYTHON3)
C_RELEASE_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-frame-pointer -std=c11 $(INCLUDE_PYTHON3)
C_DEBUG_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -g -O2 -fsanitize=address -std=c11 $(INCLUDE_PYTHON3)
C_TEST_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-frame-pointer -std=c11 $(INCLUDE_PYTHON3)

CXX_BENCHMARK_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-frame-pointer -std=c++17 $(INCLUDE_PYTHON3)
CXX_RELEASE_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-frame-pointer -std=c++17 $(INCLUDE_PYTHON3)
CXX_DEBUG_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -g -O2 -fsanitize=address -std=c++17 $(INCLUDE_PYTHON3)
CXX_TEST_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-frame-pointer -std=c++17 $(INCLUDE_PYTHON3)
Expand All @@ -48,6 +53,7 @@ CXX_TEST_FLAGS = -Wall -Wextra -Wshadow -pedantic -fopenmp -O3 -g -fno-omit-fr
LINK_PYTHON3=`pkg-config --libs python3-embed`
LINK_FLINT = -lflint -lmpfr -lgmp -lm
LINK_BOOST = -lboost_filesystem -lboost_program_options -lboost_python310
BENCHMARK_LINK_FLAGS = -L$(LIB_DIR) -fopenmp -ldl $(LINK_PYTHON3) $(LINK_FLINT) $(LINK_BOOST)
RELEASE_LINK_FLAGS = -L$(LIB_DIR) -fopenmp -ldl $(LINK_PYTHON3) $(LINK_FLINT) $(LINK_BOOST)
DEBUG_LINK_FLAGS = -L$(LIB_DIR) -fsanitize=address -fopenmp -ldl $(LINK_PYTHON3) $(LINK_FLINT) $(LINK_BOOST)
TEST_LINK_FLAGS = -L$(LIB_DIR) -fopenmp -ldl $(LINK_PYTHON3) $(LINK_FLINT) $(LINK_BOOST)
Expand All @@ -68,8 +74,12 @@ OUTPUT = PROLEAD
HELP_MESSAGE = Simply use any combination of 'make {debug, release, test, help, clean}'. Just calling 'make' will build release and debug. By adding 'V=1' prints more verbose output.

# switch between debug and release config

ifeq ($(D),2)
ifeq ($(D),3)
C_FLAGS = $(C_BENCHMARK_FLAGS)
CXX_FLAGS = $(CXX_BENCHMARK_FLAGS)
LINK_FLAGS = $(BENCHMARK_LINK_FLAGS)
OBJ_DIR = obj_test
else ifeq ($(D),2)
C_FLAGS = $(C_TEST_FLAGS)
CXX_FLAGS = $(CXX_TEST_FLAGS)
LINK_FLAGS = $(TEST_LINK_FLAGS)
Expand Down Expand Up @@ -130,6 +140,9 @@ MAKEFLAGS += --no-print-directory

all: debug release

benchmark:
@+make compile D=3 OUTPUT_DIRECTORY=$(BENCHMARK_DIR) SRC_DIRS=$(BENCHMARK_SRC) -j8

test:
@+make compile D=2 OUTPUT_DIRECTORY=$(TEST_DIR) SRC_DIRS=$(TEST_SRC) -j8

Expand All @@ -141,6 +154,7 @@ release:

clean:
@echo Removing build artifacts...
$(SUPPRESS_CMD)rm -rf $(BENCHMARK_DIR)
$(SUPPRESS_CMD)rm -rf $(DEBUG_DIR)
$(SUPPRESS_CMD)rm -rf $(RELEASE_DIR)
$(SUPPRESS_CMD)rm -rf $(TEST_DIR)
Expand All @@ -164,7 +178,9 @@ endif
# create obj directory and compile
compile: check directories $(OUTPUT_DIRECTORY)/$(OUTPUT)

ifeq ($(D), 2)
ifeq ($(D), 3)
@diff=$$(($(shell date +%s%3N) - $(START_TIME))); echo 'Benchmark build completed in '$$(($$diff / 1000))'.'$$(($$diff % 1000))'s'
else ifeq ($(D), 2)
@diff=$$(($(shell date +%s%3N) - $(START_TIME))); echo 'Test build completed in '$$(($$diff / 1000))'.'$$(($$diff % 1000))'s'
else ifeq ($(D), 1)
@diff=$$(($(shell date +%s%3N) - $(START_TIME))); echo 'Debug build completed in '$$(($$diff / 1000))'.'$$(($$diff % 1000))'s'
Expand All @@ -176,7 +192,9 @@ endif
# create the obj directory
directories: check

ifeq ($(D), 2)
ifeq ($(D), 3)
@echo '_____Building Benchmark_____'
else ifeq ($(D), 2)
@echo '_______Building Tests_______'
else ifeq ($(D), 1)
@echo '_______Building Debug_______'
Expand Down
2 changes: 1 addition & 1 deletion ut/UnitTests.cpp → benchmarks/benchmarks.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#define CATCH_CONFIG_ENABLE_BENCHMARKING
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <catch2/catch.hpp>
134 changes: 134 additions & 0 deletions benchmarks/util/Util.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
#define CATCH_CONFIG_ENABLE_BENCHMARKING
#include "Util/Util.hpp"

#include <catch2/catch.hpp>

TEST_CASE("Benchmark sorting and merging of duplicates",
"[BenchmarkSortAndMergeDuplicates]") {
uint64_t i, j;
uint64_t number_of_groups = 2;
uint64_t size_of_key_in_bytes =
GENERATE(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024);
uint64_t number_of_entries = GENERATE(64, 1024, 2048, 4096, 8192, 16384,
32768, 65536, 131072, 262144, 524288);
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<uint8_t> dis(0, 255);
TableBucketVector observations(number_of_entries);

for (i = 0; i < number_of_entries; ++i) {
observations[i].key_ = std::make_unique<uint8_t[]>(size_of_key_in_bytes);
observations[i].data_ = std::make_unique<uint32_t[]>(number_of_groups);

for (j = 0; j < size_of_key_in_bytes; ++j) {
observations[i].key_[j] = dis(gen);
}

++observations[i].data_[dis(gen) % number_of_groups];
}

BENCHMARK_ADVANCED(
"size of key (bytes) = " + std::to_string(size_of_key_in_bytes) + "\n" +
"number of entries = " + std::to_string(number_of_entries))
(Catch::Benchmark::Chronometer meter) {
meter.measure([&observations, size_of_key_in_bytes, number_of_groups] {
SortAndMergeDuplicates(observations, size_of_key_in_bytes,
number_of_groups);
});
};
}

TEST_CASE(
"Benchmark the update of bucket entries with entries from another bucket",
"[BenchmarkUpdateBucketWithBucket]") {
uint64_t i, j;
TableBucketVector bucket, observations;
uint64_t number_of_groups, size_of_key_in_bytes, number_of_entries;
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<uint8_t> dis(0, 255);

number_of_groups = GENERATE(2, 3);
size_of_key_in_bytes = GENERATE(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024);
number_of_entries = GENERATE(1, 10, 100, 1000, 10000, 100000, 1000000);
bucket.resize(number_of_entries);
observations.resize(number_of_entries);

for (i = 0; i < number_of_entries; ++i) {
bucket[i].key_ = std::make_unique<uint8_t[]>(size_of_key_in_bytes);
bucket[i].data_ = std::make_unique<uint32_t[]>(number_of_groups);
observations[i].key_ = std::make_unique<uint8_t[]>(size_of_key_in_bytes);
observations[i].data_ = std::make_unique<uint32_t[]>(number_of_groups);

for (j = 0; j < size_of_key_in_bytes; ++j) {
bucket[i].key_[j] = dis(gen);
observations[i].key_[j] = dis(gen);
}

for (j = 0; j < number_of_groups; ++j) {
bucket[i].data_[j] = dis(gen);
observations[i].data_[j] = dis(gen);
}
}

SortAndMergeDuplicates(bucket, size_of_key_in_bytes, number_of_groups);
SortAndMergeDuplicates(observations, size_of_key_in_bytes, number_of_groups);

BENCHMARK_ADVANCED(
"number of groups = " + std::to_string(number_of_groups) + "\n" +
"size of key (bytes) = " + std::to_string(size_of_key_in_bytes) + "\n" +
"number of entries = " + std::to_string(number_of_entries))
(Catch::Benchmark::Chronometer meter) {
meter.measure(
[&bucket, &observations, size_of_key_in_bytes, number_of_groups] {
UpdateBucketWithBucket(bucket, observations, size_of_key_in_bytes,
number_of_groups);
});
};
}

TEST_CASE("Benchmark computation of required sample size",
"[BenchmarkComputeRequiredSampleSize]") {
uint64_t number_of_groups = GENERATE(2, 3);
uint64_t number_of_entries =
GENERATE(10, 100, 1000, 10000, 100000, 1000000, 10000000);
double_t effect_size = GENERATE(0.1, 0.3, 0.5);
double_t beta_threshold = GENERATE(0.00001, 0.0001, 0.001, 0.01, 0.1, 0.2);

BENCHMARK_ADVANCED(
"number of groups = " + std::to_string(number_of_groups) + "\n" +
"number of entries = " + std::to_string(number_of_entries) + "\n" +
"effect size = " + std::to_string(effect_size) + "\n" +
"beta threshold = " + std::to_string(beta_threshold))
(Catch::Benchmark::Chronometer meter) {
meter.measure(
[number_of_groups, number_of_entries, beta_threshold, effect_size] {
ComputeRequiredSampleSize(number_of_groups, number_of_entries,
beta_threshold, effect_size);
});
};
}

TEST_CASE("Test the construction of simulated table entries",
"[ConstructTableEntries]") {
uint64_t number_of_groups = GENERATE(2, 3);
uint64_t size_of_key_in_bytes = GENERATE(1, 64, 1024);
uint64_t number_of_entries = GENERATE(64, 16384, 524288);
TableBucketVector datasets;

BENCHMARK_ADVANCED(
"number of groups = " + std::to_string(number_of_groups) + "\n" +
"number of entries = " + std::to_string(number_of_entries) + "\n" +
"size of key (bytes) = " + std::to_string(size_of_key_in_bytes))
(Catch::Benchmark::Chronometer meter) {
meter.measure([&datasets, number_of_groups, number_of_entries,
size_of_key_in_bytes] {
datasets.resize(number_of_entries);

for (uint64_t i = 0; i < number_of_entries; ++i) {
datasets[i].key_ = std::make_unique<uint8_t[]>(size_of_key_in_bytes);
datasets[i].data_ = std::make_unique<uint32_t[]>(number_of_groups);
}
});
};
}
9 changes: 5 additions & 4 deletions docs/_adversaries_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down Expand Up @@ -215,7 +215,7 @@
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> </div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordtype">double</span> EvaluateMultivariateRobustProbingSecurity(std::vector&lt;SharedData&gt;&amp; shared_data, timespec&amp; start_time);</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <span class="keywordtype">void</span> EvaluateProbingSetsUnderFaults(</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <span class="keywordtype">double</span> EvaluateProbingSetsUnderFaults(</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> std::vector&lt;SharedData&gt;&amp; shared_data,</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> timespec&amp; start_time, uint64_t&amp; probe_step_index);</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
Expand All @@ -228,7 +228,7 @@
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> </div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="keywordtype">void</span> NormalTest(std::vector&lt;double&gt;&amp; group_simulation_ratio);</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keywordtype">void</span> Test(std::vector&lt;double&gt;&amp; number_of_simulations_per_group,</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keywordtype">void</span> <a class="code hl_class" href="class_test.html">Test</a>(std::vector&lt;double&gt;&amp; number_of_simulations_per_group,</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keywordtype">bool</span> is_in_compact_mode);</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> </div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="keywordtype">double</span> GetMaximumLeakage();</div>
Expand Down Expand Up @@ -263,14 +263,15 @@
<div class="ttc" id="aclass_hardware_1_1_adversaries_html_a64c947b70497cf3291cd4df7ef4dfa12"><div class="ttname"><a href="class_hardware_1_1_adversaries.html#a64c947b70497cf3291cd4df7ef4dfa12">Hardware::Adversaries::GetNumberOfExtendedProbes</a></div><div class="ttdeci">size_t GetNumberOfExtendedProbes()</div><div class="ttdoc">Returns the number of extended probes.</div><div class="ttdef"><b>Definition:</b> Adversaries.cpp:59</div></div>
<div class="ttc" id="aclass_hardware_1_1_adversaries_html_a79c82aff7d58e5aaed1aa39b8ce77712"><div class="ttname"><a href="class_hardware_1_1_adversaries.html#a79c82aff7d58e5aaed1aa39b8ce77712">Hardware::Adversaries::Adversaries</a></div><div class="ttdeci">Adversaries(Library &amp;library, CircuitStruct &amp;circuit, Settings &amp;settings, Simulation &amp;simulation)</div><div class="ttdoc">Constructs the adversaries.</div></div>
<div class="ttc" id="aclass_hardware_1_1_adversaries_html_adc1a4adb2c943101420b5ddd41f2b800"><div class="ttname"><a href="class_hardware_1_1_adversaries.html#adc1a4adb2c943101420b5ddd41f2b800">Hardware::Adversaries::AddProbingSet</a></div><div class="ttdeci">void AddProbingSet(std::vector&lt; Probe * &gt; &amp;probe_addresses, uint64_t &amp;index)</div><div class="ttdoc">Adds a new probing set to the list of probing sets.</div><div class="ttdef"><b>Definition:</b> Adversaries.cpp:659</div></div>
<div class="ttc" id="aclass_hardware_1_1_adversaries_html_ae124bb7be6bb0cec84377b1d4fe852e1"><div class="ttname"><a href="class_hardware_1_1_adversaries.html#ae124bb7be6bb0cec84377b1d4fe852e1">Hardware::Adversaries::EvaluateRobustProbingSecurity</a></div><div class="ttdeci">double EvaluateRobustProbingSecurity(std::vector&lt; SharedData &gt; &amp;shared_data)</div><div class="ttdoc">Evaluates all adversaries under the robust d-probing model.</div><div class="ttdef"><b>Definition:</b> Adversaries.cpp:1292</div></div>
<div class="ttc" id="aclass_hardware_1_1_adversaries_html_ae124bb7be6bb0cec84377b1d4fe852e1"><div class="ttname"><a href="class_hardware_1_1_adversaries.html#ae124bb7be6bb0cec84377b1d4fe852e1">Hardware::Adversaries::EvaluateRobustProbingSecurity</a></div><div class="ttdeci">double EvaluateRobustProbingSecurity(std::vector&lt; SharedData &gt; &amp;shared_data)</div><div class="ttdoc">Evaluates all adversaries under the robust d-probing model.</div><div class="ttdef"><b>Definition:</b> Adversaries.cpp:1340</div></div>
<div class="ttc" id="aclass_hardware_1_1_enabler_html"><div class="ttname"><a href="class_hardware_1_1_enabler.html">Hardware::Enabler</a></div><div class="ttdef"><b>Definition:</b> Enabler.hpp:10</div></div>
<div class="ttc" id="aclass_hardware_1_1_library_html"><div class="ttname"><a href="class_hardware_1_1_library.html">Hardware::Library</a></div><div class="ttdef"><b>Definition:</b> Library.hpp:230</div></div>
<div class="ttc" id="aclass_hardware_1_1_printer_html"><div class="ttname"><a href="class_hardware_1_1_printer.html">Hardware::Printer</a></div><div class="ttdef"><b>Definition:</b> Printer.hpp:14</div></div>
<div class="ttc" id="aclass_hardware_1_1_probe_html"><div class="ttname"><a href="class_hardware_1_1_probe.html">Hardware::Probe</a></div><div class="ttdef"><b>Definition:</b> Probes.hpp:18</div></div>
<div class="ttc" id="aclass_hardware_1_1_propagation_html"><div class="ttname"><a href="class_hardware_1_1_propagation.html">Hardware::Propagation</a></div><div class="ttdef"><b>Definition:</b> Propagation.hpp:47</div></div>
<div class="ttc" id="aclass_settings_html"><div class="ttname"><a href="class_settings.html">Settings</a></div><div class="ttdef"><b>Definition:</b> Settings.hpp:99</div></div>
<div class="ttc" id="aclass_simulation_html"><div class="ttname"><a href="class_simulation.html">Simulation</a></div><div class="ttdef"><b>Definition:</b> Definitions.hpp:223</div></div>
<div class="ttc" id="aclass_test_html"><div class="ttname"><a href="class_test.html">Test</a></div><div class="ttdef"><b>Definition:</b> dom_indep_d1.cpp:6</div></div>
<div class="ttc" id="astruct_hardware_1_1_circuit_struct_html"><div class="ttname"><a href="struct_hardware_1_1_circuit_struct.html">Hardware::CircuitStruct</a></div><div class="ttdoc">Defines a hardware circuit.</div><div class="ttdef"><b>Definition:</b> Definitions.hpp:138</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
Expand Down
2 changes: 1 addition & 1 deletion docs/_analyze_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_cpu_core_selector_8hpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_cpu_core_selector_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_enabler_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_8hpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_manager_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_manager_8hpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_manager_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/_fault_set_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.0</span>
<div id="projectname">PROLEAD<span id="projectnumber">&#160;3.0.1-alpha</span>
</div>
</td>
</tr>
Expand Down
Loading

0 comments on commit 6fa34f2

Please sign in to comment.