From 9588b7f0df0765a37f07c8c5fd09fd8dc188dc8e Mon Sep 17 00:00:00 2001 From: Keenan Tims Date: Sat, 18 Mar 2023 21:50:12 -0700 Subject: [PATCH] Add performance graphs to repo --- doc/perfcomp_all.png | Bin 0 -> 19937 bytes doc/perfcomp_v4.png | Bin 0 -> 19673 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/perfcomp_all.png create mode 100644 doc/perfcomp_v4.png diff --git a/doc/perfcomp_all.png b/doc/perfcomp_all.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcccf6649f1805007b1b2873a652ee488d70b7e GIT binary patch literal 19937 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 A0{{R3 literal 0 HcmV?d00001 diff --git a/doc/perfcomp_v4.png b/doc/perfcomp_v4.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6ac39e8a7b46e1d5dce20038e7515fae775323 GIT binary patch literal 19673 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 I$y<;AFB=;Su>b%7 literal 0 HcmV?d00001