OffsetArrays.jl
OffsetArrays.jl | AdventOfCode2021 | |
---|---|---|
7 | 12 | |
192 | 1 | |
1.0% | - | |
6.0 | 2.6 | |
18 days ago | over 2 years ago | |
Julia | Perl | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
OffsetArrays.jl
-
Why I am switching my programming language to 1-based array indexing.
Well, there is OffsetArrays in Julia, but it has acquired a reputation as a poison pill because most code assumes the 1-based indexing and it's easy to forget to convert the indexing and screw up the code.
-
The Julia language has a number of correctness flaws
Similar correctness issues are a big part of the reason that, several years ago, I submitted a series of pull requests to Julia so that its entire test suite would run without memory errors under Valgrind, save for a few that either (i) we understood and wrote suppressions for, or (ii) we did not understand and had open issues for. Unfortunately, no one ever integrated Valgrind into the CI system, so the test suite no longer fully runs under it, last time I checked. (The test suite took nearly a day to run under Valgrind on a fast desktop machine when it worked, so is infeasible for every pull request, but could be done periodically, e.g. once every few days.)
Even a revived effort on getting core Julia tests to pass under Valgrind would not do much to help catch correctness bugs due to composing different packages in the ecosystem. For that, running in testing with `--check-bounds=yes` is probably a better solution, and much quicker to execute as well. (see e.g. https://github.com/JuliaArrays/OffsetArrays.jl/issues/282)
-
-🎄- 2021 Day 6 Solutions -🎄-
You might be interested in OffsetArrays.jl.
- PyTorch: Where we are headed and why it looks a lot like Julia (but not exactly)
-
Why does Julia adopt 1-based index?
Counting starts at one, as do most vector/matrix/tensor indices. If it bothers you too much, see OffsetArrays.jl and Arrays with custom indices.
- some may hate it, some may love it
-
Evcxr: A Rust REPL and Jupyter Kernel
No need for another version, Julia supports custom indices by default. Check out https://docs.julialang.org/en/v1/devdocs/offset-arrays/ and https://github.com/JuliaArrays/OffsetArrays.jl
AdventOfCode2021
-
-🎄- 2021 Day 18 Solutions -🎄-
Full program on GitHub.
-
-🎄- 2021 Day 15 Solutions -🎄-
Full program including code to deal with heaps, on GitHub.
-
[2021 Day 11 (Part 2)] What input takes the most steps to synchronize?
Program I used for the above results
-
-🎄- 2021 Day 8 Solutions -🎄-
See my solution on GitHub.
-
Day 6 Proof of Correctness
Note also that you can solve this without a complexity dependency on n. Most solutions I have seen, including mine run in time O(tD), where t is the maximum value of a timer, and D the number of generation, requiring O(t) memory. (This is assuming we can do the required arithmetic operations in constant time, and each numbers require a fixed around of memory storage; if the number of fish gets huge, throw in an additional log n in the complexities, where n is the number of fish on the final day).
-
-🎄- 2021 Day 6 Solutions -🎄-
Based on my matrix exponentiation solution, here is a closed-form solution:
-
How do I read today's input ? Part 1
In my Perl solution of today (I assume, you mean 2021, Day 4), I read stuff in paragraph mode ($/ = "") which makes Perl split input on 2 or more newlines.
-
2021 Day #4 (Part 1) [Native Python ONLY] - Conceptual Guidance?
I considered doing that for my (Perl) solution, but given the cards are small, that seemed overkill.
-
-🎄- 2021 Day 4 Solutions -🎄-
Python implementation on GitHub
What are some alternatives?
StarWarsArrays.jl - Arrays indexed as the order of Star Wars movies
Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications
TwoBasedIndexing.jl - Two-based indexing
Advent-of-code - My solutions of adventofcode.com
Optimization.jl - Mathematical Optimization in Julia. Local, global, gradient-based and derivative-free. Linear, Quadratic, Convex, Mixed-Integer, and Nonlinear Optimization in one simple, fast, and differentiable interface.
Advent_of_Code_2021_Solutions_Java - Personal AoC/2021 Solutions in Java
TailRec.jl - A tail recursion optimization macro for julia.
adventofcode - Advent of Code solutions of 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023 in Scala
julia - The Julia Programming Language
adventofcode - Advent of Code challenge solutions
StatsBase.jl - Basic statistics for Julia
adventofcode - Solutions for problems from AdventOfCode.com