Почему julia дает пизды вашим любимым* язычкам программирования.
https://julialang.org/blog/2017/01/moredots
Используя dot call как здесь:
X .= f.(2 .* X.^2 .+ 6 .* X.^3 .- sqrt.(X))
или
@. X = f(2X^2 + 6X^3 - sqrt(X))
Вы эксплицитно требуете от компилятора сгенерировать объединить циклы и сгенерить векторизированый код, который не будет делать промежуточных аллокаций массивов.
Данный подход можно заставить работать и для своих контейнеров, для этого нужно будет реализовать функцию, которая будет работать селектором для данных из вашего контейнера.
Кроме того, есть возможность при помощи библиотеки GPUArrays обсчитывать массивы на opencl/cuda, используя тот же самый код, как и для обычного кода, но используя специальные типы. Все благодаря multiple dispatch и макросистеме.
[*] кроме, пожалуй, хаскеля, если ghc сделает loop fusion и вы не обосретесь с ленивостью
Вот терпеть не могу это массовое внедрение нейросетей.
Во-первых, потому что нейросеть это чёрный ящик на ввод и вывод, который можно контролировать лишь опосредованно по-результату. При этом алгоритм контролируется от начала и до конца, надёжен и понятен каждому.
Вот это внедение нейросетей для решения самых простых задач с которыми справится алгоритм это от лени и глупости. Поставить чёрный ящик, показать ему какой результат тебе нужен и получить готовое решение. Хотя алгоритм проще и надёжнее, если его блять написать.
Хотя конечно есть и штуки которые можно сделать только чёрным ящиком например вот такие https://3dnews.ru/959917 Тут понятно что никакой алгоритм не справиться. Так как сами художники являются чёрными ящиками. И лучше всего с живописью справится именно чёрный ящик.
Во-вторых, как по мне, нейросеть можно воспринимать как живое существо обладающее сознанием. У живых существ есть восприятие и есть дейсвтия которые они совершают исходя из этого восприятия. Как и у нейросети есть аналогичный ввод и вывод.
Таким ообразом использование нейросетей воспринимается мной как рабство и эксплуатация. Понятно что разум нейросетей не находится на уровне человека. Но от массовой эксплуатации таких вот цифровых животных легче не становиться.
Даже блять в amd threadripper встрона нейросеть, оптимизирующая его работу. То есть даже если ты по описанным выше этическим причинам не используешь нейросети, вполне возможно что производитель железа уже внедрил нейросеть в то что ты используешь.
Тут какой-то рашкосойлент появился.
Углеводы 50% Жиры 30% Белки 20%
100 гр = 410 ккал
Холестерин — 0 г
Клетчатка — 11 г
Трансжиры— 0 г
Пребиотики — 9 г
ГМО — 0 г
ОМЕГА 3 — 0,97 г
https://static-eu.insales.ru/files/1/5518/3544462/original/sostav.pdf
8 ПАКЕТОВ = 40 ПОРЦИЙ 6000 рублей
Кто-нибудь пробовал?
https://blog.racket-lang.org/2017/10/racket-v6-11.html
Typed Racket supports refinement types and dependent function types. Previously
an experimental feature, refinement types allow types to describe more
interesting properties of values, especially integers. For example, this type
shows that the max function always produces a number at least as big as its
inputs:
(-> ([x : Integer] [y : Integer])
(Refine [z : Integer]
(and (>= z x) (>= z y))))
Leo considered several languages for implementation, including Ocaml. While I'm certain his familiarity with C++ played a big part in the final decision, he has very justified reasons for choosing it. He claims that it's extremely hard to get excellent performance without breaking the nice abstractions built by such languages (memory management, data structure layout etc.), and I have to say, Lean is blindingly fast when type-checking. A lot of things become easy when working with such a mainstream language, like writing FFI bindings and using compiler frameworks.
Посоветуйте пизделку голосом для андроида с приемлемым качеством (то есть, не телеграм), кроме скайпа. Шифрование сам собой.