Avoid flattening matrix row storage

Address matrix coefficients through their declared row and column bounds. This preserves generated code while avoiding pointer arithmetic beyond the first row subobject in both 3x3 and 3x4 transform stages.

Bug: https://github.com/libjxl/libjxl/issues/4949

Assisted-by: OpenAI Codex
Change-Id: Ied7f5ff71ecb7ea3cedb5e790b5c377b26f42685
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/1333076
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
Reviewed-by: Kaylee Lubick <kjlubick@google.com>
1 file changed
tree: 27865e3ac8ac7ad560677439168a748ee83644d4
  1. bazel/
  2. fuzz/
  3. infra/
  4. ninja/
  5. profiles/
  6. src/
  7. toolchain/
  8. .bazelrc
  9. .bazelversion
  10. .gitignore
  11. BAZEL.md
  12. bench.c
  13. BUILD.bazel
  14. build.ninja
  15. codereview.settings
  16. iccdump.c
  17. LICENSE
  18. MODULE.bazel
  19. MODULE.bazel.lock
  20. msvs.ninja
  21. OWNERS
  22. README.chromium
  23. README.md
  24. skcms.cc
  25. skcms.gni
  26. skcms.h
  27. test_only.c
  28. test_only.h
  29. tests.c
  30. whitespace.txt
README.md

To build with ninja, simply run ninja from the root directory. This will produce a library in /out.

There are also Bazel rules, outlined in BAZEL.md