Re[56]: The door
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.07.18 03:32
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Во втором же своём сообщении я про это упомянул.

V>Потом долго испытывал странную эмоцию из разряда "я один это вижу?" (С)
Не было такого. Или сформулировано слишком туманно. Код рулит.

V>В коде без линка никто не мешает задавать диапазон обхода непосредственно в алгоритме:

V>
V>for(y = offset1, end = array.Count - offset2; y < end; y++)
V>   ...
V>

ну вот опять. Напишите полный код — чтобы было понятно, каким именно волшебным способом мы вычисляем диапазон обхода так, чтобы он гарантировал безопасность.
Тогда уже можно будет поискать возможность обобщить этот способ, не требуя задавать границы вручную.
V>Я не фанат конкретно итераций по массивам, бо плюсовики почти все свои алгоритмы пишут обощённо через итераторы, но когда приходилось заниматься обработкой изображений или звука, то почти всегда код "сухой", чуть ли не в духе голого С.


S>>В-третьих, не вполне понятен реальный сценарий, в котором на это наступишь.


V>Сценарий известный — градиент размытия от центра или к центру.

V>Т.е. в центре самый фокус, по краям самое размытие.
V>Или наоборот.
С размытием вообще подход «с каемкой» в принципе не подходит.
Для него должен использоваться алгоритм усечения ядра. Придётся обрабатывать два случая: стационарный и динамический. Потому, что в стационарном возможно больше оптимизаций; общий подход будет в разы медленнее чем специфический.

S>>Ну, то есть пока что все задачки, которые обсуждались на уровне кода, использовали статические ядра.


V>Это как раз нормально.

V>Ненормальной была реакция на моё предложение посмотреть на более широкий класс задач.
Предложения должны быть конструктивными. То есть пишем пример кода — обсуждаем варианты. Пишем хамство — обсуждения нет.

S>>Так что есть искушение просто запретить такое при исполнении запроса — то есть обнаружив неконстантные выражения в IRelativeAccess<>.get_Item, сразу выкидывать IndexOutOfRange, не дожидаясь проблемы.


V>Тогда ты "займёшь" данную сигнатуру конкретной реализацией.

V>Впрочем, я уже повторяюсь десятикратно тут...
Надо улучшать не количество ответов, а качество. Потому что непонятно, что такое «конкретная сигнатура» в данном контексте. Пока что видно, что стоит вместо from d писать from d.AsRelative(Bounds.Cut). А короткую сигнатуру задефолтить на самый частый случай.

V>Всё можно.

V>Пока опять на что-то не напорешься.
Ну так жить поэтому и интересно.
V>Мне как раз разнесение целевого кода от "контракта" сходу и не понравилось, если уж начистоту.
V>Понятное дело, что запись алгоритма в пару строк — мечта любого программиста.
V>Но всерьёз если, то под это дело нужны специальные языки.
Ну, интересно же, насколько далеко можно зайти в рамках дотнета и шарпа.
V>Под обработку звука я периодически ковыряю свой эксперимент. Но там больше графическая нотация подходит, чем текстовая.
V>В текстовой форме упираешься сразу в представление параметризации исходного алгоритма — оно чудовищное.
V>Это таблица со значениями, а лучше эдакий "девайс" с большим кол-вом крутилок.
V>И чтобы впрямо в реалтайме эти крутилки крутить и слушать, т.е. сосредоточиться не на подробностях реализации эффекта, а на его конкретных параметрах.
V>Кое-что работающее есть, но это посто хобби.
Ну так и мне за это денег не платят.
V>Я периодически экспериментрирую именно в области разработки языков — то под обработку звука, то под обработку изображений.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.