久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1266|回復: 0
打印 上一主題 下一主題
收起左側

MATLAB矩陣相乘源程序

[復制鏈接]
跳轉到指定樓層
樓主
matlab 矩陣相乘


全部資料51hei下載地址:
mtimesx_20110223.zip (255.8 KB, 下載次數: 7)
  1. /* OpenMP ------------------------------------------------------------- */

  2. #ifdef _OPENMP
  3. #include <omp.h>
  4. #endif

  5. /* Includes ----------------------------------------------------------- */

  6. #include <string.h>
  7. #include <stddef.h>
  8. #include <ctype.h>
  9. #include <math.h>
  10. #include <time.h>
  11. #include "mex.h"

  12. /* Macros ------------------------------------------------------------- */

  13. #ifndef MWSIZE_MAX
  14. #define  mwIndex        int
  15. #define  mwSignedIndex  int
  16. #define  mwSize         int
  17. #define  mwSize_t       size_t
  18. #else
  19. #define  mwSize_t       mwSize
  20. #endif

  21. #define  METHOD_BLAS       0
  22. #define  METHOD_LOOPS      1
  23. #define  METHOD_LOOPS_OMP  2

  24. #define  MTIMESX_NOT_SET    0
  25. #define  MTIMESX_BLAS       1
  26. #define  MTIMESX_LOOPS      2
  27. #define  MTIMESX_LOOPS_OMP  3
  28. #define  MTIMESX_MATLAB     4
  29. #define  MTIMESX_SPEED      5
  30. #define  MTIMESX_SPEED_OMP  6

  31. #define  STRINGIZE(name)  #name
  32. #define  TOKENSTRING(name)  STRINGIZE(name)

  33. #define  DIRECTIVE_MAX  1000

  34. #ifndef  COMPILER
  35. #define  COMPILER  (unknown)
  36. #endif

  37. /* Prototypes --------------------------------------------------------- */

  38. mxArray *DoubleTimesDouble(mxArray *, char, mxArray *, char);
  39. mxArray *FloatTimesFloat(mxArray *, char, mxArray *, char);
  40. mxArray *mxCreateSharedDataCopy(const mxArray *pr);
  41. char mxArrayToTrans(const mxArray *mx);
  42. void *myRealloc(void *vp, mwSize_t n);
  43. void mtimesx_logo(void);
  44. mxArray *modestring(int);

  45. /* Global Variables --------------------------------------------------- */

  46. int mtimesx_mode  = MTIMESX_MATLAB;
  47. int max_threads   = 0;
  48. int threads_used  = 0;
  49. int debug         = 0;
  50. int debug_message = 0;

  51. /* Functions ect for OpenMP implementations ------- */

  52. #ifdef _OPENMP

  53. #define  OPENMP_ENABLED   1.0

  54. /* Functions etc for non OpenMP implementations ----------------- */

  55. /* The omp_get_num_procs() function is courtesy of Dirk-Jan Kroon */
  56. /* and is based on his FEX submission maxNumCompThreads --------- */

  57. #else

  58. #define  OPENMP_ENABLED   0.0
  59. #define  omp_get_wtick()  0.0
  60. #define  omp_get_wtime()  ((double)clock()/((double)CLOCKS_PER_SEC))

  61. #if defined(_WIN32) || defined(_WIN64)

  62. #include <windows.h>
  63. int omp_get_num_procs( ) {
  64.     SYSTEM_INFO sysinfo;
  65.     GetSystemInfo(&sysinfo);
  66.     return sysinfo.dwNumberOfProcessors;
  67. }

  68. #elif MACOS

  69. #include <sys/param.h>
  70. #include <sys/sysctl.h>
  71. int omp_get_num_procs( ) {
  72.     int nm[2];
  73.     size_t len = 4;
  74.     uint32_t count;

  75.     nm[0] = CTL_HW; nm[1] = HW_AVAILCPU;
  76.     sysctl(nm, 2, &count, &len, NULL, 0);

  77.     if(count < 1) {
  78.         nm[1] = HW_NCPU;
  79.         sysctl(nm, 2, &count, &len, NULL, 0);
  80.         if(count < 1) { count = 1; }
  81.     }
  82.     return count;
  83. }
  84. #else

  85. #include <unistd.h>
  86. int omp_get_num_procs( ) {
  87.     return sysconf(_SC_NPROCESSORS_ONLN);
  88. }

  89. #endif

  90. #endif

  91. /*------------------------------------------------------------------------ */
  92. /*------------------------------------------------------------------------ */
  93. /*------------------------------------------------------------------------ */
  94. /*------------------------------------------------------------------------ */

  95. void mexFunction(int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[])
  96. {
  97.     mxArray *A, *B, *C, *Araw, *Braw;
  98.     mxArray *rhs[4];
  99.     char transa, transb;
  100.     char *directive, *cp;
  101.     char transstring[2] = "_";
  102.     int unsupported = 0;
  103.     int i, j, k, got_directive, nrhs_old = nrhs;
  104.         int mtimesx_mode_new, max_threads_new,
  105.                 already_set_mode, already_set_debug, already_set_threads;
  106.         mxArray *ans;
  107.         double threads;

  108. /*-------------------------------------------------------------------------
  109. * Check for proper number of inputs and outputs
  110. *------------------------------------------------------------------------- */

  111.     if( nlhs > 1 ) {
  112.         mexErrMsgTxt("Must have at most 1 output.");
  113.     }

  114. /*-------------------------------------------------------------------------
  115. * If no inputs, just return the current mode
  116. *------------------------------------------------------------------------- */

  117.     if( nrhs == 0 ) {
  118.                 plhs[0] = modestring(mtimesx_mode);
  119.         return;
  120.     }

  121. /*-------------------------------------------------------------------------
  122. * Find out if any input is a directive
  123. *------------------------------------------------------------------------- */

  124.         i = 0;
  125.         mtimesx_mode_new    = MTIMESX_NOT_SET;
  126.         max_threads_new     = 0;
  127.         already_set_mode    = 0;
  128.         already_set_debug   = 0;
  129.         already_set_threads = 0;
  130.         while( i < nrhs ) {
  131.         if( mxIsChar(prhs[i]) ) {
  132.                 if( mxGetNumberOfElements(prhs[i]) > DIRECTIVE_MAX ) {
  133. ……………………

  134. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 韩日精品视频 | 国产精品久久一区二区三区 | 日韩成人中文字幕 | 久久久精品视频一区二区三区 | 免费天天干 | 日韩综合在线 | 亚洲性视频 | 日韩久久久久 | 久久久精彩视频 | 日本一区二区三区在线观看 | 久久久久久久久久久成人 | 国产欧美日韩在线一区 | 国产精品久久久久久久久免费高清 | 99久久99 | 国产精品91视频 | 久草免费在线视频 | 国产目拍亚洲精品99久久精品 | 欧美视频 | 免费久久网站 | 久久一区二区三区免费 | 久久99精品国产自在现线小黄鸭 | 亚洲一区久久 | 欧美一区在线视频 | 亚洲 欧美 另类 综合 偷拍 | 亚洲国产精品va在线看黑人 | 午夜激情免费 | 精品国产乱码久久久久久88av | 一级午夜aaa免费看三区 | 999re5这里只有精品 | 亚洲精品视频在线播放 | 欧美五月婷婷 | 成年女人免费v片 | 国产精品久久久久久吹潮日韩动画 | 国产成人免费视频 | 久久精品com| 欧州一区| 美女国内精品自产拍在线播放 | av中文字幕在线 | 91精品国产综合久久小仙女图片 | 中文字幕日韩欧美 | 国产999精品久久久 日本视频一区二区三区 |