GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.7 (15)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Как получить значения множественных(точками) аргументов функции в Си?
гость
185.220.101.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 17 ноя 21 6:21
Цитата:
Автор: гость
дак берите и программируйте все эти алгоритмы кластеризации/классификации, выкладывайте их сюда, а все присутствующие будут закидывать вас говном..
А вы что сильно обидчивый? Хотите что бы вас только хвалили, обманывали вас, лицемерничали...
[Ответ][Цитата]
гость
51.158.183.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 19 ноя 21 5:44
Цитата:
Автор: Сергей Гаврилов

Ну в общем посидел я вчера вечером над этими тасками, результаты такие:

1) atof удалось обогнать в 8 раз.
2) парсер быстрее питоновского(с пандовским масивом) в 3 раза
Зря вы свой говнокод выложили, этим только доказали что как раз таки не профессионал, так как профессионалы никогда не пишут код бесплатно, "по вечерам" и не выкладывают на форумах. И если имя и фамилия ваши тут реальные(), то вероятно будете немедленно уволены и вас больше никогда не возьмут на работу, ну разве что в какую то маргинальную контору, где мало учитывают софтскилы, а берут всех подряд(за 40, отсидевщих, наркоманов и аутистов) лишь бы умели писать код.

Для профессионала самое главное это — ИСПОЛНИТЕЛЬНОСТЬ и ПРЕДСКАЗУЕМОСТЬ, а личная инициатива работника вредна, так как чем больше собственной инициативы у работника тем сложнее ему сосредоточиться на ОБЯЗАННОСТЯХ, то есть на чужой инициативе.

Кроме того, а чего это у вас столько свободного времени, что осталось только код писать на этом невменяемом форуме? У вас что ли нет жены и детей? Если так, то значит с вами что то определённо не в порядке, не прошли половой отбор, или не в состоянии содержать семью, а может гомосексуалист, не нормальный одним словом.
[Ответ][Цитата]
гость
188.170.172.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 19 ноя 21 7:13
Цитата:
Автор: гость
Кроме того, а чего это у вас столько свободного времени, что осталось только код писать на этом невменяемом форуме?

Так а ВЫ что тут делаете, на этом форуме? Пытаетесь кому то доказать, что он непрофессионал? Это смешно выглядит.. Профессионалы так не делают, так что выводы следующие - вы сами точно не профессионал, а гаврилов - скорее всего что-то умеет.
[Ответ][Цитата]
Дмитрий Стволовой
Сообщений: 364
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 19 ноя 21 8:19
Изменено: 19 ноя 21 8:20
Цитата:
Автор: Андрей Кучеменко

Парсер кодить занятие подозрителльное, даже можно сказать что позорное, но то что какой то случайный мужичек легко atof в 8 раз обскакал, кодом в 10 строчек, это забавно.


static double atof2(char* s)
{
long double res = 0;
int sign = 1, powflag = 0;
unsigned long long pow = 1;
if (*s == '-') { sign = -1; s++; }

while (*s != 0)
{
if (*s >= '0' && *s <= '9')
{
res = res * 10 + (*s - '0');
if (powflag) pow *= 10;
}
else if (*s == '.') powflag = 1;
++s;
}
return sign * (res / pow);
}


И посмотрите на код atof Гаврилова, сделано в лоб, поделка на коленке, он дабл использует внутри вычисления, с интом наверно будет ещё в разы быстрее.

Но всё это заставляет задуматься об оптимальности стандартных библиотек, в ситуациях когдда скорость критична.
Гаврилов конечно молодец, но это мало что доказывает, по крайней мере в отношении atof. Код Гаврирова отрабатывает только один формат чисел, именно поэтому он и работает быстрее, ну и нет никакого защитного кода. Это может сойдёт только для инхаусных приложений, когда точно известно что идёт на вход такой функции.

Я было тоже хотел тряхнуть стариной, но потом напился и обломался, может как нибудь тоже ченить накидаю покажу класс. Уж точно умножение на 10 экспоненты и затем деление на неё действительного числа чтобы выставить точку — не самое быстрое решение))
[Ответ][Цитата]
гость
107.189.13.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 19 ноя 21 11:20
я лично осуждаю гаврилова, он пошел по пути сайфера, начал что то делать, а значит что то хочет взамен, но я лично на это не подписывался, вон сайфер подаяния просит, на ТВ и ютубе ищет спонсоров, дом с машиной ему подарили "для терминатора", это должно не понравиться местным, которые кровью и потом зарабатывают на бутылку
[Ответ][Цитата]
гость
185.220.101.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 20 ноя 21 0:56
static double atof2(char* s);
должна как минимум парсить это:
+0.1e+1
перед сравнением с atof.
[Ответ][Цитата]
Дмитрий Стволовой
Сообщений: 364
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 20 ноя 21 3:42
Цитата:
Автор: гость

static double atof2(char* s);
должна как минимум парсить это:
+0.1e+1
перед сравнением с atof.
да как минимум, а вообще стандартный atof берёт


{ "12.345", 12.345, '\0', 0 },
{ "12.345e19", 12.345e19, '\0', 0 },
{ "-.1e+9", -.1e+9, '\0', 0 },
{ ".125", .125, '\0', 0 },
{ "1e20", 1e20, '\0', 0 },
{ "0e-19", 0, '\0', 0 },
{ "4\00012", 4.0, '\0', 0 },
{ "5.9e-76", 5.9e-76, '\0', 0 },
{ "0x1.4p+3", 10.0, '\0', 0 },
{ "0xAp0", 10.0, '\0', 0 },
{ "0x0Ap0", 10.0, '\0', 0 },
{ "0x0A", 10.0, '\0', 0 },
{ "0xA0", 160.0, '\0', 0 },
{ "0x0.A0p8", 160.0, '\0', 0 },
{ "0x0.50p9", 160.0, '\0', 0 },
{ "0x0.28p10", 160.0, '\0', 0 },
{ "0x0.14p11", 160.0, '\0', 0 },
{ "0x0.0A0p12", 160.0, '\0', 0 },
{ "0x0.050p13", 160.0, '\0', 0 },
{ "0x0.028p14", 160.0, '\0', 0 },
{ "0x0.014p15", 160.0, '\0', 0 },
{ "0x00.00A0p16", 160.0, '\0', 0 },
{ "0x00.0050p17", 160.0, '\0', 0 },
{ "0x00.0028p18", 160.0, '\0', 0 },
{ "0x00.0014p19", 160.0, '\0', 0 },
{ "0x1p-1023",
1.11253692925360069154511635866620203210960799023116591527666e-308,
'\0', 0 },
{ "0x0.8p-1022",
1.11253692925360069154511635866620203210960799023116591527666e-308,
'\0', 0 },
{ "Inf", HUGE_VAL, '\0', 0 },
{ "-Inf", -HUGE_VAL, '\0', 0 },
{ "+InFiNiTy", HUGE_VAL, '\0', 0 },
{ "0x80000Ap-23", 0x80000Ap-23, '\0', 0 },
{ "1e-324", 0, '\0', ERANGE },
{ "0x100000000000008p0", 0x1p56, '\0', 0 },
{ "0x100000000000008.p0", 0x1p56, '\0', 0 },
{ "0x100000000000008.00p0", 0x1p56, '\0', 0 },
{ "0x10000000000000800p0", 0x1p64, '\0', 0 },
{ "0x10000000000000801p0", 0x1.0000000000001p64, '\0', 0 },
{ NULL, 0, '\0', 0 }


Но Гаврилов видимо показал что для узкой задачи можно прооптимизироваться причем не особо изошряясь, хотя конечно это не очень и профессионально может показаться в общем смысле.
[Ответ][Цитата]
гость
51.158.183.*
На: Как получить значения множественных(точками) аргументов функции в Си?
+1
Добавлено: 21 ноя 21 7:36
Цитата:
Автор: гость


Так а ВЫ что тут делаете, на этом форуме? Пытаетесь кому то доказать, что он непрофессионал? Это смешно выглядит.. Профессионалы так не делают, так что выводы следующие - вы сами точно не профессионал, а гаврилов - скорее всего что-то умеет.
А где ваш код?
[Ответ][Цитата]
Данила Зайцев
Сообщений: 156
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 24 ноя 21 9:46
Цитата:
Автор: гость
вопрос в том, можно ли преобразовать быстрее, чем atof..
Это запросто, в С++17 появились "сверхскоростные" std::from_chars std::to_chars, уж по быстрее будет поделок каких то самоделкиных с готайки.

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

[Ответ][Цитата]
гость
185.100.87.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 25 ноя 21 4:14
Цитата:
Автор: Данила Зайцев

с Царегородцевым у кого быстрее MLP, у него из того что можно найти в сети была программка NeuroPro

У г-дина псарегорцева походу одна только работающая софтинка написанная в 98м и с тех пор учит студентиков по чирику бакинских в час. Я думаю что он в своём Краснохуйске ещё и подрабатывает ещё где то, низкоквалифицированно, расходничком или грузчиком, а может сторожит магазин как rrr3.
[Ответ][Цитата]
гость
107.189.4.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 08 дек 21 3:29
методики оптимизации кода

Улучшение и быстродействия, и объема
 Замените сложную логику на обращения к таблице.
 Объедините циклы.
 Используйте целочисленные переменные вместо переменных с плавающей запятой.
 Инициализируйте данные во время компиляции.
 Используйте константы корректного типа.
 Вычислите результаты предварительно.
 Устраните часто используемые подвыражения.
 Перепишите ключевые методы на низкоуровневом языке.
Улучшение только быстродействия
 Прекращайте проверку сразу же после получения ответа.
 Упорядочивайте тесты в блоках case и цепочках операторов if-then-else по частоте.
 Сравните быстродействие похожих структур логики.
 Используйте методику отложенных вычислений.
 Разомкните цикл, содержащий оператор if.
 Выполните развертывание цикла.
 Минимизируйте объем работы, выполняемой внутри цикла.
 Используйте сигнальные значения в циклах поиска.
 Вложите более ресурсоемкий цикл в менее ресурсоемкий.
 Снизьте стоимость операций, выполняемых внутри цикла.
 Замените многомерные массивы на одномерные.
 Минимизируйте число обращений к массивам.
 Дополните типы данных индексами.
 Кэшируйте часто используемые значения.
 Проанализируйте алгебраические тождества.
 Снизьте стоимость логических и математических выражений.
 Остерегайтесь системных методов.
 Встройте методы.
[Ответ][Цитата]
гость
178.176.218.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 08 дек 21 10:51
Цитата:
Автор: гость

методики оптимизации кода

Улучшение и быстродействия, и объема
 Замените сложную логику на обращения к таблице.
 Объедините циклы.
 Используйте целочисленные переменные вместо переменных с плавающей запятой.
 Инициализируйте данные во время компиляции.
 Используйте константы корректного типа.
 Вычислите результаты предварительно.
 Устраните часто используемые подвыражения.
 Перепишите ключевые методы на низкоуровневом языке.
Улучшение только быстродействия
 Прекращайте проверку сразу же после получения ответа.
 Упорядочивайте тесты в блоках case и цепочках операторов if-then-else по частоте.
 Сравните быстродействие похожих структур логики.
 Используйте методику отложенных вычислений.
 Разомкните цикл, содержащий оператор if.
 Выполните развертывание цикла.
 Минимизируйте объем работы, выполняемой внутри цикла.
 Используйте сигнальные значения в циклах поиска.
 Вложите более ресурсоемкий цикл в менее ресурсоемкий.
 Снизьте стоимость операций, выполняемых внутри цикла.
 Замените многомерные массивы на одномерные.
 Минимизируйте число обращений к массивам.
 Дополните типы данных индексами.
 Кэшируйте часто используемые значения.
 Проанализируйте алгебраические тождества.
 Снизьте стоимость логических и математических выражений.
 Остерегайтесь системных методов.
 Встройте методы.


Ну это всё правильно, но как-то всё смешано в одну кучу. Есть несколько уровней оптимизации, с этого надо начинать, а потом уже детализировать. Самый верхний уровень оптимизации - оптимизация на уровне алгоритма, она может дать наибольший эффект по скорости. А потом уже на уровне структур всяких, как реализовать быстрее ту или иную структуру, и прочая низкоуровневая оптимизация..
[Ответ][Цитата]
гость
162.247.74.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 08 дек 21 10:55
перед тем как оптимизировать нужно иметь ЧТО оптимизировать, то есть написанный код))
[Ответ][Цитата]
гость
45.61.185.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 09 дек 21 2:41
ИИ это не парсер а скорее база данных, ИМХО если с чего то начинать и что то оптимизировать то с базы данных.

Попробуйте встроить алгоритм машинного обучения в базу данных и сделайте базу данных максимально быстрой(возможно часть кода придётся переписать на ассемблере). Это может стать прорывом.
[Ответ][Цитата]
гость
62.102.148.*
На: Как получить значения множественных(точками) аргументов функции в Си?
Добавлено: 10 дек 21 3:36
Цитата:
К моменту выпуска Microsoft Windows 2000 состояла из примерно 50
миллионов строк кода, распределенных по десяткам тысяч исходных файлов.
Полная сборка занимала 19 часов на нескольких машинах
[Ответ][Цитата]
 Стр.7 (15): 1  ...  3  4  5  6  [7]  8  9  10  11  ...  15<< < Пред. | След. > >>