Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
Activity
• 21:21
straight-shoota milestoned #12155
• 21:11
beta-ziliani milestoned #12156
• 20:47
straight-shoota closed #12163
• 20:47
straight-shoota closed #12162
• 20:47
straight-shoota closed #11773
• 20:47
straight-shoota closed #11732
• 20:47
straight-shoota closed #11872
• 20:46
straight-shoota milestoned #12026
• 20:46
straight-shoota demilestoned #12026
• 20:38
beta-ziliani milestoned #12165
• 20:30
beta-ziliani synchronize #12146
• 19:40
beta-ziliani edited #5430
• 18:51
beta-ziliani opened #12166
• 18:51
beta-ziliani labeled #12166
• 08:54
straight-shoota closed #12158
• 08:54
straight-shoota closed #12141
• 08:54
straight-shoota closed #12123
• 08:54
straight-shoota closed #3835
• 08:54
straight-shoota closed #12094
• 08:54
straight-shoota closed #12061
mfiano
@mjfiano:matrix.org
[m]
Ok.

Probably not, but is there an existing library for outputting tabulated numbers, particularly floats? I would like to define an #inspect method for 4x4 matrices so it looks like:

0.123 0.484824 12.434934 93.32459
10.4944 0.43244 343.3434 434.0
23.2384 29.34242 93.22424 0.12525
0.2435 0.533556789 0.645532 0.2434534

except:
1) padding should be auto-inserted such that the whitespace around each column is aligned
2) padding should be auto-inserted such that the decimal points in a column are all aligned.

George Dietrich
@Blacksmoke16
dunno if its possible with it, but might be best bet with stdlib
mfiano
@mjfiano:matrix.org
[m]
Hmm ok
mfiano
@mjfiano:matrix.org
[m]
tablo looks very close to what I want. I would definitely need it to work for 1D StaticArray's though which it doesn't support...wonder if I can overload something.
George Dietrich
@Blacksmoke16
doesnt support how?
mfiano
@mjfiano:matrix.org
[m]
docs mention it supporting only Array type, and 2D
George Dietrich
@Blacksmoke16
could call .to_a on it
ofc that would allocate memory and stuff tho but might not be terrible just for UI output like that :shrug:
mfiano
@mjfiano:matrix.org
[m]
Would have to convert it to [][] too
err
array of arrays
I'll see. I don't need most of its features and need to see if I can opt out of them, PR it, or what
like, don't want bars drawn, nor column/row labels
George Dietrich
@Blacksmoke16
problem is going come down to it storing the data as an ivar, which can't be a generic Indexable
generics might solve this but :shrug:
mfiano
@mjfiano:matrix.org
[m]
Yeah it'll all be a learning experience. Been using my over-engineered Lisp math library for about a decade, and I'm always annoyed at how difficult it is to read tabular matrix data when debugging stuff.
George Dietrich
@Blacksmoke16
whats it look like now if you just do pp @data?
mfiano
@mjfiano:matrix.org
[m]
Or rather, unformatted data period
George Dietrich
@Blacksmoke16
mfiano
@mjfiano:matrix.org
[m]
Ah, I don't have a matrix type yet
But in Lisp it looks like this, which is readable only because the PRNG seed made mostly the same digits to the left of the point:
[428.206840, 641.180912, 529.714861, 466.054420
449.058745, 849.850763, 606.009279, 977.445823
242.486631, 25.559494, 67.856057, 165.478953
597.418470, 179.321626, 859.131128, 479.821710]
George Dietrich
@Blacksmoke16
ah pp by default prints a long list, not a 4x4 grid
mfiano
@mjfiano:matrix.org
[m]
So those rand methods in the ClassMethods module...
If I use inheritance, and stick those in an abstract parent struct, that isn't going to cause issues with eg; .new being undefined for the abstract type?
George Dietrich
@Blacksmoke16
if you're using inheritance now just define them as class methods in the parent and call it a day
i dont think so?
mfiano
@mjfiano:matrix.org
[m]
Ok. Inheritance does seem better by far
Unsure if I will even need any mixins for the code I have so far anyway
George Dietrich
@Blacksmoke16
id test that tho, but it should be fine assuming each child has an argless constructor
mfiano
@mjfiano:matrix.org
[m]
wait why?
oh i see what you mean
Yes, that's a given
The one thing I'm unsure about is how to get my T type parameter to resolve for the topmost type....it was passed into include before
George Dietrich
@Blacksmoke16
mfiano
@mjfiano:matrix.org
[m]
Ah.
My intention is to only allow instances in this library to have Float64 for elements in the various containers, and I don't want type inference to permit anything else, so should be able to just make sure all contructors restrict their types, in addition to the above.
George Dietrich
@Blacksmoke16
then why do you need generics?
yea just do that and dont use generics
mfiano
@mjfiano:matrix.org
[m]
Probably don't anymore. I only needed it before because Indexable required a type parameter.
George Dietrich
@Blacksmoke16
generic inheritance can be kinda buggy
well it would be Indexable(Float64)
mfiano
@mjfiano:matrix.org
[m]
Yeah I was only using T because a lot of function signatures became too long with Float64 everywhere
iirc anyway
George Dietrich
@Blacksmoke16
:S
i always find its better to be explicit
even tho crystal allows you to not use them, i always do
at least on publicly facing libs and APIs
mfiano
@mjfiano:matrix.org
[m]
I do agree.