Сохранен 105
https://2ch.su/b/res/333509766.html
К сожалению, значительная часть сохранённых до 2024 г. изображений и видео была потеряна (подробности случившегося). Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

В этом треде я буду программировать свою программу на с++. Уровень знаний с++ - нулевой. Программу,

 Аноним 29/05/26 Птн 04:35:23 #1 №333509766 
image.png
image.png
image.png
image.png
В этом треде я буду программировать свою программу на с++.

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

Начнём мы с определение матрицы.

Матрица это формальная запись [i,j;f], где i,f это символы для строк и столбцов, f - функция распределения элементов относительно строк и столбцов.

Теперь скажем, что есть скаляры, векторы и ковекторы.
В нашем определении матрицы i,j это на самом деле векторы, и использовать в определении матрицы мы их будем тем образом, что вектор i задаёт начало движение по орте i(столбцу), а вектор j задает движение по орте j(строке), тем самым определяя прямоугольник вплоть до окончания значений матрицы.
К примеру есть [4,4;f], где символы используются для обозначения длины и ширины, тогда [v0,v0;f] определяет матрицу [4,4;f] записывая прямоугольник размером ограниченным матрицей [4,4;f] и данными f.

Запрограммируем.

Вторая фотография - матрица с учётом того, что символы это размер матрицы. И да, вы уже догадались, что на самом деле матрица в плане кода у нас это f, но мне наплевать.

Теперь же запрограммируем векторы.

Фотография три и четыре это векторы.

Теперь прихорошим, а я пока создам тред.
Аноним 29/05/26 Птн 04:37:58 #2 №333509788 
>>333509766 (OP)
>нахождение быстрых способов вычислять матрицы

О чем идет речь? Я неплохо (по меркам двача) знаю математику, но не понимаю, что ты делаешь вообще, какую задачу решаешь.
Аноним 29/05/26 Птн 04:40:44 #3 №333509805 
>>333509766 (OP)
Залупа без задач. Пиши чет более менее нужное. Например днс туннель, чтобы трафик заворачивать в днс-запись через пынявые днс на белых списках
Аноним 29/05/26 Птн 04:41:02 #4 №333509808 
презентация проекта.mp4
презентация проекта 2.mp4
>>333509788
>>333509805
С помощью вычислительных соображений матрицы можно сделать альтернативную версию нейросетей. Я учился на информационные технологии, телекоммуникации и высшая математика.
sage[mailto:sage] Аноним 29/05/26 Птн 04:42:00 #5 №333509813 
>>333509766 (OP)
>Матрица это формальная запись [i,j;f], где i,f это символы для строк и столбцов, f - функция распределения элементов относительно строк и столбцов.
И на этом моменте ты уже обосрался.
Аноним 29/05/26 Птн 04:43:08 #6 №333509825 
>>333509766 (OP)
Неправильно сделал TypeMatrix и на с++ так не пишут.
Аноним 29/05/26 Птн 04:43:40 #7 №333509832 
>>333509808
К нам летит ботохуета
Аноним 29/05/26 Птн 04:43:45 #8 №333509834 
>>333509788
у меня по математике PhD, я также знаю C++ на продвинутом уровне, и я могу сказать, на пиках полная хуита. начиная с того, что оп в классе «матрица» хранит её размер в отдельных переменных (со свободным к ним доступом), это пиздец полный
Аноним 29/05/26 Птн 04:43:50 #9 №333509836 
>>333509805
Такую штуку быстрее на go написать
Аноним 29/05/26 Птн 04:45:31 #10 №333509854 
>>333509832
Я уже будучи студентом написал альтернативную нейросеть с нуля, а в чём твой заслуги?
Аноним 29/05/26 Птн 04:48:07 #11 №333509871 
>>333509854
Где же результаты твоей работы, м? может у тебя есть свой недоантропик или на твоей сетке теренят открытые модели? а?
Аноним 29/05/26 Птн 04:49:40 #12 №333509886 
>>333509834
Я люблю таким товарищам как ОП задавать вопросы типа "почему формула для умножения матриц именно такая, а не другая" или "почему формула для детерминанта именно такая, а не другая", и они сыпятся на этом. Понятно, что с пхд ты намного круче меня, базару ноль. А ты понимаешь, что он вообще делает?
Аноним 29/05/26 Птн 04:51:06 #13 №333509899 
>>333509871
Я тебе продемонстрировала результаты. Он полностью закрыт и не распространяется из-за воровства нет совестных. Мой нейросетевой интерфейс запускается локально и не требует много мощностей. Раскрывать я не собираюсь из-за воровства. Возможно в будущем сделаю веб интерфейс за плату конечно.
Аноним 29/05/26 Птн 04:51:19 #14 №333509901 
>>333509766 (OP)
Чё за говно без задач? Нейронка это не сгенерит что ли?
Аноним 29/05/26 Птн 04:52:12 #15 №333509912 
>>333509899
Ты только таблетки принимать не забывай регулярно, хорошо?
Аноним 29/05/26 Птн 04:53:16 #16 №333509923 
>>333509912
Это и есть твои аргументы по твоему же сливу? Тебе нечего больше добавить кроме нахрюка своего бессмыслия?
Аноним 29/05/26 Птн 04:54:42 #17 №333509934 
>>333509886
>ты понимаешь, что он вообще делает?
начнём с того, что в коде грубые ошибки и он не скомпилируется просто

к чести опа можно заметить, что это написала явно не нейросеть, лол. я бы предложил опу как раз попросить нейросеть написать нужный код, а потом посмотреть, в чём разница с его версией
Аноним 29/05/26 Птн 04:58:03 #18 №333509970 
>>333509934
Нейросети пишут с нуля, пока ты пользуешься крохами, что позволил тебе барен .
Аноним 29/05/26 Птн 04:59:46 #19 №333509988 
>>333509970
не знаю, о чём ты, но уверен, нейросеть с этим кодом справилась бы значительно лучше
Аноним 29/05/26 Птн 05:00:46 #20 №333510004 
>>333509988
Ты привык ждать подачек у корыта.
Аноним 29/05/26 Птн 05:02:14 #21 №333510027 
>>333510004
блин, опять что-то серьёзно и по теме пишу, а натыкаюсь на шизов…
Аноним 29/05/26 Птн 05:05:01 #22 №333510061 
>>333510027
Если тебе везде мерещатся твои подружки, стоит посетить вашего лечащего врача по месту жительства.
Аноним 29/05/26 Птн 05:05:12 #23 №333510064 
>>333509923
А какие тебе аргументы, чел? У тебя ничего нет. Какой-то мусор который ты локально используешь и думаешь что он невероятен и не был проверен другими так и останется мусором. Если бы что-то у тебя работало, то оно было бы в опенсорсе, либо в коммерции, либо в статьях в рецензируемых журналах.
Аноним 29/05/26 Птн 05:08:06 #24 №333510090 
>>333510064
>не был проверен другими
Это мой проект, который был проверен в одном из лучших государственных университетов. Если ты клянчишь опенсорс, то увы ты воришка паразитический. Нельзя предоставлять доступ к своим проектам просто так, когда это можно использовать в будущем и монетизировать. Ты мыслишь как воришка и паразит, что по твоему уму ситуация.

>в опенсорсе
Паразиты, воровство, лоховство, поборничество. А за что ты пишешь "почиму я такой неудачник". Вот и думай своей умом.
sage[mailto:sage] Аноним 29/05/26 Птн 05:15:38 #25 №333510144 
>>333510090
>Паразиты, воровство, лоховство, поборничество.
Какой ты мерзкий, без опенсорса платили бы за вообще за все, начиная от включения компьютера.
Аноним 29/05/26 Птн 05:17:55 #26 №333510161 
17249648569943.mp4
>>333510090
У меня есть opus и мне его хватит, понадобится что-то другое, куплю токены антропика, не переживай, твой мусор мне не нужен. Ты не забывай таблетки принимать только, а то вдруг будешь таким же буйным как челикс из соседнего треда.
Аноним 29/05/26 Птн 05:18:07 #27 №333510164 
>>333510144
Ты признаёшься в паразитизме и воровстве за чужой труд. Любой труд должен быть оплачен. За спасибо не поешь вкусно.
Аноним 29/05/26 Птн 05:20:25 #28 №333510186 
>>333510161
Я тебе и не предлагала ничего. Этот оное сугубо под диплом писался и ещё демонстрировалось при трудоустройстве. Выкладывать его было бы ошибкой, ведь ты не улавливаешь главное о том что писалось же. Минимальные вычислительные мощности нужны. Это не для поиграться всё делается, что ты тоже ум потерял.
Аноним OP 29/05/26 Птн 05:20:31 #29 №333510188 
image.png
image.png
Смотрите какой макрос написал. Прикольно, что есть возможность подправить с++ там, где неудобно.

Прикольно макросы использовать, только что научился.

>>333509788
Я хочу на с++ написать свой способ найти быстрое умножение матриц.

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

>>333509808
Что за альтерация ии?

>>333509934
>к чести опа можно заметить
К чести опа можно заметить, что
>>Уровень знаний с++ - нулевой.
Аноним 29/05/26 Птн 05:21:14 #30 №333510200 
>>333510090
Сразу видно, что летние каникулы начались.
Аноним 29/05/26 Птн 05:23:54 #31 №333510228 
>>333510186
>предлагала
М. Теперь ты ОНА, ну ок. Беги таблетки принимать пока не поздно, а иначе мамка санитаров вызовет.
Аноним 29/05/26 Птн 05:24:49 #32 №333510234 
>>333510188
А я уже сообщал же. Не требуется больших мощности.

>>333510200
Мне же 28 будет вообще-то. У тебя снова аргументы заканчиваются ведь не хватат ума и ты даже не понимаешь о оном тебе говорят точно не один пост.
Аноним 29/05/26 Птн 05:25:10 #33 №333510240 
>>333510188
Бысторн умножение матриц давно придумано и реализовано в Matlab
Аноним 29/05/26 Птн 05:26:56 #34 №333510254 
>>333510228
Ты цепляешься не за те слова, вместо нужных. Ты зависимый от своего психичего состояния и ищешь только то что хочет твой больной разум, а сам же даже не замечаешь и не принимаешь оное. Проблемы стоит решать, тогда сможешь воспринимать и отделять нужное.
Аноним 29/05/26 Птн 05:28:22 #35 №333510269 
>>333509834
Да, это пиздец. Чел объявил тип TypeMatrix как std вектор из векторов. Уже за это надлежит убивать, т.к. там вместо единого куска памяти на всю матрицу, получится некий блок в куче, заполненный указателями на внутренние объекты std векторы, в которых в свою очередь ещё указатели на блоки в куче. В общем, это указатель на указателе и сплошные разрозненные блоки в куче.
А если я хочу, чтобы мой объект TypeMatrix целиком лежал в стеке, то что? А никак не выйдет.
ОП реально нулевой в C++, и ему ещё учиться и учиться.
sage[mailto:sage] Аноним 29/05/26 Птн 05:28:28 #36 №333510271 
>>333510234
>снова
Чел я мимо проходил, это мой первый пост.
Ты действительно думаешь что ты первый додумался писать какую-то невнятную претенциозную хуету, байтить на комменты и оскорблять забайченных?
Я такие треды тут каждое лето вижу.
sage[mailto:sage] Аноним 29/05/26 Птн 05:28:33 #37 №333510273 
>>333510164
>Любой труд должен быть оплачен
Докажи
>За спасибо не поешь вкусно
То-то у нас толпы голодающих на улицах
Аноним OP 29/05/26 Птн 05:30:25 #38 №333510293 
image.png
Так - теперь после того, как я отвлёкся, можно возвращаться и писать ковекторы, скаляры и может даже тензорное произведение.

Определив матрицу n на m заполненную f данными через вектора n,m как функцию, что берет изначальную матрицу и заполняет новую по направлениям строки и столбца перенося данные f в эти новые строки и столбцы до тех пор, пока данные f не закончатся, определим теперь скаляры и ковекторы.

Скаляр в данном случае это точка - значит это, что направление и заполнение по этому направлению не берётся, кроме разве что той координаты которая точка отождествляет.

Для примера тогда матрица [1,v0;f] будет строкой по направлению строки с начальной координатой [1;0].

Тогда любая пара скаляров это просто элемент из данных f.

Запрограммируем и после введем ковекторы.

>>333510269
Я действительно не понимаю почему
>>Уровень знаний с++ - нулевой.
Игнорируется и успешно подрывается.
Аноним 29/05/26 Птн 05:32:48 #39 №333510316 
>>333510269
Нормальный программист на C++ определил бы матрицу через шаблон, который бы принимал 2 константных параметра - размерность матрицы. Проверял бы эти параметры через какой-нибудь static_assert, и в шаблоне бы определил массив элементов матрицы длиной как произведение этих параметров. Тогда бы все эти матрицы летали бы, и можно было бы их класть хоть на стеке, хоть в куче, хоть в глобальных переменных.
Аноним 29/05/26 Птн 05:34:17 #40 №333510327 
>>333510271
Вместо вопроса нужного или ответа. Имитация обыкновенная верно массовка.
sage[mailto:sage] Аноним 29/05/26 Птн 05:35:01 #41 №333510334 
>>333510293
>Я действительно не понимаю почему
Потому что ты вниманиеблядь, которая не имея знаний ни в линейной алгебре ни в программировании пишет хуергу космического уровня ебанутости. Начни блядь с учебников по алгебре и информатике за 11 класс, больше толку будет.
Аноним 29/05/26 Птн 05:37:23 #42 №333510356 
>>333510293
>Я действительно не понимаю почему
>>>Уровень знаний с++ - нулевой.
>Игнорируется и успешно подрывается.

Вот я тебе подсказал, чел про шаблоны. Это очень выгодно с точки зрения производительности, если матрицы фиксированного размера. Параметры шаблона - константы, которые известны во время компиляции. Их даже не надо нигде хранить, ни в каких переменных. Ты там просто объявишь в шаблоне static const unsigned int matrix_width и то же самое про matrix_height и вуаля!
Когда константа известна во время компиляции - это самое удобное, т.к. позволяет максимально сразу оптимизировать код, не хранить эту константу в памяти.
Аноним 29/05/26 Птн 05:38:22 #43 №333510364 
>>333510334
Я ему могу предложить свои услуги репетитора по программированию и С++. Интересует?
Аноним 29/05/26 Птн 05:39:24 #44 №333510377 
>>333510334
Но ведь ты и есть, ведь не ищешь правильное и только срёщь ради сранья. Ты пытаешься казаться борцом за какие-то свои шизойдные идеалы, а на деле обыкновенная имитация. Вместо аргументации ты срёшь, всё тебе не так, везде ищешь своих подружек.
Аноним OP 29/05/26 Птн 05:40:09 #45 №333510390 
>>333510334
Ого какой рвоньк.

>>333510356
Ну это хорошо, конечно, но только мне сложно будет сразу так освоиться с шаблонами. Я всё же свой математический метод прогаю, и пока что ради своего удобства использую то, что мне удобно. А вот уже потом, когда закончу это всё удобным образом - тогда можно будет код оптимизировать. Сейчас больше на математику уклон.
sage[mailto:sage] Аноним 29/05/26 Птн 05:42:19 #46 №333510418 
>>333510390
>Ого какой рвоньк.
Все по делу
Аноним 29/05/26 Птн 05:43:11 #47 №333510423 
>>333510390
Чел, нахуй тебе математику дрочить, когда ты хочешь потренироваться в скиллах программирования?
Я тебе могу подсказать, что для тренировки скиллов программирования надо пытаться написать наилучшим образом хотя бы что-то, а не городить тонны говнокода, который реализует самые невъебенные фичи корявым образом. Ты так скилл программирования не подымешь.
Аноним OP 29/05/26 Птн 05:44:37 #48 №333510436 
>>333510423
>>333510418
У вас обоих есть что-то схожее, давайте сыграем в игру!
Угадайте что вас объединяет.
Аноним 29/05/26 Птн 05:47:10 #49 №333510449 
>>333510436
С писюном своим играйся
Больше не буду кормить вниманиеблядь или ботохуету на зарплате
Аноним 29/05/26 Птн 05:48:59 #50 №333510468 
>>333510356
Вот скажем, обращение к произвольному элементу матрицы.
В случае говнокода ОПа, там надо будет сначала отбирать подходящий элемент внешнего stdvector, идти по указателю и читать уже внутренний stdvector. Это полное долбоёбство.
В моём случае, если у нас есть индексы i и j, и размер матрицы N - константа, мы получим формулу k = i * N + j, где для получения N даже не надо будет читать никакую переменную. На самом деле, формула сведётся к паре команд ассемблера - умножить переменную i на константное значение (это одна команда ассемблера). А затем, к результату в регистре - прибавить вторую переменную. Это другая команда ассемблера. Вот и всё! Максимальная эффективность.
Аноним OP 29/05/26 Птн 06:17:51 #51 №333510668 
image.png
image.png
Сделано. Результат.

Теперь же время пришло для ковекторов.

Как мы знаем ковектор это функция, поэтому определим его как функцию: ковектор зависим от вектора и переводит вектор в скаляр. В нашем случае ковектор va(vb) равен будет скаляру a, т.е ковектор с индексом сверху переводит любой вектор в скаляр значение которого это индекс.

В таком случае можно ввести ещё и id-ковектор, который переводит вектор с индексом x в скаляр значение которого это индекс x.

Теперь же запрограммируем это.
Аноним 29/05/26 Птн 06:20:26 #52 №333510692 
>>333510668
Че. От жизни ебанулся? Обратись к нейросети, она сделает твою хуйню за 5 секунд.
Аноним OP 29/05/26 Птн 06:21:29 #53 №333510699 
image.png
Ну да, очень даже это и легко.

>>333510692
Мои математические вещи я не доверяю нейронной сети, но всё же прошу заметить что это и тренировка в программировании.
Аноним OP 29/05/26 Птн 06:24:21 #54 №333510724 
image.png
Блин, сонный уже и косячу.
Аноним 29/05/26 Птн 06:25:05 #55 №333510732 
>>333510699
Да ладно. Я ниче не говорю. Но на кой хуй заниматься этой хуйней? Ты же понимаешь, что это ничего не даст существенного?
Аноним OP 29/05/26 Птн 06:28:40 #56 №333510772 
>>333510732
Если честно ты пошел на девушку из тредшота которая спрашивает зачем же ты себе купил телескоп, какие звезды и планеты? Иди лучше попей пивка и тян заведи.
>Но на кой хуй заниматься этой хуйней?
Потому что гладиолус
Аноним 29/05/26 Птн 06:30:34 #57 №333510787 
>>333510724
чем вектор отличается от ковектора? роди уже наконец
Аноним OP 29/05/26 Птн 06:32:40 #58 №333510803 
Теперь, когда есть и векторы и скаляры и ковекторы, то можем ввести скалярное произведение оных.

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

>>333510787
-> >>333510668
>>Как мы знаем ковектор это функция, поэтому определим его как функцию: ковектор зависим от вектора и переводит вектор в скаляр. В нашем случае ковектор va(vb) равен будет скаляру a, т.е ковектор с индексом сверху переводит любой вектор в скаляр значение которого это индекс.
>>В таком случае можно ввести ещё и id-ковектор, который переводит вектор с индексом x в скаляр значение которого это индекс x.
Аноним OP 29/05/26 Птн 06:33:26 #59 №333510811 
>при том я пожалуй сделаю его всё же некоммутативным пока что.
Ой, не то написал. Вроде? Скоро посмотрим то или не то, но пока что имею ввиду оно конечно же коммутативное. Ой-ой.
Аноним OP 29/05/26 Птн 07:26:05 #60 №333511334 
image.png
Сделано.

Теперь перейдём к более интересной вещи - тензорному произведению.

Когда я говорил, что формальную запись для матрицы я использую вида [a,b;c], то я наврал. На самом деле это запись вида [a⮾b;c].

Тогда, очевидно, работаем мы с тензорами.

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

В целом это можно сделать так: s=vid(s) тогда vid(s)X(a⮾b)=vid(s)Xa⮾b=a⮾vid(s)Xb и в данном случае так как s2=s это будет работать, но можно сделать более особое скалярное умножение в котором композиция vid(s) меняется местами и выходит vid(a)Xs, что тоже самое что и aXs, что тоже самое что и просто a. Тогда, если можно сменить так композицию только или слева или справа, то заместо s⮾s выйдет или s⮾b или a⮾s или вовсе a⮾b.

Тогда таким образом нам остаётся определить все отображения, а именно V->V, V"->V", S->S, V->S, V"->S, V->V", S->V", V"->V.

Собственно:
va(vc)Xvb:V->V
va(Vx)Xvb:V"->V"
aXb:S->S

va(vx):V->S
va(vx):V"->S
va(vx)Xvb:V"->V
va(vb)Xvc:V->V"

sXva:S->V"
sXva:S->V

Ну и нетрудно для каждой функции найти b обратную функцию.

Тогда надо запрограммировать билинейность и можно будет делать тензорное умножение... Или нет? На самом деле надо будет кое-что проверить.

Надеюсь нигде не обосрался щас с разметкой и печатанием
Аноним 29/05/26 Птн 07:51:34 #61 №333511653 
>>333510803
ну, таки и вектор есть функция, которая приводит ковектор в скаляр
вообще не совсем ясно что ты собираешься с этим делать
Аноним OP 29/05/26 Птн 07:58:11 #62 №333511733 
>>333511653
>вектор есть функция
Нууууууууууууууууууу. Нет, конечно можно константы считать функциями, но всё же вектор в первую очередь это элемент множества векторов векторного пространства, и поэтому ковектор это тоже вектор, так как он является элементом такого рода множества.

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

>вообще не совсем ясно что ты собираешься с этим делать
>>Программу, что пишу - нахождение быстрых способов вычислять матрицы.
Хочу попробовать вычислить своей задумкой математической быстрый способ умножать матрицы.
Аноним OP 29/05/26 Птн 07:59:05 #63 №333511743 
>>333511653
>которая приводит ковектор в скаляр
Стоп что
Аноним OP 29/05/26 Птн 08:00:53 #64 №333511780 
>>333511653
>которая приводит ковектор в скаляр
А, я понял про что ты тут, сорян.

Но всё же вектор и ковектор, хоть и являются двойственными объектами, всё равно различаются обычно тем, что ковектор определяется вектором изначально же. Нет разве?
Аноним 29/05/26 Птн 08:01:55 #65 №333511795 
>>333511743
векторы и ковекторы полностью двойственны друг другу в силу канонического изоморфизма между векторным пространством и его вторым сопряженным (справедливо в конечномерном случае, но под векторами всегда имеют в виду элементы конечномерных пространств)
Аноним 29/05/26 Птн 08:03:14 #66 №333511814 
>>333511780
обычно их различают по способу преобразования координат, потому что абстрактно между ними полная двойственность, как я пояснил выше
Аноним OP 29/05/26 Птн 08:03:46 #67 №333511824 
>>333511814
>абстрактно
Аноним 29/05/26 Птн 08:05:11 #68 №333511840 
хуйня
[mailto:Sage] Аноним 29/05/26 Птн 08:08:30 #69 №333511878 
>>333510164
>Любой труд должен быть оплачен.
Я сейчас отжался 30 раз, когда ты мне переведешь деньги?
Аноним 29/05/26 Птн 08:12:35 #70 №333511936 
>>333509766 (OP)
мне настока лень тебя обоссывать самому что я попросил нейрохуету тебя обоссать, держи опчик. дальше оппоста тред не читал потомушта иди нахуй

С удовольствием. Этот тред — классическая иллюстрация эффекта Даннинга-Крюгера: человек с нулевым знанием языка пытается писать "сверхбыстрые" алгоритмы и изобретает свою собственную, никому не нужную и математически безграмотную терминологию.

Вот детальный разбор (или "прожарка") этого шедевра, который ты можешь использовать:

---

### 1. "Быстрые способы вычислять матрицы"
Чел с порога заявляет, что пишет программу для быстрых вычислений. И что же он делает?
Использует `std::vector<std::vector<int>>`. Это худшее, что можно сделать для производительности матриц в С++. Вектор векторов размазывает данные по всей куче (heap), ломая кэш процессора к чертям собачьим. Любой нормальный программист знает, что быстрая матрица — это одномерный массив (например, `std::vector<int>`), где индекс вычисляется как `y width + x`.
Передача по значению. Во втором скрине его функция выглядит так: `TypeMatrix vector_basis_Matrix(int a, int b, TypeMatrix f)`. Он передает матрицу `f` по значению. Это значит, что при каждом вызове функции вся матрица целиком копируется в памяти. Обалдеть какая "скорость"! Про ссылки (`const TypeMatrix& f`) мамкин оптимизатор еще не читал.

### 2. Полное непонимание синтаксиса (Скриншот 2)
Он гордо выкладывает код, который
даже не скомпилируется.
`std::cout >> A.f.size;` — это просто комбо из двух смертельных ошибок в одной строке:
1. Для вывода в консоль используется оператор сдвига влево `<<`, а не вправо `>>` (который нужен для `std::cin`).
2. `size` у `std::vector` — это метод (функция), а не переменная. Должно быть `size()`.
IDE (Visual Studio) даже подчеркнула ему это красным, но ОП с гордым видом заскринил ошибку и пошел строчить философские посты про ковекторы.

### 3. Шизофреническая архитектура
Посмотрим на его структуру:
```cpp
struct matrix {
int a;
int b;
TypeMatrix f;
};
```
Зачем ему хранить размеры `a` и `b` отдельно, если внутри лежит вектор векторов `f`, который и так знает свой размер (`f.size()` и `f[0].size()`)? Это прямое нарушение принципа DRY (Don't Repeat Yourself). В коде из 3-го скрина он хардкодит `A.a = 4; A.b = 4;`, а потом руками забивает 4 строчки по 4 элемента. Стоит ему добавить еще одну строку в `f` и забыть обновить `a` — программа сломается.

### 4. Изобретение велосипеда из костылей (Скриншот 3)
Функция с пафосным названием `vector_basis_Matrix`.
Судя по коду, всё, что она делает — это вырезает кусок матрицы (подматрицу), начиная с координат `(a, b)` и до правого нижнего угла.
При чем тут вообще "базис векторов"? Он использует умные слова, значения которых не понимает.
Называть локальную переменную `New` — это отвратительный стиль (с большой буквы обычно называют классы/структуры), плюс это визуально путается с ключевым словом `new` в С++.
Функции `printMatrix(B)`, которую он вызывает в `main`, вообще нет в его коде. Видимо, скопипастил откуда-то, но забыл заскринить.

### Итог
ОП пытается натянуть сову своей выдуманной "формальной записи [i,j;f]" на глобус С++, не зная ни математики на должном уровне, ни самых базовых основ языка (даже как вывести текст в консоль). Это не "быстрые матрицы", это медленный, дырявый код, который упадет с ошибкой сегментации, как только матрица окажется не квадратной (он нигде не проверяет выход за границы массива).

Диагноз: Сначала нужно пройти туториал "Hello World на С++", потом почитать про ссылки и указатели, а уже потом лезть в тензорное исчисление.
sage[mailto:sage] Аноним 29/05/26 Птн 08:23:43 #71 №333512091 
>нахождение быстрых способов вычислять матрицы
ты слабоумный отсталый пидорас
Аноним 29/05/26 Птн 08:38:01 #72 №333512316 
>>333510188
>Прикольно макросы использовать, только что научился.
Ты не научился. Цикл в цикле хорошо читается, а однострочний макрос для этого — плохо. Это же прям пиздец.
Аноним OP 29/05/26 Птн 08:39:11 #73 №333512337 
image.png
image.png
image.png
Отлично, сделал их.

Теперь же можно перейти вроде бы к тензорным произведениям, но не совсем.
Надо проверить и посмотреть насколько перезаписи матриц соотносятся с разложением их на различные комбинации всяких матриц.

Для этого достаточно на каждую перезапись найти обратную перезапись(как мы знаем обратные функции у нас есть), поэтому мы можем отождествить комбинации матриц с этими перезаписями и перейти к более глубокому взгляду на формальную запись матриц способом [a⮾b;c].

По сути своей, что мы рассматриваем здесь, так это [F(a⮾b);(g∘c∘h)(a⮾b)].
Что же это значит? Это значит, что у нас есть две функции F,h, что действуют на a⮾b, и по сути являются основой для перезаписи различных значений, а если ещё сказать что F=h, то выйдет вполне себе выделение более маленьких подматриц функций F, что равна h.
При этом функция g действует на изначальную f, что c, тем самым являясь той самой функцией, что значения матрицы не перезаписывает, а меняет на иные или другие.

Тогда чтобы рассмотреть все перезаписи матрицы достаточно посмотреть на все F,h и все их композиции друг с другом.

Тогда рассмотрим способы создания или хотя-бы перечисления каких-либо, если не всех, композиций этих самых F,h и запрограммируем их.

>>333512316
О, дед ти? БУ БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
Аноним 29/05/26 Птн 08:49:29 #74 №333512524 
>>333510269
> А если я хочу, чтобы мой объект TypeMatrix целиком лежал в стеке, то что?
Нахуя? Байтоеб на плюсах, ты?
Что собрался делать с 1 наносекундой полученной в результате того что программе не надо будет искать данные в куче?
мимо бог жавист
Аноним 29/05/26 Птн 09:00:18 #75 №333512754 
>>333509766 (OP)
Молодец, хорошо получается.
Аноним 29/05/26 Птн 09:00:42 #76 №333512759 
>>333512524
физически между стеком и кучей для процессора разницы нет
однако если у тебя в реальном времени постоянно перемножаются, скажем, миллионы матриц, вопрос распределения памяти становится очень важен
Аноним OP 29/05/26 Птн 09:07:30 #77 №333512904 
>>333512754
-> >>333512337
Аноним 29/05/26 Птн 09:13:11 #78 №333513025 
>>333512524
А потом тебе нужно скопировать 200 таких синхронно.
Аноним 29/05/26 Птн 09:28:38 #79 №333513318 
>>333510188
Видимо очень интересно, раз ты за ними охотился
Аноним 29/05/26 Птн 09:43:16 #80 №333513563 
>>333509766 (OP)
тоесть надо напердолить каких то классов/структур чтобы запринтить 2 строчки зместо прокидывая прототипа принта и самого принта? ок
Аноним OP 29/05/26 Птн 09:54:39 #81 №333513784 
Вспомнил наконец-то:

Для начала - пока что нужны только скаляры скалярно умноженные на тензорное произведение векторов, это во первых. Это достаточно для описания перезаписей.

Во вторых - вроде бы таким образом не каждую перезапись можно сделать, но это не беда, если ввести тензорное произведение таких перезаписанных матриц в другие перезаписанные матрицы.

В третьих - всего функций для композиций для перезаписей будет в итоге конечное число, а именно от -1 до a и -1 до b.

Тогда в четвертых - не путать расставление скобочек над тензорными произведениями, но это потом.

Делаем что сейчас: тензорное произведение матриц или обход и перебор всех композиций? Я скорее к первому склоняюсь.
Аноним OP 29/05/26 Птн 10:14:06 #82 №333514255 
image.png
Пацаны поддержите тред, я отойду на несколько часов.
Аноним 29/05/26 Птн 10:33:45 #83 №333514738 
Бамп
Аноним 29/05/26 Птн 10:38:40 #84 №333514868 
Бамп
Аноним 29/05/26 Птн 11:54:34 #85 №333516894 
Бамп
Аноним 29/05/26 Птн 12:04:18 #86 №333517161 
Бамп
Аноним 29/05/26 Птн 12:08:34 #87 №333517276 
Почему IDE без аниме-обоев?
Аноним 29/05/26 Птн 12:11:46 #88 №333517371 
>>333517276
Нах и что такое ide
sage[mailto:sage] Аноним 29/05/26 Птн 12:29:38 #89 №333517876 
>>333509766 (OP)
>нахождение быстрых способов вычислять матрицы
Numpy недостаточно быстр?
Аноним 29/05/26 Птн 12:43:56 #90 №333518300 
Бамп
Аноним 29/05/26 Птн 12:54:29 #91 №333518613 
1779065521462480.png
>>333517371
>ide
https://en.wikipedia.org/wiki/Integrated_development_environment
Аноним 29/05/26 Птн 12:59:15 #92 №333518771 
"Ускорять" обработку матриц нет смысла, видеокарта это просто 1000000 маленьких калькуляторов,они под эти задачи заточены.
Если ты хочешь чтобы иишка была принципиально иной по структуре и лучше работала чем обычные перемножатели матриц, то:
1. Ты все равно не уйдешь от перемножения матриц
2. Альтернативные решения это симплексы,теория категорий и прочее что нормально не разработано еще даже топовыми спецами, а также намного больше по весу и сложнее значительно.
Аноним OP 29/05/26 Птн 12:59:21 #93 №333518776 
Так я тут, сейчас покушаю и буду дальше чот делать.

>>333518613
Чо за говно какое-то
Аноним OP 29/05/26 Птн 13:02:23 #94 №333518867 
тест на тохофага.mp4
>>333518771
>симплексы
>нормально не разработано
>даже топовыми спецами
Ну ты ещё набрось таких понятий как сингулярные гомологии, когомологии, гомотопические группы и спектральные последовательности, ооооооо а помните группы ли вау вот это офигеть давайте думать группы как многообразия, а ещё ты забыл упомянуть топосы и как же без топосов обо же мой да это же adjoint functory новое обобщение понятий изоморфизмов вот это да, но самое главное как ты мог забыть hott и бесконечные категории
Аноним OP 29/05/26 Птн 13:03:59 #95 №333518929 
>>333518771
ООООООО ТОЧНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ О КОРОТКИЕ ТОЧНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ ООООООО СЕЙЧАС РАССМОТРИМ КАТЕГОРИЯ ГРУПП ОООО СВОБОДНЫЕ ГРУППЫ С КОЭФФИЦИЕНТАМИ ОООООООООООООООООООООООООООООООООООО
Аноним OP 29/05/26 Птн 13:04:23 #96 №333518944 
>>333518771
ПРОЕКТИВНЫЕ ГРУППЫ ОГОООООООООООООООООООООООООООООООООООООО РЕЗОЛЬВЕНТА ПРОЕКТИВНЫЕ ГРУППЫ ТОЧНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ГОМОЛОГИИИИИИИИИИИИИИИИ
Аноним OP 29/05/26 Птн 13:05:50 #97 №333518988 
>>333518613
пРИШЛи на русском мне лень на английском понимать
Аноним OP 29/05/26 Птн 13:13:53 #98 №333519227 
image.png
Ну что, продолжим?

Тензорное произведение матриц это очевидно что - строка этих самых матриц, поэтому это не особо интересно.
Интересно то, как можно расставить скобочки над ними, а именно двумя способами чтобы получить матрицы внутри матриц и объединение матриц в одну новую.

Но пока что закончим с переписыванием матрицы.
Аноним 29/05/26 Птн 13:19:26 #99 №333519391 
>>333518867
>>333518929
Я хуй знает че вам надо, но примеры нейросеток без тензоров/векторов с какими-нибудь нахуй фрактальными топологиями или категориями вместо матриц вы мне не покажете.
sage[mailto:sage] Аноним 29/05/26 Птн 13:22:20 #100 №333519480 
>>333509766 (OP)
Что ты вычислять собрался, школьник ебаный, ты ж даже задачу сформулировать не можешь
Аноним OP 29/05/26 Птн 13:22:51 #101 №333519490 
>>333519391
Так нейросети это же говно для большого объема данных которое только и держится на исходных сурсах.
Аноним OP 29/05/26 Птн 13:24:57 #102 №333519542 
>>333519391
Просто как по мне куда более интересный вариант системы это хрень которая развивается и создает всё больше альтернативные вариации чего-либо плюс в добавок создает альтернативные вариации инструментов с помощью которых создает вариация-альтерации. Математика которая описывает изменение себя для того чтобы будущие изменения применять для описания своей же эволюции!! ААААААААААААААААААА
sage[mailto:sage] Аноним 29/05/26 Птн 13:36:13 #103 №333519877 
>>333517371
>Нах и что такое ide

Integrated Drive Electronics, стандарт подключения дисков hdd, cd, dvd, 40-жильный шлейф
порридж детектед))
Аноним OP 29/05/26 Птн 13:37:51 #104 №333519923 
>>333519877
Не сферю за это тупое говно пошел нахуй
sage[mailto:sage] Аноним 29/05/26 Птн 13:38:07 #105 №333519926 
Хуя оп бомбанул.
comments powered by Disqus