Size: a a a

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

2021 July 02

ВМ

Вадим Михайлов... in Язык программирования Julia / Julia programming language
Здравствуйте, есть ли тут те, кто успешно пользовался библиотекой Interpolations? Честно признаться, совершенно не понимаю как она работает. Задача стоит банально в том, что у меня есть два вектора: x и y, и надо по значению xi проинтерполировать значение yi(линейно например), с экстраполяцией значений xi, которые вылезают за границы вектора x константами с каждой стороны. В Julia пришёл из Python, где для своих нужд чаще всего пользовался функций interp из numpy. В Interpolations.jl, нашёл LinearInterpolation, но не совсем понял как туда ещё прикрутить экстраполяцию. Хотелось бы сделать все на месте и сразу присвоить интерполированное значение в переменную не создавая отдельно объект «интерполятора». Заранее спасибо за помощь.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
источник

АО

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

АО

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
julia> itp = interpolate(1:7, BSpline(Linear()));
julia> etp = extrapolate(itp, Line());
julia> etp(-1:9)
11-element Vector{Float64}:
-1.0
 0.0
 1.0
 2.0
 3.0
 4.0
 5.0
 6.0
 7.0
 8.0
 9.0
источник

ВМ

Вадим Михайлов... in Язык программирования Julia / Julia programming language
Спасибо
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
источник
2021 July 04

MW

Merlin Wizard in Язык программирования Julia / Julia programming language
Подскажите пожалуйста, а на Джулии можно писать что то большое? Всмысле большой проект, я так понял для небольших программ она прям на ура заходит, быстрое прототипирование+быстродействие, а для большого проекта из-за динамической типизации придется много тестов писать и трудно поймать ошибки?
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Зависит от человека.
Есть примеры очень больших проектов, самый известный и яркий пример это diffeq.
источник

АО

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Тесты писать придётся, да.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну и плюс сейчас новые тулы появляются типа Jet.jl , которые позволяют часть ошибок отлавливать до запуска и тестов.
источник

SG

Serg Gini in Язык программирования Julia / Julia programming language
Раньше я помню чтобы работа была реально быстрой - типы всё равно нужно было указывать. Особенно в разных диспатч функциях. Впрочем как и в питоне их рекомендуется прописывать
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
если тесты покрывают все строки кода, то ошибкам типов взяться почти неоткуда :)
вообще тоже иногда хочется больше статической проверки... здесь надежда на jet.jl и т.п.

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Не, такого никогда не было :-) это видимо было неправильное понимание, что такое type stability у авторов разных туториалов.
источник

АО

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

В структурах типы указывать надо, это факт.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
>придется много тестов писать
Мое ИМХО тесты ускоряют разработку и чем крупнее проект, тем сильнее ускоряют.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
И дело тут не в динамической типизации. В плюсах я тоже как только начал писать что-то более менее крупное пришел к тому что с тестами гораздо комфортнее и быстрее.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну да, тесты могут ещё и логику программы проверять, поэтому легче рефакторить, меньше шансов, что ты что-то сломаешь при изменениях.

Ну и дополнительно, ещё конечно вопрос, что такое большое приложение. По крайней мере в той сфере, с которой я связан, все прочно перешли на микросервисы, и с ними в общем-то размер (и даже на чем их пишешь) уже не очень важен. Куча маленьких изолированных блоков, с прописанными входами/выходами.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Я вообщем то только логику и проверяю. И не только при рефакторинге - набросал тестами что ты хочешь получить, потом доводишь код до того, чтобы он это делал. Тут вот недавно был вопрос про Revise, а я понял что я его вообще не использую при разработке - я просто тесты прогоняю постоянно в процессе разработки чтобы убедиться что все работает так, как мне нужно
источник