Ошибки, баги, вопросы - страница 3392

 
Размер вектора/матрицы может быть больше размера массива?
void OnStart()
{
  vector<double> Vector = {};
  double Array[];
  
  Print(typename(Vector.Size())); // ulong
  Print(typename(Array.Size()));  // uint
}
[Удален]  
fxsaber #:
Размер вектора/матрицы может быть больше размера массива?

Да.

Размер массива больше чем INT_MAX - Создайте массивы размером больше чем MAX элементов в одном измерении.
Размер массива больше чем INT_MAX - Создайте массивы размером больше чем MAX элементов в одном измерении.
  • 2022.02.20
  • www.mql5.com
возможность создавать и использовать массивы размером больше чем MAX элементов в одном измерении. кому нужно хранить более чем 2147483647 элементов в массиве. Даже массив однобайтовых значений char uchar будет занимать от 2 GB оперативки
 
Roman #:

Перейдя на топик куда ведёт ссыль, в коде автор всегда дает линк на КБ.  

Не поняли меня про какое обсуждение говорил. 
Ушли в ссылку по ссылке, а надо было остаться на обсуждении, ссылку которого давал.
 
Roman #:

Такая же ошибка выводится для метода .Sort() в векторах.
Разработчик отвечал, что метод не реализован.
Скорее всего то-же самое для метода .FromBuffer()

Его нет

Спасибо. Вот его замена.

 
Koldun Zloy #:

Да.

Спасибо.

 
Koldun Zloy #:

Для одного запроса незачем. Блокировка есть в любом случае.

Я правильно понимаю?
Если открываем базу в память из одной программы, и постоянно пишем в неё не закрывая базу
Открываем базу из другой программы и постоянно читаем из базы, 
то дедлока не будет?


 
В исходнике Alglib есть такой код.
   bool   samex=true;
   bool   samey=true;
//--- Additonally we calculate SameX and SameY -
//--- flag variables which are set to True when
//--- all X[] (or Y[]) contain exactly same value.
//--- If at least one of them is True, we return zero
//--- (othwerwise we risk to get nonzero correlation
//--- because of roundoff).
   for(int i=0; i<n; i++)
     {
      s=cx[i];
      samex=samex && s==x0;
      xmean+=s*v;
      s=cy[i];
      samey=samey && s==y0;
      ymean+=s*v;
     }
//--- check
   if(samex || samey)
      return(0);

Не понимаю его, как и не понимаю, почему компилятор не делает никаких предупреждений. Здесь нет ошибки?

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2023.09.27 16:56

В исходнике Alglib есть такой код.
   for(int i=0; i<n; i++)
     {
      s=cx[i];
      samex=samex && s==x0;
      xmean+=s*v;
      s=cy[i];
      samey=samey && s==y0;
      ymean+=s*v;
     }

Для чего в математической библиотеке внутри цикла идет умножение каждого слагаемого, а не итоговой суммы? Обход гипотетических double-проблем?

 
fxsaber #:

Для чего в математической библиотеке

return(s/(MathSqrt(xv)*MathSqrt(yv)));
произведение квадратных корней, а не квадратный корень произведения?
 
fxsaber #:
произведение квадратных корней, а не квадратный корень произведения?

произведение двух чисел может быть дюже большим и переполнить чашу терпения :-)