URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 130787
[ Назад ]

Исходное сообщение
"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0 "

Отправлено opennews , 18-Июн-23 07:33 
Доступен релиз Python-библиотеки для научных вычислений NumPy 1.25, ориентированной на работу с многомерными массивами и матрицами, а также предоставляющей большую коллекцию функций с реализацией различных алгоритмов, связанных с использованием матриц. NumPy является одной из наиболее востребованных библиотек, применяемых для научных  расчётов. Код проекта написан на языке Python с применением оптимизаций на языке Си и распространяется под лицензией BSD...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=59312


Содержание

Сообщения в этом обсуждении
"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Иваня , 18-Июн-23 07:33 
Непонятно, за счёт чего увеличена скорость выполнения? Интересно, что там такого сделали?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 07:41 
начали транслированть код с питона на си, а потом включают оптимизацию -O2

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 07:55 
а что это за оптимизация такая ?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 23:37 
ну быстрее всё становится

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 01:37 
Раньше было Раз..Два..Три..Четыре. А сейчас РазДваРазДваРазДва.
Вот как надо объяснять )

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 09:35 
Потому что на C она написана.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:14 
За счёт ускоренного Python 3.11 https://www.opennet.ru/opennews/art.shtml?num=57971
"Проведена значительная работа по оптимизации производительности. ... В зависимости от вида нагрузки отмечается прирост скорости выполнения кода на 10-60%. В среднем производительность при прохождении тестового набора pyperformance увеличилась на 25%."06

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено YM2608 , 18-Июн-23 15:36 
за счёт битовых сдвигов

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 15:53 
Дропнули устаревшие процессоры.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:07 
На питоне обертка, а трудяга оптимизированный Си?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:45 
Да. Си настолько неудобен и отвратителен, что люди готовы даже на Питоне писать, лишь бы не связываться.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:06 
Так и скажите - питон сам вычислять не готов. Он просто легок нравится начинающим.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 20-Июн-23 20:01 
Фигня. Си с Фортраном - самое то для науки. На Си надо писать критически важные по скорости подпрограммы (чтоб не на асме), а остальное - на Фортране.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:24 
> На сишке обертка, а трудяга оптимизированный форктран?
> https://github.com/Reference-LAPACK/lapack
> Fortran 77.8%  C 20.3%

Пофиксил, не благодари.

Так и скажите - сишка сама вычислять не готова. Она просто легко нравится начинающим.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:35 
LAPACK is a library of Fortran subroutines for solving the most commonly occurring problems in numerical linear algebra.

Может в библиотеке для Фортрана Си для прозрачного интерфейса с ядром linux и низкоуровневой организацией типов?


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 09:53 
Трудяга Fortran. Ага, попробуйте пособирать зависимости NumPy при отстуствующем фронтэнде Фортрана.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 20-Июн-23 20:39 
Можно собрать его с бинарным интеловским mkl (единственная норм реализация). Но там тоже фортран, это да.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено nuzhny , 19-Июн-23 12:24 
- Faster np.argsort on AVX-512 enabled processors
- Faster np.sort on AVX-512 enabled processors
- __array_function__ machinery is now much faster
- ufunc.at can be much faster
- Faster membership test on NpzFile

https://numpy.org/doc/stable/release/1.25.0-notes.html#perfo...


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 08:00 
> с использованием оператора "@="

Побольше нескучных операторов в стиле перла! В идеале весь код должен состоять из спец-символов. Alpha-numeric символы -- для 13-летних школьниц, код должен быть максимально непонятным.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 09:36 
Не даёт покоя слава https://ru.m.wikipedia.org/wiki/Brainfuck

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Анонус , 18-Июн-23 10:23 
Ну зачем так сразу, есть более приличный образец для подражанияhttps://ru.wikipedia.org/wiki/APL_(язык_программирования)

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 12:45 
C++ уже превратился в аналог PL/I.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 13:30 
Нет это раст уже давно был спроектирован как замена PL/I.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:21 
Естественно ведь там есть обобщенные типы, интерфейсы, функции. Есть перегрузка операторов.
Все языки где есть "обобщенность" тем или иным образом похожи на PL. В том числе и Rust

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено 1 , 19-Июн-23 09:37 
Ну, если вспомнить историю почему язык назвали PL/1, то да. Единственный язык для всего.
Ну правда все пытаются это оспорить ;-)

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено pashev.ru , 18-Июн-23 18:21 
http://git.pashev.ru/gcd/tree/gcd.apl

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Анонус , 18-Июн-23 19:19 
> http://git.pashev.ru/gcd/tree/gcd.apl

⍝ Символ комментария конечно шикарный


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Tron is Whistling , 18-Июн-23 13:57 
@= ?
Nuke?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:27 
У Перла главная нескучность - символ $ в имени всех переменных. Впрочем, у PHP тоже.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Другой Анон , 18-Июн-23 21:25 
В Perl так было сделано, потому что после $ ожидается не "имя", а выражение. То есть вы можете сделать, например, так:
perl -E '${"foo" . "bar"} = 123; say $foobar;

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:19 
А почему перл присвоил себе первенство использование одноместных операторов. Наверно это всё таки был Си a+=b; @= это просто оператор одноместное умножение матриц как я понял.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 11:03 
>Обеспечено формирование wheel-пакетов на базе стандартной Си-библиотеки musl.

Лучше бы для risc-v и armv7 пакеты сформировали.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 12:45 
Берёшь и делаешь. Думаешь, что этот софт Фиксики пишут?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 00:09 
> Лучше бы для risc-v и armv7 пакеты сформировали.

Чтобы мелькали заголовки "Julia раскидывает сети" ))


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 13:54 
Кто-о ещё пользуется говном по имени MATLAB?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:23 
Приблизительно все кому ехать, а не шашечки и у кого легаси.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 16:56 
Те кому ехать, сейчас уже переползли на Julia. А вот legacy - это да...

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 17:37 
Пойду скажу знакомым из НИИ что они уже переползли на Жулию, пусть похохочат.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 18:29 
Ну если они на Matlab сидят, то у них есть шанс хохотать уже в следственном изоляторе. Тупо за использование нелицензионного ПО.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:30 
Если ты реально веришь что эти бредни по телевизору, то желаю твоим ушам выдержать ещё больше тонн лапши. У них на этаже импортозамещенная ОС одна на весь этаж. Все остальное нормальные ОС и на лицензии им в целом наплевать, хотя есть много лицензий. Да и кто их будет проверять ты туда без спецразрешения от генерала даже не зайдешь.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:50 
> без спецразрешения от генерала даже не зайдешь

Да чего там генерала, сразу генералиссимуса давай, а то генерал вон каждый через каждого уже, даже пропуска на вход в здание генералы подписывают.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:56 
Да и гинеральш уже достаточно.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Бывалый смузихлёб , 18-Июн-23 21:03 
Это те которые до сих пор в латех верстают потому что не в курсе о возможности ввода формул в ворде ?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:27 
Тот кто реально пишет про этот дурацкий редактор формул в ворде очевидно никогда никакой не то что научной деятельностью, но и вообще нормального образования не имеет, кроме школьного. На этом разговор окончен.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Обмазанный смузиприлиз , 18-Июн-23 22:42 
Тоже типа погреться зашел ...

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 23:00 
> формул в ворде

В Ворде нет своего формульного редактора - есть лицензированный модуль. Свой визуальный формульный редактор есть только у ONLYOFFICE.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 23:06 
На Julia переползли те, кому матлаба бесплатнобезсмс не хватало. А кому ехать надо - те переползли на Python.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:13 
numpy - один из столпов, на котором держится популярность питона. Не исключено, что самый важный. С одной стороны, жаль что не входит в стандартную библиотеку питона, с другой - так он развивается независимо и может обновляться отдельно от самого питона. Многих лет и тому и другому.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:24 
Вызывай из раста через питон какие проблемы?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:27 
пропущен фронтенд на js

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено 1 , 19-Июн-23 09:38 
и докер

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 12:51 
Докер в QEMU

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 20-Июн-23 09:37 
На маке с M1, M2 так всё и вызывают, не шутка.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:26 
>жаль что не входит в стандартную библиотеку питона

Очень хорошо, что не входит. Эту стандартную библиотеку давно упразднить пора и определить просто как список предустановленных пакетов. При этом чтобы абсолютно все пакеты там можно было обновить без обновления версии питона.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 17:39 
Такого не может быть или они часть питона и выходят вместе с новой версий питона или никак. Если это будут просто пакеты никто не будет задерживать релиз до полной совместимости пакета и новой версий питона. И эта самая совместимость очень быстро улетучится совсем.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 10:07 
Они не должны быть частью питона. Часто ради одной функции из стандартной библиотеки длопается версия питона. При этом если скачать файл wgetом с GitHubа и заменить оный в директории стандартной библиотеки, то этот модуль прекрасно работает. То есть разрабы питона вынуждают людей дропнуть старые версии питона таким подходом.

>Если это будут просто пакеты никто не будет задерживать релиз до полной совместимости пакета и новой версий питона. И эта самая совместимость очень быстро улетучится совсем.

А не надо релиз задерживать. Когда модуль будет готов, тогда его надо релизнуть в pypi, и только после этого его можно использовать. Версии питона должны быть чисто про возможности интерпретатора и built-inы, а не про кучу модулей, написанных на питоне.

>или никак

Я же сказал, версии питона должны гарантировать небольшой список предустановленных версий модулей в виде >= спецификаторов. Для 2х целей.
1. совместимость со старой моделью, потому что старые пакеты в зависимостях такое не пишут
2. база для pip и setuptools, чтобы были зависимости, необходимые для сборки и установки пакетов.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:33 
> Эту стандартную библиотеку давно упразднить пора

А что в питоне есть core (как в Rust), где реализованы примитивы?


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 09:55 
Есть built-in модули.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 20-Июн-23 09:38 
На упразднить пора раст.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 14:36 
>>  Python-библиотеки для научных вычислений

Для научных вычислений это скорее scipy и sympy.
Numpy это скорее базовая прикладная математика.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 17:15 
За использование sympy в "научных вычислениях" надо руки отрывать.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 20-Июн-23 10:48 
То есть Wolfram Matematica можно, а за Sympy - руки отрывать? Нельзя пользоваться, АНОН ОПЕННЕТА НЕ ОДОБРИЛ!

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 15:55 
Работники науки! Учите Питон! Фортран устарел, уже давно.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено economist , 18-Июн-23 17:58 
В 95% numpy используется из pandas. Несколько сильных шагов в части ускорения связки python+numpy+pandas (например переход на apache arrow) - перечеркивают закосневшие журнализмы *выводы о тормознутости матрасчетов на Python) и требуют переосмысления.

А еще требуют pip install -U pandas numpy

Переписывать почти ничего не надо, а если и надо - гуглится всё на раз (плюсы развитой экосистемы).

Выход на 1-е место в DS ЯП Julia и канонизация в вечность для Matlab - опять откладываются на неопр. срок.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 18:39 
всё что там требуется - это format c:

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:37 
access deny

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Анонус , 18-Июн-23 19:24 
> Выход на 1-е место в DS ЯП Julia и канонизация в вечность
> для Matlab - опять откладываются на неопр. срок.

Кажется Джулия поскользнулась где-то на старте и уже не взойдет на пьедестал.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 19:32 
У Джулии ошибка в маркетинге. Физиков, вычислительных биологов и химиков они к себе привязали просто за счёт куда более удобной инфраструктуры вокруг языка и доступных библиотек. А вот в массовом DS - да, прозевали. То есть, Julia сейчас ушла в научную сферу, но ширпотреб - не ясно.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 21:52 
Насколько Julia популярнее электронных таблиц в науке?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:18 
Зависит от отрасли науки. Белки секвенировать или тензоры считать для твердотельщиков - это явно не для таблиц задача.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:21 
врочем, какие-нибудь гидравлические и ядерные модели - аналогично https://github.com/orgs/lanl-ansi/repositories?language=juli...

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:24 
Как раз с маркетинговыми приемами там всё в порядки - переименовывают что уже было до них, например мультиметод.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 22:39 
Вот не надо путать маркетинг и внутренние реализации известных подходов к полиморфизму. Полиморфизм на аргументах, как метод, понятно, что не они изобрели. Но Julia сейчас самый известный случай его применения.

А вот реальный маркетинг у них ограничивается статьями о DataFrames.jl в блоге https://bkamins.github.io/ и время от времени появляющимися статьями о нелинейной оптимизации на JuMP.jl. Остальные области развиваются очень тихо и незаметно.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Обмазанный смузиприлиз , 18-Июн-23 22:49 
Параметрический полиморфизм это не метод, а свойство семантики системы типов.
С++ и Rust не в счёт?

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 00:00 
У C++ полиморфизм по схеме предок-потомок, а не параметрический. Не можете вы в C++ создать пачку методов разных классов вне классов и заставить его разбираться с тем, какой вызвать. Про Rust не знаю.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 00:58 
Параметрический полиморфизм здесь был упомянут вместо полиморфизма над аргументами, упомянутого выше. Не утверждалось, что в С++ истинный параметрический полиморфизм. Семантически реализуется как ad-hoc полиморфизм. Как реализация через перегрузку функций, операторов и интерфейсы для фактических типов. В С++ это выводится из всей иерархии типов (наследование и раздувание кода), а в Rust через реализованные для типа трейты (traits). Раздувания в Rust не происходит и близко к принципу - присутствует только то что нужно.
Упоминание ПП было сторично. Первично было возражение на фразу "Полиморфизм на аргументах, как метод, понятно, что не они изобрели. Но Julia сейчас самый известный случай его применения."

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 01:08 
Опят же не понятно, что вы понимаете под "пачка методов". В С++ есть система шаблонов, где в одном месте одной обобщенной функцией с обобщенным параметром описывается реализация. Я подразумевал это под параметрическим полиморфизмом (как ad-hoc механизм).    

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 01:40 
Просто вы не понимаете что такое полиморфизм у Julia. В отличии от C++, у которого полиморфизм возможнен только через таблицу виртуальных функций и не может быть никак изменён после компиляции (средствами языка, естественно, а не перезаписью адресов виртальных таблиц).

Джулийный полиморфизм заключается в том, что выбран будет тот метод из существующих в данный момент, типы атрибутов которого наиболее близки к типа вызова.

Например объявленная f(x, y) = x * y означает типы Any. И будет вызван именно этот метод функции f при любых аргументах. Что f(1, 2), что f("a", "b"). В последнем случае будет выполнена конкатенация. Но я могу объявить f(x::Number, x::Number) = x / 2, тогда f(1, 2) однозначно пойдёт в этот метод. А могу спуститься по дереву абстрактных типов и определить ещё конкретнее - f(x::Integer, y::Integer) = x / y + 1, что определит путь вызова исключительно для целых. Могу ещё больше детализировать под конкретный тип Int64, Int32 и пр. А могу определить его для другой ветви Number, например на комплексные. И у меня получается функция f с кучей методов, имеющих ровно два аргумента, но разных типов. И во время исполнения я могу определить новый метод f (например подгрузил пакет) или удалить существующий (по факту не требовалось). Пример привёл под стандартные типы, но ветку типов можно сделать свою, определяя номые методы f именно под свой тип.

А вот про C++, полагаю, что имеете в виду вовсе не полиморфизм, а выбор метода по сигнатуре с разным количеством аргмунетов. Впрочем, множественной диспетчеризацией, а не полиморфизмом в Julia они назвали это, скорее всего, из-за общности вызова. Им всё равно это полиморфизм на новом типе или подбор сигнатуры под новый набор аргументов.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 07:27 
> Джулийный полиморфизм заключается в том, что выбран будет тот метод из существующих в данный момент, типы атрибутов которого наиболее близки к типа вызова.

Это называется неопределенная реализация. Как в питоне.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 07:36 
У Джулии нет неопределённой реализации. Типы всегда определены, но если не указаны явно, это означает тип Any как корень дерева абстрактных типов.

"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 01:20 
> Не можете вы в C++ создать пачку методов разных классов вне классов и заставить его разбираться с тем, какой вызвать.

Это почему же? В С++ тип легко определяется во время выполнения. Дальше switch по фактическому типу на нужную функцию. Или через таблицу виртуальных функций. В Си кстати также можно реализовать полиморфизм через виртуальные функции.


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 19-Июн-23 07:24 
Вот примеры для Rust:

//Обобщенные функции Fmul и Fplus
use std::ops::Add;

fn Fmul<T>(x:T, y:T) -> T::Output
where T: std::ops::Mul  // для типов, реализующих трейт Умножение
{ x * y }

#[derive(Debug,Copy,Clone)]
struct Point {
    x:i32,
    y:i32,
}
impl Add for Point {
    type Output = Self;
    fn add(self, p2: Self) -> Self {
        Self {x: self.x + p2.x, y: self.y + p2.y}
    }
}

#[derive(Debug,Clone)]
struct WrappedString {
    s:String,
}
impl Add for WrappedString {
    type Output = Self;
    fn add(self, s2: Self) -> Self {
        Self {s: self.s + &s2.s}  
    }
}

fn Fplus<T>(x:T, y:T) -> T::Output
where T: std::ops::Add // для всех типов, реализующих трейт Сложение
{ x + y }

fn main(){
    let i1:i32 = -3;
    let i2:i32 = 4;
    println!("{:?}", Fmul(&i1,&i2));
    let u1:u32 = 30;
    let u2:u32 = 40;
    println!("{:?}", Fmul(&u1,&u2));
    let p1 = Point{x: 3, y: 4};
    let p2 = Point{x: 5, y: 6};
    let s1 = WrappedString{s:"Склей".to_string()};
    let s2 = WrappedString{s:"ка".to_string()};
    println!("{:?}", Fplus(p1,p2));
    println!("{:?}", Fplus(s1,s2).s);
    println!("{:?}", "Склей".to_string()+"ка");  
    println!("{:?}", Fplus(&u1,&u2));
}


"Выпуск Python-библиотеки для научных вычислений NumPy 1.25.0..."
Отправлено Аноним , 18-Июн-23 23:21 
Тунеядцам с их моделями делать на пьедестале нечего.