к сожалению с градусом не так просто… он есть температурный (Кельвин, Цельсий, Фарангейт и прочее), как измерение угла, как смещение фаз электричества… думаю есть и другие градусы…
отсюда же пошло — в военное время прямой угол может достигать 100 градусов :)
Не самый оптимальный запрос по скорости (где-то в середине производительности), зато в один проход :)
Это для PostgreSQL
CREATE TYPE reorder_type AS ( price NUMERIC(12,2) ,dealer INTEGER );
SELECT article, (max(ROW(price , dealer)::text) :: reorder_type).*
FROM test GROUP BY article
Используется индекс по article.
ну или еще более безбашенный подход (он тоже не скоростной, к сожалению )
CREATE OR REPLACE FUNCTION max_func(st test,val test) RETURNS test IMMUTABLE LANGUAGE sql AS
$$ SELECT CASE WHEN $1.price > $2.price THEN $1 ELSE $2 END; $$;
CREATE AGGREGATE max(test) (SFUNC = max_func, STYPE = test);
SELECT (max(t)).* FROM test t GROUP BY article
у меня такой вопрос: а разве компилятор не сохраняет большинство изменяемых регистров самостоятельно при входе в функцию (кроме регистров общего назначения)?
А то получается, что при каждом вызове другой функции он должен всё сохранять, но не встречал такого в дизассемблере. Т.е. достаточно ли дополнительно сохранить EAX...EDX, а не всё-всё-всё?
Большинство этих идей состоит в том что ошибки на канале передачи единичные. (Бит/байт исказился). Когда в канале чрезвычайно много ошибок (более 50% блочных потерь (от 1 до 100 байт), более 5% искажений) не все хорошие идеи работают. А при бинарной передаче как можно ввести запрет на заменяемые символы? Если мне надо передать 20 произвольных float чисел?
Тут проблема пожалуй в том, что на микроконтроллере нет ppp.
На «большой» машине можно решить эту проблему большим количеством способов.
Хотя, по сути, библиотека все что делает — добавляет автоматом адреса, делает byte stuffing, и считает CRC.
Ну и рассчитана она на 8, 16, 32 битные микроконтроллеры.
отсюда же пошло — в военное время прямой угол может достигать 100 градусов :)
Это для PostgreSQL
Используется индекс по article.
ну или еще более безбашенный подход (он тоже не скоростной, к сожалению )
А то получается, что при каждом вызове другой функции он должен всё сохранять, но не встречал такого в дизассемблере. Т.е. достаточно ли дополнительно сохранить EAX...EDX, а не всё-всё-всё?
Еще одная интересная статья по входу в прерывания
На «большой» машине можно решить эту проблему большим количеством способов.
Хотя, по сути, библиотека все что делает — добавляет автоматом адреса, делает byte stuffing, и считает CRC.
Ну и рассчитана она на 8, 16, 32 битные микроконтроллеры.