From 32cec9084d5297c8d0aae1d25b2f4b6d168eca43 Mon Sep 17 00:00:00 2001 From: Alex Baker <48138840+ambaker1@users.noreply.github.com> Date: Mon, 16 Oct 2023 00:06:08 -0500 Subject: [PATCH] change in index notation After working with it, this is cleaner. --- doc/ndlist.pdf | Bin 539543 -> 539543 bytes doc/ndlist.tex | 16 ++-- src/tensor.tin | 8 +- tensor.tcl | 8 +- tests/examples.tcl | 12 +-- tests/tensor_test.tcl | 172 +++++++++++++++++++++--------------------- 6 files changed, 107 insertions(+), 109 deletions(-) diff --git a/doc/ndlist.pdf b/doc/ndlist.pdf index 8b8219c15e1f7bff5f7bd8d830ce36764a760c38..5130d6f81c73a5b8ca6c13286e47efa062958c54 100644 GIT binary patch delta 6453 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