Search
Write a publication
Pull to refresh
24
0
Nikolai @ngis

Программирование. Качество гарантированное опытом.

Send message

Согласен.

Целочисленный алгоритм из статьи был создан 1989 году, как составная часть алгоритма для быстрого, максимально приближенного к реальному отображению сплайнов на мониторах с низким разрешением, порядка, 320х200, 640x350 и т.п.

На мониторах с диагональю 12" ошибки округления приводили к образованию "узелков" на кривых, потере визуальной гладкости.

Погоня за двумя зайцами (визуальная гладкость и скорость отображения) стала главным мотиватором отказа от библиотечной функции в угоду оригинального алгоритма.

Согласен. Вы правы.

Новые документы создаю по персональному набору шаблонов.

Однако, иногда, делая короткие документы без шаблона, так же хочется видеть "любимый" Arial.

Заметим, данная модификация (Arial по-умолчанию) предполагает:

  • только изменение параметров;

  • отсутствие модификации исходного текста;

  • может быть отменена стандартными настройками.

CyberOffice.pro - настройка шрифтов по-умолчанию.
CyberOffice.pro - настройка шрифтов по-умолчанию.

Допускаю, что Вы правы.

Изменение шрифта по-умолчанию - это просто каприз, личное, эмоциональное восприятие, основанное на персональном опыте/ощущениях.

Квалифицированные пользователи легко установят предпочтительные шрифты настройкой параметров CyberOffice.pro или шаблонами документов.

Работая с документами часто нужен поиск/проверка того или иного термина в сети.
У поисковых систем разная выдача по одим и тем же запросам.

CyberOffice.pro делает эту операцию комфортной:

  1. Выделить фрагмент текста в документе;

  2. Выбрать поисковую систему;

  3. Прочесть выдачу выбранного поисковика в атоматически открывшемся окне браузера.

CyberOffice.pro - автоматизация поисковых запросов
CyberOffice.pro - автоматизация поисковых запросов

CyberOffice.pro - это не своё.

Это лёгкая модификация Apache OpenOffice.

Смена названия после модификации сделана в силу исполнения правил торговых знаков и лицензирования Apache.

Выбор донора, Apache OpenOffice или LibreOffice, произведён после конкурентных испытаний тестовых сборок на основе исходников из обоих проектов на разных платформах.

Apache OpenOffice показал лучшие результаты, как потенциальный донор для CyberOffice.pro.

Пакет написан на C++. Он кросс-платформенный.

CyberOffice.pro - это хобби, это для себя и для друзей.

Сборок для других платформ нет в силу отсутствия мотивации и спроса.

Java применяется для расширенния функциональности без модификации исходного кода. Основная функциональность доступна без установки Java.

Для расширения функциональности без модификации исходного кода применимы разные языки программирования, например, C/C++, Java, BeanShell, JavaScript, Python, StarBasic, ...

StarBasic, встроеный ЯП, позволяет создавать алгоритмы любой сложности.

Вы абсолютно правы, говоря о классах листа, приложения.

Однако, иногда возникает необходимость инициализации переменных уровня модуля в зависимости от состояния среды исполнения, листов и/или приложения до вызова любых прикладных функций модуля.

В крайней версии контроллера добавлен приоритет (порядок) инициализации модулей VBA.

Задача VO не помогать, а сигнализировать о присутствии скрытой информации, до того как документ будет сохранён в файле или отправлен на печать или с письмом.

Получив сигнал, пользователь сам решает, нужна ли чистка документа от артефактов или нет.

В случае положительного решения пользователя, VO предоставляет на том же "клике" минимальный набор функций для изъятия из тела документа скрытых артефактов.

mctMaks, Вы правы.

Изменение тактовой частоты MCU существенно влияет на производительность.

Разброс скорости выполнения (в тактах MCU) даже маленьких участков бинарного кода может достигать 100%.

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

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

На графике зависимость производительности кода от частоты MCU, полученная экспериментально.

Больше информации здесь: ARM Cortex M* — «сколько вешать в граммах».

SemenovVV,

метод CosN, без сомнений, интересный и много обещающий.

Но, не могли бы вы доработать алгоритм CosN согласно техническим условиям из статьи?

  • Единица измерения параметра: угловой градус - 1,0 °.

  • Область определения параметра: (-5400) ° .. 5400 °.

Иначе получается, что мы сравниваем, пусть замечательный, но прототип и готовое решение. Что может вызывать некоторые сомнения.

Сомневаюсь, что частное мнение уместно по вопросам высокого ранга.

В исходном комментарии поставлен частный вопрос. Показана точка зрения, склоняющая к утвердительному ответу на риторический вопрос.

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

Авторитетное мнение с научной квалификацией склоняется к утвердительному ответу на риторический вопрос.

Однако, из этого вовсе не следует, что каждый должен слепо следовать по пути авторитетных учёных.

Бытует мнение, что атеизм - это тоже вера, только от обратного.

Одни верят, что бог есть. Другие верят, что бога нет.

Доказательств, примеряющих стороны, нет.

А вера не требует доказательств.

Любые обобщения, утверждения, гипотезы имеют право быть, пока обратного доказательства нет.
(imho)

О нейрофизиологии, если кратко:

Нейрофизиогог Наталья Бехтерева: "И тогда я обратилась к Богу..."

И, о нейролингвистике, собственно говоря:

Нейролингвист Татьяна Черниговская "Жизнь после смерти есть"

В салоне пассажирского самолёта на взлёте атеистов нет.
Хотя, среди пассажиров изредка попадаются персоны с атрофированным чувством опасности.
Однако, все они дружно аплодируют в конце пробежки самолёта в аэропорту назначения.

Вопрос. Кому обращена благодарность пассажиров на языке аплодисментов, если пилоты современных Boeing и Aerbus имеют слабое отношения к пилотированию в роли наблюдателей (операторов) работы лётной программы на автомате на всём протяжении полёта, включая взлёт и приземление?

SemenovVV,
искренне рад видеть, что Cos6 демонстрирует отличные показатели на платформе M0:
- хорошая скорость: в 3-4 раза быстрее стандартной функции cosf();
- малое потребление памяти: 280 байт бинарного кода;
- точность выше в два раза, чем у cost() и Cos4().

Сравнительная точность:

Сравнительная скорость счёта:


Согласен, vkni.

Мы так же забыли, что компьютерные программы могут работать годами без переустановки и обновления. :-)

SemenovVV ,

приношу извинения, при переписывании алгоритма допущена опечатка, искажающая результат.

Сравнительные характеристики после устранения опечатки.

Замечание об отсутствии обязательных частей в алгоритме Cos4 актуально.

Ниже Cos4 на C.

В коде малые правки, ускоряющие работу на тестовой платформе Cortex M0:
-- отказ от типа float64 в пользу float32 ( ускорение более чем в два раза );
-- отказ от типа int8 в пользу int32 ( ускорение приблизительно на 15% ).

#ifndef M_PI
#	define M_PI	3.14159265358979323846	/* pi */
#endif

typedef double float64;
typedef float float32;

#define pi32 (float32)M_PI

float32 cos4( float32 ugol )
{
	///  ugol от 0 до пи/2
	int32_t interval;
	float32 a;
	float32 b;
	float32 c;
	interval = (int32_t) ( ( 8 * (float32) ugol ) / pi32 );

	switch ( interval )
	{
		case 0:
			a = -0.4888191;
			b = -0.0018803;
			c = 1;
			break;
		case 1:
			a = -0.4144009;
			b = -0.0638028;
			c = 1.0128406;
			break;
		case 2:
			a = -0.2768938;
			b = -0.2824576;
			c = 1.0997504;
			break;
		case 3:
			a = -0.0972322;
			b = -0.7072145;
			c = 1.3508006;
			break;
		default:
			a = 0;
			b = 0;
			c = 0;
			break;
	}
	return ugol * ( a * ugol + b ) + c;
}

Сравнительно-интересный алгоритм. Спасибо.

Cos4 опережает по скорости библиотечную функцию cosf, но немного отстаёт от алгоритма cosint.

Провести "честное" сравнение производительности возможности нет, т.к. в алгоритме Cos4 отсутсвуют обязательные части:
- единица измерения аргумента угловой градус, 1.0 ° ;
- область определения аргумента [ -5400 ° .. 5400 ° ];

Добавление обязательных частей замедлит работу Cos4.

Сравнительный тест проведён на платформе Cortex M0 на интервале
[ 0 ° .. 90 ° ] с шагом 3 ° плюс малый шум.

Ошибка - разность с результатом библиотечной функции cosf().

Самый простой пример - колесо. И кто сказал, что только люфт является источником вибраций?

Вы правы, но в моём комментарии нет утверждения, что вибрации вызывает только люфт.
Отсутствие баланса подвижных деталей - это ошибка проектирования и/или производства в любом механизме.

Из какой практики вы это почерпнули?

Допускаю, что могу ошибаться, но мы с Вами знаем, что успешное проектирование и производство надёжных и долговечных механизмов требует осилить "слоёный пирог", приблизительно, из 15-и технических дисциплин, плюс "вишенка" = "Допуски и Посадки".

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

Величина люфта (зазора в посадке) подбирается индивидуально для каждой подвижной пары деталей. Дефицит люфта грозит заклиниванием механизма. Профицит люфта - ускоряет износ и снижает КПД в силу паразитных вибраций в подвижной паре во время работы.

Люфт подвижных пар может находится за границами органов чувств человека. Но, если механические детали подвижны, то значит люфт там есть.

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

Справедливо только в помещениях и то не во всех.

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

--
Извиняюсь за отклонение от темы.

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Software Developer, Project Manager
Senior