Andrey
а так он убог
Andrey
особенно в реаллокации
Berkus
судя по имплементации в libc++ разница будет зависеть от того что ты туда передаешь
Berkus
template <class _Tp> template <class _ValExpr> inline valarray<_Tp>& valarray<_Tp>::operator=(const __val_expr<_ValExpr>& __v) { size_t __n = __v.size(); if (size() != __n) resize(__n); value_type* __t = __begin_; for (size_t __i = 0; __i != __n; ++__t, ++__i) *__t = result_type(__v[__i]); return *this; } но template <class _Tp> inline valarray<_Tp>& valarray<_Tp>::operator=(initializer_list<value_type> __il) { if (size() != __il.size()) resize(__il.size()); _VSTD::copy(__il.begin(), __il.end(), __begin_); return *this; }
✙ Fatum ✙
у меня прост задача перелопатить csv данные по гектару каждый файл
✙ Fatum ✙
и таких 4
Andrey
по гектару это сила
Berkus
О, вот еще полезное template <class _Tp> valarray<_Tp>& valarray<_Tp>::operator=(const valarray& __v) { if (this != &__v) { if (size() != __v.size()) resize(__v.size()); _VSTD::copy(__v.__begin_, __v.__end_, __begin_); } return *this; }
Berkus
так что будет то же самое copy
✙ Fatum ✙
Можно вопросить: а зачем ваще valarray?
я выше писала - задача перебрать собранные сенсорные данные с андроиа
Andrey
у меня прост задача перелопатить csv данные по гектару каждый файл
смотря что имеется ввиду под "перолопатить"
Крылатый
+
Крылатый
Я бы просто взял вектор и по нему пробегался через map
Andrey
мож там ваще алгоритм менять надоть, а не ташшыть все в память
Surreal
я выше писала - задача перебрать собранные сенсорные данные с андроиа
Смысл valarray в том, что операции арифм. можно выполнять над всем вектором сразу. Если вам просто хранить, то vector или deque - ваш выбор.
Berkus
apply для функциональщиков
✙ Fatum ✙
смотря что имеется ввиду под "перолопатить"
убрать нерелевантные данные.. короче, подготовить данные на скармливание нейросети
Andrey
если вырожденная задача, мож ваше в екселе проще решать )
Aidar
Это for_each чтоль
Крылатый
Чеза мап
https://en.wikipedia.org/wiki/Map_(higher-order_function)
Berkus
фор ич только функциональный
Aidar
А это ваще трансформ
✙ Fatum ✙
если вырожденная задача, мож ваше в екселе проще решать )
мне лень вручную такие массивы сортировать, когда можно кодом) (это крайний случай)
Крылатый
Aidar
Но чат о полюсах поэтому я спросил
Andrey
мне лень вручную такие массивы сортировать, когда можно кодом) (это крайний случай)
да ексель для всякого извращения с табличными данными самое - то
Aidar
Бррррр проприетарщина
Stanislav
Andrey
можно в БД загнать и sql - ем поворочать
Крылатый
Ток хотел написать..)
Surreal
убрать нерелевантные данные.. короче, подготовить данные на скармливание нейросети
Берите vector, проверяйте на релевантность i элемент, если он не релевантен, проверяйте size - j элемент, если он релевантен, делайте свап, если нет, ищите релевантный size - j, увеличивая j, когда найдете, также свап. Потом в конце ресайз вектора.
Andrey
Бррррр проприетарщина
ну, со своими задачами он справляется )
Surreal
Если нерелевантных много и нужна производительность, то помечать как-то нерелевантные, чтобы кэш не морозить.
✙ Fatum ✙
можно в БД загнать и sql - ем поворочать
кстати, самый норм вариант походу) тем более у меня постгрес тут поднят
Andrey
Andrey
если что-то надо удалять
✙ Fatum ✙
postgresql умеет insert from csv
пожалуй это самый вменяемый и быстрый вариант на данный момент)
Andrey
пожалуй это самый вменяемый и быстрый вариант на данный момент)
вот-вот инструменты надо использовать по назначению )
Surreal
Это remove_if?
Именно.
Крылатый
Быстрей просто insert
Berkus
ну да, copy он же постгресовский инсерт из файла)
Крылатый
Сравняшки gcc и clang http://www.phoronix.com/scan.php?page=article&item=gcc7-clang4-jan&num=2
Berkus
ничоси, уже 7 версия
Berkus
интересно почему на некоторых тестах гцц в ДВА раза продувает
Aidar
Это же openmpi
Anton
интересно почему на некоторых тестах гцц в ДВА раза продувает
Тесты, где в два раза продувает, вроде как об операциях с матрицами. Может клэнг лучше векторизует, чем gcc?
Berkus
ну там polly в кланге
Berkus
неизвестно только, включили они ее или нет
Anton
ну там polly в кланге
http://perso.ens-lyon.fr/christophe.alias/impact2011/impact-07.pdf Это оно?
Berkus
дя
Anton
Пойду почитаю, а то не слышал даже об этом.
Berkus
ну по результатам похоже на полли
Surreal
А у clang и gcc совпадают наборы флагов, включенных в -O3?
Berkus
должны быть близко
Berkus
clang оригинально старался держаться близко, как сейчас не знаю
Surreal
Надо еще поискать соответствия флагов clang флагам gcc, потому что они разные: https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Optimize-Options.html http://stackoverflow.com/questions/15548023/clang-optimization-levels
Surreal
У clang векторизация с O2, в gcc с O3.
Berkus
During the automated compiler benchmarking process, the same CFLAGS/CXXFLAGS were set of "-O3 -march=native."
Berkus
ну значит обе векторизации были включены
Surreal
Это да, я просто к разнице. Это единственное, что в глаза бросается. Больше не нашел особо различий.
Berkus
не знаю как можно не любить этот язык https://www.youtube.com/watch?v=1gNzhE-Tn40&feature=youtu.be
✙ Fatum ✙
Kirill
многие не любят и боятся с++ за его строгость)
В каком месте C++ строгий? :) Вот Паскаль строгий.
Крылатый
template duck typing!
λ
asm строгий
Anonymous
Машинный код... вот кто строг
Kirill
Машинный код... вот кто строг
Машинный код вообще беспощаден. :)