# Mat CV\_32SC1 matrix addition has wrong results with OpenCV 4.7 on Mac M1 Pro

**URL:** <https://forum.opencv.org/t/mat-cv-32sc1-matrix-addition-has-wrong-results-with-opencv-4-7-on-mac-m1-pro/12824>\
**Category:** C++\
**Tags:** core, apple\
**Created:** [April 16, 2023, 10:34am UTC](https://forum.opencv.org/t/mat-cv-32sc1-matrix-addition-has-wrong-results-with-opencv-4-7-on-mac-m1-pro/12824 "2023-04-16T10:34:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jioujiujiu](https://avatars.discourse-cdn.com/v4/letter/j/2acd7d/32.png) [@Jioujiujiu](https://forum.opencv.org/u/Jioujiujiu)\
**Post date:** [April 16, 2023, 10:34am UTC](https://forum.opencv.org/t/mat-cv-32sc1-matrix-addition-has-wrong-results-with-opencv-4-7-on-mac-m1-pro/12824/1 "2023-04-16T10:34:15Z")

</div>

```c
int main(int argc, char* argv[]){
  int a[2] = {-1, 0};
  cv::Mat b(1, 2, CV_32SC1, a);
  cout<<"b : "<<b<<endl;
  cout<<"b+b+1: "<<b+b+1<<endl;
  cout<<"b+b : "<<b+b<<endl;
  cout<<"b+b-1: "<<b+b-1<<endl;
  cout<<"b+b-2: "<<b+b-2<<endl;
  cout<<"b+b-3: "<<b+b-3<<endl;
  return 0;
}

```

The above code has the following result with **OpenCV 4.7 on Mac M1 Pro**. Only the result on the first and third rows are correct. Why? Also check the attached image.  
Results are correct on Ubuntu and Windows.  
Thanks in advance!

```auto
b : [-1, 0]
b+b+1: [0, 1] // expect [-1, 1]
b+b : [-2, 0]
b+b-1: [-2, 0] // expect [-3, -1]
b+b-2: [-3, -1] // expect [-4, -2]
b+b-3: [-4, -2] // expect [-5, -3]

```

 ![1](https://us1.discourse-cdn.com/flex020/uploads/opencv/original/2X/6/6c9acd3aba655c492dfc2e102e1bb73a64ee89ab.png)

---

<div class="post-metadata">

**Author:** ![laurent.berger](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@laurent.berger](https://forum.opencv.org/u/laurent.berger)\
**Post date:** [April 16, 2023, 1:46pm UTC](https://forum.opencv.org/t/mat-cv-32sc1-matrix-addition-has-wrong-results-with-opencv-4-7-on-mac-m1-pro/12824/2 "2023-04-16T13:46:10Z")

</div>

> [@Jioujiujiu](#):
>
> ```auto
> int a[2] = {-1, 0};
> cv::Mat b(1, 2, CV_32SC1, a);
> cout<<"b : "<<b<<endl;
> cout<<"b+b+1: "<<b+b+1<<endl;
> cout<<"b+b : "<<b+b<<endl;
> cout<<"b+b-1: "<<b+b-1<<endl;
> cout<<"b+b-2: "<<b+b-2<<endl;
> cout<<"b+b-3: "<<b+b-3<<endl;
> 
> ```

Post an [issue](https://github.com/opencv/opencv/issues)
