do not upcast results to float64 when float32 scalar *+/- float64 array
- [x] closes #12388 
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

can you rebase / update & move whatsnew to 0.18.2
 can you rebase / update?
 yes, I will try to find some time over the weekend to do this.
 ## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/12559?src=pr) is **84.22%**

> Merging [#12559](https://codecov.io/gh/pydata/pandas/pull/12559?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will increase coverage by **<.01%**

``` diff
@@             master     #12559   diff @@
==========================================
  Files           138        138          
  Lines         50667      50680    +13   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          42672      42683    +11   
- Misses         7995       7997     +2   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by [af4ed0f...2346761](https://codecov.io/gh/pydata/pandas/compare/af4ed0f645685d322bc5b6ece575628f0985ad72...23467612e159deaf0f4caaf3923e4564b297f6ad)
 @jreback green
 actually, let me see if I can increase the code coverage
 looks good. some style points. ping when change / green.
 @jreback green
 thanks @jennolsen84 
