Size: a a a

Язык программирования Julia / Julia programming language

2018 August 29

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
ещё я кстати обнаружил, что почему-то нет до сих пор rfft (БПФ), который бы делал всё in-place
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Если хранить данные в структуре, то при начальной инициализации они только будут пустыми и будут аллоцироваться только когда будет происходить вызов соответствующей функции.

А вообще, это же обычный кэш, его можно выделить в отдельный тип, и навесить на него всякие обработчики кеша (типа деаллокации) и вызывать их в нужных местах программы, когда ты знаешь, что тот или иной кусок кэша пора чистить.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
😯🤔
источник
2018 August 30

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
А кто-нибудь что-нибудь слышал про какую-нибудь встроенную функцию проверки на равенство двух подмассивов?
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
x[1 : 100] == y[1 : 100] — очень плохо (аллокации и т.д.)
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
@views x[1: 100] == y[1 : 100] по непонятным причинам ещё медленнее )
источник

SV

Sergey Volkov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
x[1 : 100] == y[1 : 100] — очень плохо (аллокации и т.д.)
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
не совсем (он там спрашивает, как проверить, что все элементы в одном массиве равны друг другу)
источник

SV

Sergey Volkov in Язык программирования Julia / Julia programming language
А не, не про то
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
я могу придумать десяток способов сравнить 2 массива с помощью ==, .==, all, any, но почему все из них аллокируют память? )
источник

SV

Sergey Volkov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
я могу придумать десяток способов сравнить 2 массива с помощью ==, .==, all, any, но почему все из них аллокируют память? )
Интересно, я если numpy like сделать, что получится?
https://github.com/numpy/numpy/blob/v1.15.1/numpy/core/numeric.py#L2389-L2428
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
asarray(a1 == a2)
при этой операции будет сформирован булевский вектор из сотни значений ведь
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
во всяком случае в Julia
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
если писать самостоятельно, то легко конечно написать функцию типа
same(arr1, arr2, startIndex, len)
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
просто часто библиотечные функции работают чуть быстрее ) и странно, что нет операции сравнения встроенной какой-то
источник

SV

Sergey Volkov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
во всяком случае в Julia
Так и в numpy также
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
в julia можно так написать:
all(x .== y)
если сравнивать 2 массива целиком, но такая штука будет работать дольше всех )
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
а если ещё и подмассивы приплести, т.е.
all(x[1:100] .== y[1: 100])
то прям совсем долго )
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
ну, надо понимать, что с моей маниакальной страстью к бенчмаркам "долго" — это 50 микросекунд для всех подряд идущих подмассивов длины 10 в массиве длины 10_000 с дополнительными вычислениями )
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
т.е. скорее всего никто и не заметит )
источник