2016-10-31 6 views
3

Когда я пытаюсь создать 100 х 100 точечных данных с использованием F # и Math.NET используя следующий код:исключение памяти из Math.NET при генерации 100 х 100 точек данных

let theta0_vals = Generate.LinearSpaced(100, -10.0, 10.0) 
let theta1_vals = Generate.LinearSpaced(100, -1.0, 4.0) 

let fct a b = 2.0 * a * b 

let points = [for i in theta0_vals -> [for j in theta1_vals -> fct (float i) (float j) ]] 

тогда я получаю следующий за следующее исключение:

[System.NullReferenceException: ссылка на объект не указывает на экземпляр объекта в Microsoft.FSharp.Core.Operators.FailurePattern (ошибка System.Exception) [0x00001] в < 57a12c4adff9fae1a74503834a2ca157>: 0 в Microsoft. FSharp.Compiler.ErrorLogger + ErrorLoggerExtensions.ReraiseIfWatsonable (System.Exception EXN) [0x0002d] в < 5707a356ddab8ea7a745038356a30757>: 0 на Microsoft.FSharp.Compiler.ErrorLogger + ErrorLoggerExtensions.ErrorLogger.ErrorRecovery (Microsoft.FSharp.Compiler.ErrorLogger + ErrorLogger х , System.Exception EXN, Microsoft.FSharp.Compiler.Range + диапазон м) [0x00087] в < 5707a356ddab8ea7a745038356a30757>: 0 на Microsoft.FSharp.Compiler.ErrorLogger + ErrorLoggerExtensions.ReraiseIfWatsonable (System.Exception EXN) [0x00040] в < 5707a356ddab8ea7a745038356a30757>: 0 в Microsoft.FSharp.Compiler.ErrorLogger + ErrorLoggerExtensions.ErrorLogger.ErrorRecovery (Microsoft.FSharp.Compiler.ErrorLogger + ErrorLogger x, System.Exception exn, Microsoft.FSharp.Compiler.Range + range m) [0x00087] в < 5707a356ddab8ea7a745 038356a30757>: 0 в Microsoft.FSharp.Compiler.ErrorLogger + ErrorLoggerExtensions.ReraiseIfWatsonable (System.Exception EXN) [0x00040] в < 5707a356ddab8ea7a745038356a30757>: 0 на Microsoft.FSharp.Compiler.ErrorLogger + ErrorLoggerExtensions.ErrorLogger.ErrorRecovery (Microsoft. FSharp.Compiler.ErrorLogger + ErrorLogger х, System.Exception EXN, Microsoft.FSharp.Compiler.Range + диапазон м) [0x00087] в < 5707a356ddab8ea7a745038356a30757>: 0

Я использую F # интерактивный Xamarin студии на Mac с 16 ГБ оперативной памяти. У меня нет проблем делать то же самое в Matlab.

Это ограничение в F # и/или Math.NET?

+2

Что заставляет вас думать, что это связано с памятью? Он ничего не говорит об этом. Если действительно проблема с памятью - в Visual Studio FSI по умолчанию работает по 32 бита и явно должен быть установлен в 64-разрядный. Возможно, это похоже на XS. – TeaDrivenDev

+2

100 в LinearSpaced - это количество точек между -10.0 и 10.0. Если я уменьшу количество очков, то я не получу исключения. Это заставило меня поверить, что это связано с памятью. – carstenj

+3

Я сомневаюсь, что это проблема с памятью. Я запустил ваш код без каких-либо ошибок в Visual Studio в Windows, вы можете попробовать запустить тот же код, что и исполняемый файл (без FSI), и посмотреть, есть ли у вас такая же ошибка? – mpeac

ответ

1

Спасибо за ваш ввод. Он отлично работает при запуске в исполняемом файле и также работает при запуске интерактивного из командной строки. Думаю, это должна быть проблема с интеграцией интерактивного запуска под Xamarin Studio.