Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercuryа как же погрешность описываемая в стандарте, e: 1.0+e=1.0. Или она тоже везде будет одинакова ? Сравню по времени в таком случае. Я понимаю то о чём вы говорите, правда. Спасибо :) Ты когда говоришь о т.н. "стандартах" - то уточняй о каком из них. Мы уже говорим про стандарт на числа плавающей точности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 12:38 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
maytonSashaMercuryа как же погрешность описываемая в стандарте, e: 1.0+e=1.0. Или она тоже везде будет одинакова ? Сравню по времени в таком случае. Я понимаю то о чём вы говорите, правда. Спасибо :) Ты когда говоришь о т.н. "стандартах" - то уточняй о каком из них. Мы уже говорим про стандарт на числа плавающей точности? Нет, я говорю о стандарте Си, например, в котором содержится информации об той самой e:1=1+e, и другая вспомогательная информация по работе с числами двойной точности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 01:42 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercury Реализую первый вариант, предложенный Дмитрием. Всё-таки этот вариант не самый хороший. Например, в базовом классе M мы определим операцию умножения матриц, но результатом такой операции может быть как прямоугольная матрица M так и квадратная S_M. Вернулся к тому что было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 01:44 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
Фабрика - это ведь использование обычного базового абстрактного класса! Я про это и думал когда писал топик, но не мог понять как правильно его использовать. А мне все стали про паттерны писать, и я думаю почему никто не говорит про базовый абстрактный класс в основе. Сейчас постараюсь с фабрикой разобраться, вроде-бы оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 02:22 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
Сделал так, но пока не работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. не очень красиво получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 03:31 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercurymaytonпропущено... Ты когда говоришь о т.н. "стандартах" - то уточняй о каком из них. Мы уже говорим про стандарт на числа плавающей точности? Нет, я говорю о стандарте Си, например, в котором содержится информации об той самой e:1=1+e, и другая вспомогательная информация по работе с числами двойной точностиА для понимания этого момента, надо учить историю. В далекие и древние времена, очень редкие компьютеры умели считать числа с плавающей запятой самостоятельно. Для таких расчетов использовались специальные программы, которые были оформлены в виде функций для библиотек. И так как эти расчеты были нужны достаточно часто, то эти функции появлялись в составе всех имеющихся компиляторов. И в итоге их решили считать стандартными. В те времена тип float занимал в памяти столько же байт сколько тип int (какого-бы размера int) ни был на конкретной платформе. А double соответственно вдвое длиннее. Ну вот так Ричи захотелось... И отсюда и возникла "стандартная" точность для float и double. Как работала вся математика для плавающей точки? Через численные методы и схождение рядов. Ну и чтобы добавить порядка, ввели в стандарт ограничения по точности и создатели компиляторов исходя из этой точности задавали сколько итераций делать при расчете всех операций с float и double переменными (и арифметических и тригонометрических и всех остальных -ических). А потом настал 1980-ый год и Intel выпустил в свободную продажу специальный процессор i8087 который ставился в пару к i8086 и занимался исключительно числами с плавающей запятой. И все номерные процессоры семейства (i8086, i80186, i80286, i80386 и i80486 со всеми кузенами и модификациями) имели младших братишек с семеркой в конце номера. В результате, в 80-х и 90-х годах все компиляторы Си и С++ имели специальный ключик - отдавать все операции с float и double в сопроцессор или использовать собственную библиотеку... Причем что интересно, стандарт на компьютерную обработку чисел с плавающей запятой уже писался на основе x87-ого чипа. Сначала Intel выпустил 8087-ой сопроцессор, а стандарт который описывает как эти расчеты надо было проводить вышел на пять лет позже... И только тогда появилась мода на 80-и битное хранение чисел ставшая стандартом и сохраняющаяся и сегодня. Стандарт по формальной математик по существу писался с оглядкой на уже существующее коммерческое решение в железе. А когда Intel выпустил Pentium, то операции с плавающей точкой в конце-концов втянули внутрь главного чипа и эпоха сопроцессоров закончилась. С тех пор компиляторы перестали тащить за собой специальные библиотеки для работы с плавающей запятой и стали сразу отдавать эти расчеты в процессор. И теперь за точность расчетов уже отвечает не язык, а процессор. Кстати, в GNU C/C++ до сих пор есть опция -msoft-float и -mfpmath которыми можно выключить использование команд процессора для расчетов и заменить их вызовами функций (которая уже не поставляется с компилятором). А на многих микроконтроллерах соответсвующих операций до сих пор нет и там по прежнему программа типа: Код: plaintext 1. 2. превращается в вызов библиотечной функции. Которая может или следовать древним традициям sizeof(float)=sizeof(int), sizeof(double)=2*sizeof(float). Или жестко задавать 80бит для хранения любого числа с плавающей запятой и все. Но это уже достаточная редкость и надо смотреть на конкретную платформу. А все потомки Pentium'а занимаются плавающей запятой самостоятельно. И точность расчета зависит от процессора а не собственных библиотек компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 05:32 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
Спасибо за ликбез, этого я не знал. White Owl И только тогда появилась мода на 80-и битное хранение чисел ставшая стандартом и сохраняющаяся и сегодня. Размер long double в VS 8 байт вроде-бы, т.е. 64 бита ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 07:13 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
Поправил, но всё-равно ругается Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. Error 2 error LNK2019: unresolved external symbol "public: __thiscall Matrix::Matrix(void)" (??0Matrix@@QAE@XZ) referenced in function "private: virtual class IM * __thiscall CreatorRM::factory_method(void)" (?factory_method@CreatorRM@@EAEPAVIM@@XZ PS egorych, вы как-то писали что у вас около 100 классов в одном проекте и это не много. Теперь я понимаю почему вы считаете что это не много, и почему их так много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 09:00 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercury, >>Поправил, но всё-равно ругается Error 2 error LNK2019: unresolved external symbol "public: __thiscall Matrix::Matrix(void)" (??0Matrix@@QAE@XZ) referenced in function "private: virtual class IM * __thiscall CreatorRM::factory_method(void)" (?factory_method@CreatorRM@@EAEPAVIM@@XZ ну, а дефолтный конструктор у класса Matrix кто будет реализовывать? )) >>egorych, вы как-то писали что у вас около 100 классов в одном проекте и это не много. Теперь я понимаю почему вы считаете что это не много, и почему их так много. :) а зачем создающие функции в конкретных реализациях фабрики ты спрятал в private? Код: plaintext 1. 2. 3. 4. и проблемы с inaccessible сразу будут решены )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 10:20 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercuryegorych, вы как-то писали что у вас около 100 классов в одном проекте и это не много. Теперь я понимаю почему вы считаете что это не много, и почему их так много. В моём текущем проекте около 14 тыс классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 11:38 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
egorychSashaMercury, >>>struct<<< CreatorRM :public Creator { M* factory_method() { return new RM(); } }; [/src]и проблемы с inaccessible сразу будут решены )) или public: не забывать. В struct по умолчанию все члены public, а в class - private, потому недоступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 11:41 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercurySashaMercury Реализую первый вариант, предложенный Дмитрием. Всё-таки этот вариант не самый хороший. Например, в базовом классе M мы определим операцию умножения матриц, но результатом такой операции может быть как прямоугольная матрица M так и квадратная S_M. Вернулся к тому что было Я-бы исходил из того что говорит математика по поводу определителя для не-квадратной матрицы. Или что говорит твой юзкейс. Например варианты поведения. 1) Бросить исключение - типа "Are you crazy man!" 2) Дать функцию isDeterminantApplyable(). Проверять возможность. И соотв. делать или не делать расчёт. 3) Обобщить прямоугольную. Например дополнить нулями и единичками (здесь я не уверен нужно почитать возможно ли это) прямоугольную до квадратной и молча выполнить расчёт детерминанта. Смысл разумеется возложить на постановщика. И вот эти кейсы что я перечислил во много раз важнее дизайна классов. Как-бы нам не хотелось красивенько унаследоваться или сделать композицию. Не стоит выпячивать ООП фичи. Надо исходить из смыслов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 11:45 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercuryegorych, вы как-то писали что у вас около 100 классов в одном проекте и это не много. Теперь я понимаю почему вы считаете что это не много, и почему их так много. В данном случае с матрицами никаких фабрик и интерфейсов не нужно. Если на голом месте высасывать из пальца пачки классов, то и 100 и 14000 не предел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 16:32 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
egorychа зачем создающие функции в конкретных реализациях фабрики ты спрятал в private? Код: plaintext 1. 2. 3. 4. и проблемы с inaccessible сразу будут решены )) Я поправил как вы посоветовали, но это к сожалению не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 01:59 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
maytonSashaMercuryegorych, вы как-то писали что у вас около 100 классов в одном проекте и это не много. Теперь я понимаю почему вы считаете что это не много, и почему их так много. В моём текущем проекте около 14 тыс классов. И из них 13 900 реализуют внутренний интерфейс и паттерны ?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 02:01 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercurymaytonпропущено... В моём текущем проекте около 14 тыс классов. И из них 13 900 реализуют внутренний интерфейс и паттерны ?:) Ммм... это хороший вопрос. Для меня даже приблизительный подсчёт сопряжён с анализом. Так просто.... через grep code я не смогу ответить на твой вопрос. Но они являются частью фреймворков и соотв в обязательном порядке имеют базовый тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 14:38 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
А вот если бы аналогичное было бы реализовано на условной Java, какой объём по классам можно ожидать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 14:42 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
SashaMercuryА вот если бы аналогичное было бы реализовано на условной Java, какой объём по классам можно ожидать ? Если ты хочешь спросить - можно-ли уменьшить кол-во сущностей в принципе - то я отвечу ДА. Но какой ценой? Ценой усложнения процесса разработки? Или введением универсальной божественной сущности типа GodObject в котором можно добавлять и удалять поля и методы? Или перенести половину логики в DBMS? ТОже своя цена. Как то так вобщем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 15:25 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
maytonВ моём текущем проекте около 14 тыс классовВ том смысле, что если подсчитать количество видов структур используемых API Microsoft + ... + ваших 5 структур, или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 15:34 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
Владимир2012, при чём тут Microsoft? Я не использую сабж. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 15:41 |
|
||
|
Матрицы, позднее связывание, и другое
|
|||
|---|---|---|---|
|
#18+
maytonЕсли интересно курить сорцы на Java 5.0.Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39117470&tid=2018704]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 186ms |

| 0 / 0 |
