мне не нравится реальность
503 subscribers
1.35K photos
57 videos
56 files
1.04K links
Мне не нравится реальность
N.B. waffle is unhinged

- кормить назад: @meowaffle
- кормить вперёд: github.com/sponsors/WaffleLapkin
- чят: https://xn--r1a.website/+5Dtuan4dVE5kYTcy
- блог: blog.ihatereality.space
Download Telegram
— ги-не-ко-лог ... это какой врач?
— это врач для девочек
— что он делает?
— он смотрит
Forwarded from Neural Machine
Ты занимаешься созданием своего гроба, но хорошо проводишь время
мама я контрибьютор!!1!!1
мне не нравится реальность pinned «Короче говоря я завёл канал с рецептами... @wafflesrerecipes»
Чтоб вы понимали. Посты с тэгом #typed_phy я всегда откладываю на чуть чуть (как минимум для того чтобы они не устарели сразу же после отправки). Из-за этого посты иногда отправляются в порядке обратном хронологическому.

У меня уже немного мозг мозга от этого x_x
Завидую людям которые могут говорить милым детским голоском T_T
Хуёвый (но все говорят что милый)
Forwarded from сявоме (хвоя)
а у тебя какой
Вафель: *пишет в канал как будто это твиттер*
Тоже Вафель: *пишет в канал всякую программистскую хрень*
А когда я вырасту, я стану Томакой?

#typed_phy
Зависть, обидка, грусть и печаль
Forwarded from 小猫は勇者である
Опять мучался с typenum... на этот раз писал реализацию gcd (позже расскажу что зачем и как).

И знаете, у меня так от этого разболелась голова... Вот в самом прямом смысле из возможных.
— type alias'ы для базовых единиц
— макрос для удобного обозначение производных единиц
— немного type alias'ов для производных единиц

#typed_phy
мне не нравится реальность
Опять мучался с typenum... на этот раз писал реализацию gcd (позже расскажу что зачем и как). И знаете, у меня так от этого разболелась голова... Вот в самом прямом смысле из возможных.
Итак gcd (greatest common divisor). На typenum...

Если кратко, у меня есть два typenum-числа (U, V) которые представляют собой дробь (U / V). Мне надо её упростить (e.g.: P15 / P10 = P3 / P2). Для этого мне надо найти gcd(u, v). Но на типах. Задача замудрённая и непонятная, но выходит что "Binary GCD algorithm" вполне подходит (читать англ версию).

Алгоритм крастко:
1. gcd(0, v) = v, gcd(u, 0) = u
2. Если u и v оба чётные, то gcd(u, v) = 2·gcd(u/2, v/2)
3. Если u чётное, а v нечётное, тогда gcd(u, v) = gcd(u/2, v). Соответственно, если u нечётное, а v чётное, то gcd(u, v) = gcd(u, v/2)
4. Если u и v оба нечётные, то gcd(u, v) = gcd((max − min)/2, min) где min = min(u, v), max = max(u, v)

Проблемы:
1. на типах сложно делать такое количество операций (посмотрите на баунды!)
2. из-за (не)возможных конфликтов имплементаций, приходится извращаться с типами
3. если где-то ошибся, то это фиг заметишь/починишь (11/10 чистый и легко читаймый код блин)
4. есть подозрение что из-за количества баундов это практически невозможно использовать.

(гист моей адской реализации)
#typed_phy
мне не нравится реальность
Итак gcd (greatest common divisor). На typenum... Если кратко, у меня есть два typenum-числа (U, V) которые представляют собой дробь (U / V). Мне надо её упростить (e.g.: P15 / P10 = P3 / P2). Для этого мне надо найти gcd(u, v). Но на типах. Задача замудрённая…
Я честно сказать немного озадачен и опечален ибо не понимаю как дальше быть...

Это была моя последняя идея как хорошо сделать ratio (отличие km & m). И она оказалась сложнее всего остального в библиотеке. Видимо мне придётся отказаться от идеи отличия часов и секунд на уровне типов...
Кажется нашёл баг в компиляторе. Пожалуй на сегодня с программированием всё...
У Вафли есть 2 состояния:
— о боже я придумал такую классную абстракцию сейчас напишу такой классный код кайф
— ненавижу эту реальность как же меня всё достало особенно я сам ненавижу ненавижу ненавижу хочу... мне плохо аааааааааа (кричит ловеркейсом) памагити....