-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
575 lines (523 loc) · 76.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
<!DOCTYPE html>
<html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns#">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="/xmlrpc.php">
<title>About GMac - GMac Guides</title>
<script>document.documentElement.className = document.documentElement.className.replace("no-js","js");</script>
<!-- This site is optimized with the Yoast SEO plugin v7.6.1 - https://yoast.com/wordpress/plugins/seo/ -->
<meta name="description" content="GMac is a .NET based software system for implementing Geometric Algebra models and algorithms in any target programming language."/>
<link rel="canonical" href="/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="About GMac - GMac Guides" />
<meta property="og:description" content="GMac is a .NET based software system for implementing Geometric Algebra models and algorithms in any target programming language." />
<meta property="og:url" content="/" />
<meta property="og:site_name" content="GMac Guides" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:description" content="GMac is a .NET based software system for implementing Geometric Algebra models and algorithms in any target programming language." />
<meta name="twitter:title" content="About GMac - GMac Guides" />
<meta name="twitter:image" content="/wp-content/uploads/2015/06/Using-GMac-300x226.png" />
<script type='application/ld+json'>{"@context":"https:\/\/schema.org","@type":"WebSite","@id":"#website","url":"\/","name":"GMac Guides","potentialAction":{"@type":"SearchAction","target":"\/?s={search_term_string}","query-input":"required name=search_term_string"}}</script>
<!-- / Yoast SEO plugin. -->
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="GMac Guides » Feed" href="/index.php/feed/" />
<link rel="alternate" type="application/rss+xml" title="GMac Guides » Comments Feed" href="/index.php/comments/feed/" />
<link id="hu-user-gfont" href="//fonts.googleapis.com/css?family=Droid+Serif:400,400italic,700" rel="stylesheet" type="text/css"><link rel="alternate" type="application/rss+xml" title="GMac Guides » About GMac Comments Feed" href="/index.php/about-gmac/feed/" />
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.4\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.4\/svg\/","svgExt":".svg","source":{"concatemoji":"\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.6"}};
!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55357,56692,8205,9792,65039],[55357,56692,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
</script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='papercite_css-css' href='/wp-content/plugins/papercite/papercite.css?ver=4.9.6' type='text/css' media='all' />
<link rel='stylesheet' id='crayon-css' href='/wp-content/plugins/crayon-syntax-highlighter/css/min/crayon.min.css?ver=_2.7.2_beta' type='text/css' media='all' />
<link rel='stylesheet' id='cpsh-shortcodes-css' href='/wp-content/plugins/column-shortcodes//assets/css/shortcodes.css?ver=1.0' type='text/css' media='all' />
<link rel='stylesheet' id='contact-form-7-css' href='/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.0.2' type='text/css' media='all' />
<link rel='stylesheet' id='essential_addons_elementor-css-css' href='/wp-content/plugins/essential-addons-for-elementor-lite/assets/css/essential-addons-elementor.css?ver=4.9.6' type='text/css' media='all' />
<link rel='stylesheet' id='essential_addons_elementor-slick-css-css' href='/wp-content/plugins/essential-addons-for-elementor-lite/assets/slick/slick.css?ver=4.9.6' type='text/css' media='all' />
<link rel='stylesheet' id='plantuml-renderer-css' href='/wp-content/plugins/plantuml-renderer/public/css/plantuml-renderer-public.css?ver=0.0.1' type='text/css' media='all' />
<link rel='stylesheet' id='dlm-frontend-css' href='/wp-content/plugins/download-monitor/assets/css/frontend.css?ver=4.9.6' type='text/css' media='all' />
<link rel='stylesheet' id='hueman-main-style-css' href='/wp-content/themes/hueman/assets/front/css/main.min.css?ver=3.3.27' type='text/css' media='all' />
<style id='hueman-main-style-inline-css' type='text/css'>
body { font-family:'Droid Serif', serif;font-size:1.00rem }@media only screen and (min-width: 720px) {
.nav > li { font-size:1.00rem; }
}.sidebar .widget { padding-left: 20px; padding-right: 20px; padding-top: 20px; }::selection { background-color: #0066bf; }
::-moz-selection { background-color: #0066bf; }a,.themeform label .required,#flexslider-featured .flex-direction-nav .flex-next:hover,#flexslider-featured .flex-direction-nav .flex-prev:hover,.post-hover:hover .post-title a,.post-title a:hover,.sidebar.s1 .post-nav li a:hover i,.content .post-nav li a:hover i,.post-related a:hover,.sidebar.s1 .widget_rss ul li a,#footer .widget_rss ul li a,.sidebar.s1 .widget_calendar a,#footer .widget_calendar a,.sidebar.s1 .alx-tab .tab-item-category a,.sidebar.s1 .alx-posts .post-item-category a,.sidebar.s1 .alx-tab li:hover .tab-item-title a,.sidebar.s1 .alx-tab li:hover .tab-item-comment a,.sidebar.s1 .alx-posts li:hover .post-item-title a,#footer .alx-tab .tab-item-category a,#footer .alx-posts .post-item-category a,#footer .alx-tab li:hover .tab-item-title a,#footer .alx-tab li:hover .tab-item-comment a,#footer .alx-posts li:hover .post-item-title a,.comment-tabs li.active a,.comment-awaiting-moderation,.child-menu a:hover,.child-menu .current_page_item > a,.wp-pagenavi a{ color: #0066bf; }.themeform input[type="submit"],.themeform button[type="submit"],.sidebar.s1 .sidebar-top,.sidebar.s1 .sidebar-toggle,#flexslider-featured .flex-control-nav li a.flex-active,.post-tags a:hover,.sidebar.s1 .widget_calendar caption,#footer .widget_calendar caption,.author-bio .bio-avatar:after,.commentlist li.bypostauthor > .comment-body:after,.commentlist li.comment-author-admin > .comment-body:after{ background-color: #0066bf; }.post-format .format-container { border-color: #0066bf; }.sidebar.s1 .alx-tabs-nav li.active a,#footer .alx-tabs-nav li.active a,.comment-tabs li.active a,.wp-pagenavi a:hover,.wp-pagenavi a:active,.wp-pagenavi span.current{ border-bottom-color: #0066bf!important; }.search-expand,
#nav-topbar.nav-container { background-color: #181310}@media only screen and (min-width: 720px) {
#nav-topbar .nav ul { background-color: #181310; }
}.is-scrolled #header .nav-container.desktop-sticky,
.is-scrolled #header .search-expand { background-color: #181310; background-color: rgba(24,19,16,0.90) }.is-scrolled .topbar-transparent #nav-topbar.desktop-sticky .nav ul { background-color: #181310; background-color: rgba(24,19,16,0.95) }#header { background-color: #181310; }
@media only screen and (min-width: 720px) {
#nav-header .nav ul { background-color: #181310; }
}
#header #nav-mobile { background-color: #181310; }.is-scrolled #header #nav-mobile { background-color: #181310; background-color: rgba(24,19,16,0.90) }#nav-header.nav-container, #main-header-search .search-expand { background-color: #181310; }
@media only screen and (min-width: 720px) {
#nav-header .nav ul { background-color: #181310; }
}
#footer-bottom { background-color: #181310; }.site-title a img { max-height: 280px; }img { -webkit-border-radius: 3px; border-radius: 3px; }body { background-color: #181310; }
</style>
<link rel='stylesheet' id='hueman-font-awesome-css' href='/wp-content/themes/hueman/assets/front/css/font-awesome.min.css?ver=3.3.27' type='text/css' media='all' />
<link rel='stylesheet' id='addtoany-css' href='/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.14' type='text/css' media='all' />
<!--n2css--><script type='text/javascript' src='/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
<script type='text/javascript' src='/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script>
<script type='text/javascript' src='/wp-content/plugins/papercite/js/papercite.js?ver=4.9.6'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var CrayonSyntaxSettings = {"version":"_2.7.2_beta","is_admin":"0","ajaxurl":"\/wp-admin\/admin-ajax.php","prefix":"crayon-","setting":"crayon-setting","selected":"crayon-setting-selected","changed":"crayon-setting-changed","special":"crayon-setting-special","orig_value":"data-orig-value","debug":""};
var CrayonSyntaxStrings = {"copy":"Press %s to Copy, %s to Paste","minimize":"Click To Expand Code"};
/* ]]> */
</script>
<script type='text/javascript' src='/wp-content/plugins/crayon-syntax-highlighter/js/min/crayon.min.js?ver=_2.7.2_beta'></script>
<script type='text/javascript' src='/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/plantuml-renderer/public/js/plantuml-renderer-public.js?ver=0.0.1'></script>
<link rel='https://api.w.org/' href='/index.php/wp-json/' />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="/wp-includes/wlwmanifest.xml" />
<meta name="generator" content="WordPress 4.9.6" />
<link rel='shortlink' href='/' />
<link rel="alternate" type="application/json+oembed" href="/index.php/wp-json/oembed/1.0/embed?url=http%3A%2F%2F%2F" />
<link rel="alternate" type="text/xml+oembed" href="/index.php/wp-json/oembed/1.0/embed?url=http%3A%2F%2F%2F&format=xml" />
<script data-cfasync="false">
window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};
(function(d,s,a,b){a=d.createElement(s);b=d.getElementsByTagName(s)[0];a.async=1;a.src="https://static.addtoany.com/menu/page.js";b.parentNode.insertBefore(a,b);})(document,"script");
</script>
<style type='text/css'> .ae_data .elementor-editor-element-setting {
display:none !important;
}
</style><!--[if lt IE 9]>
<script src="/wp-content/themes/hueman/assets/front/js/ie/html5shiv-printshiv.min.js"></script>
<script src="/wp-content/themes/hueman/assets/front/js/ie/selectivizr.js"></script>
<![endif]-->
<style type="text/css">
/* <![CDATA[ */
img.graphviz { vertical-align: middle; border: none; }
/* ]]> */
</style>
<style type="text/css">.broken_link, a.broken_link {
text-decoration: line-through;
}</style><link rel="icon" href="/wp-content/uploads/2016/12/cropped-GAExplorer-Icon-150x150.jpg" sizes="32x32" />
<link rel="icon" href="/wp-content/uploads/2016/12/cropped-GAExplorer-Icon-300x300.jpg" sizes="192x192" />
<link rel="apple-touch-icon-precomposed" href="/wp-content/uploads/2016/12/cropped-GAExplorer-Icon-300x300.jpg" />
<meta name="msapplication-TileImage" content="/wp-content/uploads/2016/12/cropped-GAExplorer-Icon-300x300.jpg" />
<!-- BEGIN ExactMetrics v5.3.4 Universal Analytics - https://exactmetrics.com/ -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-90461888-2', 'auto');
ga('send', 'pageview');
</script>
<!-- END ExactMetrics Universal Analytics -->
<style type="text/css"> #turnkey-credit { font-family: Tahoma,Sans,Arial,Helvetica,Verdana,sans-serif; font-size: 11px; text-align: center; } #turnkey-credit a { text-decoration: none; } #turnkey-credit a:hover { text-decoration: underline; } body.wp-admin #turnkey-credit, body#image #turnkey-credit, body#media-upload #turnkey-credit { display: none; } </style></head>
<body class="home page-template-default page page-id-13 col-1c boxed mobile-sidebar-hide header-desktop-sticky header-mobile-sticky unknown elementor-default">
<div id="wrapper">
<header id="header" class="top-menu-mobile-on one-mobile-menu top_menu header-ads-desktop topbar-transparent has-header-img">
<nav class="nav-container group mobile-menu mobile-sticky no-menu-assigned" id="nav-mobile" data-menu-id="header-1">
<div class="mobile-title-logo-in-header"></div>
<!-- <div class="ham__navbar-toggler collapsed" aria-expanded="false">
<div class="ham__navbar-span-wrapper">
<span class="ham-toggler-menu__span"></span>
</div>
</div> -->
<div class="ham__navbar-toggler-two collapsed" title="Menu" aria-expanded="false">
<div class="ham__navbar-span-wrapper">
<span class="line line-1"></span>
<span class="line line-2"></span>
<span class="line line-3"></span>
</div>
</div>
<div class="nav-text"></div>
<div class="nav-wrap container">
<ul id="menu-main-navigation-menu" class="nav container-inner group"><li id="menu-item-2838" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2838"><a href="/index.php/home/">Home</a></li>
<li id="menu-item-2841" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-13 current_page_item menu-item-2841"><a href="/">About GMac</a></li>
<li id="menu-item-3612" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3612"><a href="/index.php/gmac-guides-index/">GMac Guides</a>
<ul class="sub-menu">
<li id="menu-item-2852" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2852"><a href="/index.php/gmac-system-guide/">GMac System Guide</a></li>
<li id="menu-item-2842" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2842"><a href="/index.php/gmac-math-guide/">GMac Math Guide</a></li>
<li id="menu-item-2847" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2847"><a href="/index.php/gmacdsl-guide/">GMacDSL Guide</a></li>
<li id="menu-item-2849" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2849"><a href="/index.php/gmacast-guide/">GMacAST Guide</a></li>
<li id="menu-item-2848" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2848"><a href="/index.php/textcomposerlib-guide/">TextComposerLib Guide</a></li>
<li id="menu-item-2850" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2850"><a href="/index.php/gmacapi-guide/">GMacAPI Guide</a></li>
<li id="menu-item-2851" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2851"><a href="/index.php/gmac-scripting-guide/">GMac Scripting Guide</a></li>
</ul>
</li>
<li id="menu-item-2853" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2853"><a href="/index.php/gmac-samples/">GMac Samples</a></li>
<li id="menu-item-2834" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2834"><a href="#">Galleries</a>
<ul class="sub-menu">
<li id="menu-item-2845" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2845"><a href="/index.php/islamic-calligraphy/">Islamic Calligraphy</a></li>
<li id="menu-item-2854" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2854"><a href="/index.php/gmac-logos/">GMac Logos</a></li>
<li id="menu-item-2855" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2855"><a href="/index.php/textcomposerlib-logos/">TextComposerLib Logos</a></li>
</ul>
</li>
<li id="menu-item-2839" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2839"><a href="/index.php/contact/">Contact</a></li>
</ul> </div>
</nav><!--/#nav-topbar-->
<div class="container group">
<div class="container-inner">
<div id="header-image-wrap">
<div class="group pad central-header-zone">
</div>
<a href="/" rel="home"><img class="site-image" src="/wp-content/uploads/2017/10/GMac-Logo-v1.jpg" alt="GMac Guides"></a> </div>
<nav class="nav-container group desktop-menu" id="nav-header" data-menu-id="header-2">
<div class="nav-text"><!-- put your mobile menu text here --></div>
<div class="nav-wrap container">
<ul id="menu-main-navigation-menu-1" class="nav container-inner group"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2838"><a href="/index.php/home/">Home</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-13 current_page_item menu-item-2841"><a href="/">About GMac</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3612"><a href="/index.php/gmac-guides-index/">GMac Guides</a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2852"><a href="/index.php/gmac-system-guide/">GMac System Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2842"><a href="/index.php/gmac-math-guide/">GMac Math Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2847"><a href="/index.php/gmacdsl-guide/">GMacDSL Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2849"><a href="/index.php/gmacast-guide/">GMacAST Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2848"><a href="/index.php/textcomposerlib-guide/">TextComposerLib Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2850"><a href="/index.php/gmacapi-guide/">GMacAPI Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2851"><a href="/index.php/gmac-scripting-guide/">GMac Scripting Guide</a></li>
</ul>
</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2853"><a href="/index.php/gmac-samples/">GMac Samples</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2834"><a href="#">Galleries</a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2845"><a href="/index.php/islamic-calligraphy/">Islamic Calligraphy</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2854"><a href="/index.php/gmac-logos/">GMac Logos</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2855"><a href="/index.php/textcomposerlib-logos/">TextComposerLib Logos</a></li>
</ul>
</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2839"><a href="/index.php/contact/">Contact</a></li>
</ul> </div>
</nav><!--/#nav-header-->
</div><!--/.container-inner-->
</div><!--/.container-->
</header><!--/#header-->
<div class="container" id="page">
<div class="container-inner">
<div class="main">
<div class="main-inner group">
<section class="content">
<div class="page-title pad group">
<h1>About GMac</h1>
</div><!--/.page-title-->
<div class="pad group">
<article class="group post-13 page type-page status-publish hentry">
<div class="entry themeform">
<div class="addtoany_share_save_container addtoany_content addtoany_content_top"><div class="a2a_kit a2a_kit_size_24 addtoany_list" data-a2a-url="/" data-a2a-title="About GMac"><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=%2F&linkname=About%20GMac" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=%2F&linkname=About%20GMac" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_plus" href="https://www.addtoany.com/add_to/google_plus?linkurl=%2F&linkname=About%20GMac" title="Google+" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=%2F&linkname=About%20GMac" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share"></a></div></div> <div class="elementor elementor-3416">
<div class="elementor-inner">
<div class="elementor-section-wrap">
<section data-id="5r1c957" class="elementor-element elementor-element-5r1c957 elementor-section-boxed elementor-section-height-min-height elementor-section-height-default elementor-section-items-middle elementor-section elementor-top-section" data-settings="{"background_background":"classic"}" data-element_type="section">
<div class="elementor-background-overlay"></div>
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-row">
<div data-id="q4zb5kv" class="elementor-element elementor-element-q4zb5kv elementor-column elementor-col-100 elementor-top-column" data-element_type="column">
<div class="elementor-column-wrap elementor-element-populated">
<div class="elementor-widget-wrap">
<div data-id="qux8im9" class="elementor-element elementor-element-qux8im9 elementor-widget elementor-widget-heading" data-element_type="heading.default">
<div class="elementor-widget-container">
<h1 class="elementor-heading-title elementor-size-xxl">About GMac</h1> </div>
</div>
<div data-id="of8ru4f" class="elementor-element elementor-element-of8ru4f animated fadeInUp elementor-invisible elementor-widget elementor-widget-text-editor" data-settings="{"_animation":"fadeInUp"}" data-element_type="text-editor.default">
<div class="elementor-widget-container">
<div class="elementor-text-editor elementor-clearfix"><h3><em><span style="color: #ffff00;">On this page you can:</span></em></h3><ul><li>Learn about the purpose of GMac and its possible uses.</li><li>Read the main features of GMac for coding with Geometric Algebra, scripting, and prototyping.</li><li>Understand the requirements of using GMac and where to download it from.</li><li>Find a short description of GMac’s various components and links to the GMac User Guides.</li></ul><div id="SL_balloon_obj" style="display: block;"><div id="SL_button" class="SL_ImTranslatorLogo" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/imtranslator-s.png'); display: none; opacity: 1;"> </div><div id="SL_shadow_translation_result2" style="display: none;"> </div><div id="SL_shadow_translator" style="display: none;"><div id="SL_planshet"><div id="SL_arrow_up" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/up.png');"> </div><div id="SL_Bproviders"><div id="SL_P0" class="SL_BL_LABLE_ON" title="Google">G</div><div id="SL_P1" class="SL_BL_LABLE_ON" title="Microsoft">M</div><div id="SL_P2" class="SL_BL_LABLE_ON" title="Translator">T</div></div><div id="SL_alert_bbl" style="display: none;"> </div><div id="SL_TB"><table id="SL_tables" cellspacing="1"><tbody><tr><td class="SL_td" align="right" width="10%"><input id="SL_locer" title="Lock-in language" type="checkbox" /></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_from" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/select.png') 100% 0px no-repeat #ffffff;"><option value="auto">Detect language</option><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="be">Belarusian</option><option value="bn">Bengali</option><option value="bs">Bosnian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="ceb">Cebuano</option><option value="ny">Chichewa</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian Creole</option><option value="ha">Hausa</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hmn">Hmong</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="ig">Igbo</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="jw">Javanese</option><option value="kn">Kannada</option><option value="kk">Kazakh</option><option value="km">Khmer</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="mg">Malagasy</option><option value="ms">Malay</option><option value="ml">Malayalam</option><option value="mt">Maltese</option><option value="mi">Maori</option><option value="mr">Marathi</option><option value="mn">Mongolian</option><option value="my">Myanmar (Burmese)</option><option value="ne">Nepali</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="pa">Punjabi</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="st">Sesotho</option><option value="si">Sinhala</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="so">Somali</option><option value="es">Spanish</option><option value="su">Sundanese</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="tg">Tajik</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="uz">Uzbek</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option><option value="yo">Yoruba</option><option value="zu">Zulu</option></select></td><td class="SL_td" align="center" width="3"> </td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/select.png') 100% 0px no-repeat #ffffff;"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="be">Belarusian</option><option value="bn">Bengali</option><option value="bs">Bosnian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="ceb">Cebuano</option><option value="ny">Chichewa</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option selected="selected" value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian Creole</option><option value="ha">Hausa</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hmn">Hmong</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="ig">Igbo</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="jw">Javanese</option><option value="kn">Kannada</option><option value="kk">Kazakh</option><option value="km">Khmer</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="mg">Malagasy</option><option value="ms">Malay</option><option value="ml">Malayalam</option><option value="mt">Maltese</option><option value="mi">Maori</option><option value="mr">Marathi</option><option value="mn">Mongolian</option><option value="my">Myanmar (Burmese)</option><option value="ne">Nepali</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="pa">Punjabi</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="st">Sesotho</option><option value="si">Sinhala</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="so">Somali</option><option value="es">Spanish</option><option value="su">Sundanese</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="tg">Tajik</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="uz">Uzbek</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option><option value="yo">Yoruba</option><option value="zu">Zulu</option></select></td><td class="SL_td" align="center" width="5%"> </td><td class="SL_td" align="center" width="8%"> </td><td class="SL_td" align="center" width="8%"> </td><td class="SL_td" align="center" width="8%"> </td><td class="SL_td" align="center" width="8%"> </td><td class="SL_td" align="right" width="15%"> </td></tr></tbody></table></div></div><div id="SL_shadow_translation_result" style="visibility: visible;"> </div><div id="SL_loading" class="SL_loading" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/loading.gif');"> </div><div id="SL_player2"> </div><div id="SL_alert100">Text-to-speech function is limited to 200 characters</div><div id="SL_Balloon_options" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/bg3.png') #ffffff;"><div id="SL_arrow_down" style="background: url('chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/img/util/down.png');"> </div><table id="SL_tbl_opt" width="100%"><tbody><tr><td align="center" width="5%"><input id="SL_BBL_locer" title="Show Translator's button 3 second(s)" checked="checked" type="checkbox" /></td><td align="left" width="5%"> </td><td align="center" width="70%"><a class="SL_options" title="Show options" href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/html/options/options.html?bbl" target="_blank" rel="noopener">Options</a> : <a class="SL_options" title="Translation History" href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/html/options/options.html?hist" target="_blank" rel="noopener">History</a> : <a class="SL_options" title="ImTranslator Feedback" href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/content/html/options/options.html?feed" target="_blank" rel="noopener">Feedback</a> : <a class="SL_options" title="Make a small contribution" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GD9D8CPW8HFA2" target="_blank" rel="noopener">Donate</a></td><td align="right" width="15%"><span id="SL_Balloon_Close" title="Close">Close</span></td></tr></tbody></table></div></div></div></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<p> </p>
<div id="attachment_1060" style="width: 310px" class="wp-caption alignleft"><a href="/wp-content/uploads/2015/06/Using-GMac.png"><img class="wp-image-1060 size-medium" src="/wp-content/uploads/2015/06/Using-GMac-300x226.png" alt="Using GMac" width="300" height="226" srcset="/wp-content/uploads/2015/06/Using-GMac-300x226.png 300w, /wp-content/uploads/2015/06/Using-GMac-768x578.png 768w, /wp-content/uploads/2015/06/Using-GMac-1024x771.png 1024w, /wp-content/uploads/2015/06/Using-GMac.png 1223w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Using GMac</p></div>
<p><em><strong>GMac</strong></em>, short for “<em><strong>G</strong>eometric<strong> Mac</strong>ro</em>“, is a .NET based software system that allows implementing geometric models and algorithms based on <a href="https://en.wikipedia.org/wiki/Geometric_algebra">Geometric Algebra</a> (GA) in arbitrary target programming languages.</p>
<p>The core part of <em><strong>GMac</strong></em> is the <em><strong>GMacCompiler</strong></em>, a transcompiler or <a href="https://en.wikipedia.org/wiki/Source-to-source_compiler">source-to-source translator</a> that accepts code written in a simple high-level domain-specific language (<em><strong>GMacDSL</strong></em>), and can be configured using <em><strong>GMacAPI</strong></em> to output very efficient low-level code in any desired target programming language. The ultimate goal behind creating <em><strong>GMac</strong></em> is to allow <a href="/index.php/2015/09/18/ga-computing2/" class="broken_link">Geometric Computing</a> (GC) implementations to be as flexible, organized, and efficient as possible. Although <em><strong>GMac</strong></em> is originally created using C#, it can be configured to generate a set of textual code files in any desired structure using an API that is accessible through any .NET language including C++, C#, VB.NET, F#, and IronPython among others.</p>
<p>The main ideas behind <em><strong>GMac</strong> </em>date back to my 2010 Ph.D. dissertation that can be found at <a href="https://arxiv.org/abs/1607.04767" target="_blank" rel="noopener">https://arxiv.org/abs/1607.04767</a>. <em><strong>GMac</strong></em> is intended to be a sophisticated software system for implementing Geometric Algebra algorithms in an efficient manner to narrow the gap between practical software engineering and GA-based geometric modeling in order to enable GA to gain wider acceptance among software designers, as well as researchers. I strongly believe Geometric Algebra rightly deserves to become the main mathematical language for teaching and representing geometric models in computer science and engineering in the very near future.</p>
<hr />
<div class="su-animate" style="visibility:hidden;-webkit-animation-duration:2s;-webkit-animation-delay:0s;animation-duration:2s;animation-delay:0s;" data-animation="fadeInUp" data-duration="2" data-delay="0">
<div class="su-box su-box-style-soft" style="border-color:#292929;border-radius:10px"><div class="su-box-title" style="background-color:#333333;color:#FFFFFF;border-top-left-radius:8px;border-top-right-radius:8px">GMac Users</div><div class="su-box-content su-clearfix" style="border-bottom-left-radius:8px;border-bottom-right-radius:8px">
<p><em><strong>GMac</strong></em> is a “geometric computing design aid” that can be efficiently and creatively used to implement important aspects of a wide spectrum of geometric computing applications. If we take a look at the <em><strong>GMac</strong></em> system diagram we can see 4 types of users; they are actually 4 roles that an actual user may have two or more of them at once:</p>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1067 size-full" src="/wp-content/uploads/2015/06/User.png" alt="User" width="128" height="128" srcset="/wp-content/uploads/2015/06/User.png 128w, /wp-content/uploads/2015/06/User-150x150.png 150w, /wp-content/uploads/2015/06/User-160x160.png 160w, /wp-content/uploads/2015/06/User-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>Geometric Computing System User</strong>: The end-goal of any geometric computing system is to provide computational services to its users. But the kinds of interfaces, computations, and data exchange in a GC system are geometric in essence. Examples of GC systems include computational geometry, computer graphics, CAD\CAM, robotics, computer vision, engineering and many others. Each system is unique in its specific requirements and possible users but they all enjoy a common base of geometric ideas deserving a unified development methodology; just like <a href="https://en.wikipedia.org/wiki/Data-driven_programming">data-driven</a> and <a href="https://en.wikipedia.org/wiki/Object-oriented_programming">object-oriented</a> software design and tools serve many diverse areas of computing.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1068 size-full" src="/wp-content/uploads/2015/06/Designer.png" alt="Designer" width="128" height="128" srcset="/wp-content/uploads/2015/06/Designer.png 128w, /wp-content/uploads/2015/06/Designer-150x150.png 150w, /wp-content/uploads/2015/06/Designer-160x160.png 160w, /wp-content/uploads/2015/06/Designer-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>Geometric Computing System Designer</strong>: To satisfy the geometric computing requirements of the users, the GC system designer must have a set of methods and tools to ease the design and development of his GC system. <em><strong>GMac</strong></em> is one such tool that uses well-established software engineering techniques (a <a href="https://en.wikipedia.org/wiki/Domain-specific_language">DSL</a>-based <a href="https://en.wikipedia.org/wiki/Optimizing_compiler">optimizing compiler</a> with a <a href="https://en.wikipedia.org/wiki/Automatic_programming">configurable text generator</a>) based on the fascinating and universal mathematical language of Geometric Algebra to translate many abstract geometric ideas into optimized code that is both efficient to execute and flexible to shape into the final GC system design.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1069 size-full" src="/wp-content/uploads/2015/06/GA-Model.png" alt="GA Model" width="128" height="128" srcset="/wp-content/uploads/2015/06/GA-Model.png 128w, /wp-content/uploads/2015/06/GA-Model-150x150.png 150w, /wp-content/uploads/2015/06/GA-Model-160x160.png 160w, /wp-content/uploads/2015/06/GA-Model-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>Geometric Algebra Model Designer</strong>: The GA model designer is a person having a geometric idea and wishing to investigate, interact, and eventually implement it. The use of Geometric Algebra as a universal model for geometry goes most of the way into these goals. What remains is translating GA equations and algebraic processes into a working prototype using <em><strong>GMac</strong></em>‘s simple and effective GA-based domain-specific language <em><strong>GMacDSL</strong></em>. The resulting intermediate <em><strong>GMacAST</strong></em> can be then used to provide interactive scripting for the GA model designer\user and structured code generation for the GC system designer.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1070 size-full" src="/wp-content/uploads/2015/06/Geometry.png" alt="Geometry" width="128" height="128" srcset="/wp-content/uploads/2015/06/Geometry.png 128w, /wp-content/uploads/2015/06/Geometry-150x150.png 150w, /wp-content/uploads/2015/06/Geometry-160x160.png 160w, /wp-content/uploads/2015/06/Geometry-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>Geometric Algebra Model User</strong>: Often a GA model is general enough that it can be used to interactively investigate many geometric ideas at once. For example, the whole of the very powerful <a href="https://www.cinderella.de/tiki-index.php">Cinderella</a> interactive geometry system is based on a single GA model; the 2D conformal geometry model on complex scalars. After designing the GA model any number of users can use it as a prototype for studying geometric ideas expressible by that model.</p>
</div><div class="clear"></div>
</div></div>
</div>
<hr />
<div class="su-animate" style="visibility:hidden;-webkit-animation-duration:2s;-webkit-animation-delay:0s;animation-duration:2s;animation-delay:0s;" data-animation="fadeInUp" data-duration="2" data-delay="0">
<p id="features"><div class="su-box su-box-style-soft" style="border-color:#292929;border-radius:10px"><div class="su-box-title" style="background-color:#333333;color:#FFFFFF;border-top-left-radius:8px;border-top-right-radius:8px">GMac Features</div><div class="su-box-content su-clearfix" style="border-bottom-left-radius:8px;border-bottom-right-radius:8px">
<div class='content-column one_sixth'><p><img class="aligncenter wp-image-1902" src="/wp-content/uploads/2016/12/Features.png" alt="features" width="128" height="116" /></p></div>
<div class='content-column five_sixth last_column'><h4>Coding with Geometric Algebra:</h4>
<ul>
<li>A simple yet powerful computational Domain Specific Language, <a href="/index.php/gmacdsl-guide/"><em><strong>GMacDSL</strong></em></a>, that exposes the power of Geometric Algebra to geometric computing software applications.</li>
<li>Using <em><strong>GMac</strong></em>, the user can define any number of fixed interrelated frames up to 15 dimensions of any signature.</li>
<li>Through <em><strong>GMacDSL</strong></em>, the user can define combinatorial nested structures containing multivectors and scalar values to hold basic geometric computing blocks of data.</li>
<li><em><strong>GMacDSL</strong></em> provides a rich set of multivector operators to construct sophisticated computational symbolic expressions.</li>
<li><em><strong>GMacDSL</strong></em> gives the user the ability to define Geometric Macros, a simple form of parameterized geometric computing procedures based on Geometric Algebra multivector expressions. Geometric macros can call each other to provide simple encapsulation and code reuse capabilities.</li>
<li>The <em><strong>GMacDSL</strong></em> user code is automatically parsed to an Abstract Syntax Tree; stored in the <a href="/index.php/gmacast-guide/"><em><strong>GMacAST</strong></em></a> component classes. The <em><strong>GMacAST</strong></em> structure is specifically designed to be effective when used for later scripting and code generation tasks by including comprehensive information about the semantics and relations of the code elements defined in the <em><strong>GMacDSL</strong></em> code.</li>
</ul>
<h4>Scripting and Prototyping:</h4>
<ul>
<li>The <a href="/index.php/gmac-scripting-guide/"><em><strong>GMac Scripting</strong></em></a> language is a syntactically simplified version of the powerful <a href="https://msdn.microsoft.com/en-us/library/kx37x362(v=vs.100).aspx">C# 4.0 language</a> that can integrate C#, <em><strong>GMacDSL</strong></em>, and the <a href="http://www.wolfram.com/language/">Mathematica Language</a> into a single scripting framework with limitless potential for geometric computing applications.</li>
<li>The <em><strong>GMac Scripting</strong></em> engine can communicate with Mathematica to perform symbolic, as well as numeric, manipulations and read the results as symbolic expressions, text, or images through the powerful capabilities of the Mathematica computer algebra system.</li>
<li>The <em><strong>GMac Scripting</strong></em> engine can access <em><strong>GMacAST</strong></em> structures to perform multivector manipulations and explore the underlying <em><strong>GMacDSL</strong></em> code effectively. This provides a valuable toolset for geometric computing application prototyping using Geometric Algebra at the core.</li>
<li>The <em><strong>GMac Scripting</strong></em> engine glues everything together through C#, a powerful object-oriented general-purpose strongly-typed programming language. C# capabilities, like <a href="http://www.blackwasp.co.uk/LinqToObjectsTutorial.aspx">Linq</a>, <a href="http://www.blackwasp.co.uk/RegexArticles.aspx">Regular Expressions</a>, .<a href="http://www.blackwasp.co.uk/DotNetFrameworkArticles.aspx">NET Framework Access</a>, etc. can be used at various levels of complexity to perform simple-to-sophisticated prototyping tasks including the integration and coordination of <em><strong>GMacDSL</strong></em> code and Mathematica symbolic and numeric manipulations.</li>
</ul>
<h4>Included Software Components:</h4>
<ul>
<li><em><strong>GMac </strong></em>includes the powerful text composition library <a href="/index.php/textcomposerlib-guide/"><em><strong>TextComposerLib</strong></em></a> with all its capabilities intended for structured text generation including, but not limited to, code generation for any desired application.</li>
<li><em><strong>GMac </strong></em>also includes a simple wrapper, called <a href="/index.php/gmac-math-guide/"><em><strong>SymbolicInterface</strong></em></a>, around <a href="https://reference.wolfram.com/language/NETLink/tutorial/Overview.html">Wolfram Mathematica .NET/Link</a> interface. The <em><strong>SymbolicInterface</strong></em> component classes can be used to interface any desired .NET application with Wolfram Mathematica (as a backend symbolic processor) with ease through a fully managed object-oriented interface.</li>
<li>The <em><strong><a href="/index.php/gmacapi-guide/">GMacAPI</a></strong></em> component classes are designed for software engineers to be effective at creating full software libraries for geometric computing applications based on Geometric Algebra models.</li>
</ul>
<h4>Documentation:</h4>
<ul>
<li>Comprehensive <a href="/index.php/about-gmac/">online user guides</a> providing many examples and explanations.</li>
<li>Freely downloadable GMac samples providing more <em><strong>GMac</strong></em> use cases that will be updated regularly (<em><strong>coming</strong><strong> soon</strong></em>).</li>
<li>The <a href="/index.php/blog/">GA Explorer Blog</a> contains ideas and investigations that use <em><strong>GMac</strong></em> to explore Geometric Algebra constructions and applications.</li>
</ul></div><div class='clear_column'></div>
</div></div>
</div>
<hr />
<div class="su-animate" style="visibility:hidden;-webkit-animation-duration:2s;-webkit-animation-delay:0s;animation-duration:2s;animation-delay:0s;" data-animation="fadeInUp" data-duration="2" data-delay="0">
<p id="requirements"><div class="su-box su-box-style-soft" style="border-color:#292929;border-radius:10px"><div class="su-box-title" style="background-color:#333333;color:#FFFFFF;border-top-left-radius:8px;border-top-right-radius:8px">GMac Requirements</div><div class="su-box-content su-clearfix" style="border-bottom-left-radius:8px;border-bottom-right-radius:8px">
<div class='content-column one_sixth'><p><img class="aligncenter wp-image-3641" src="/wp-content/uploads/2015/06/Checklist-Icon-300x300.jpg" alt="Checklist-Icon-300x300" width="128" height="128" srcset="/wp-content/uploads/2015/06/Checklist-Icon-300x300.jpg 300w, /wp-content/uploads/2015/06/Checklist-Icon-300x300-150x150.jpg 150w, /wp-content/uploads/2015/06/Checklist-Icon-300x300-160x160.jpg 160w, /wp-content/uploads/2015/06/Checklist-Icon-300x300-320x320.jpg 320w" sizes="(max-width: 128px) 100vw, 128px" /></p></div>
<div class='content-column five_sixth last_column'><p>To use <em><strong>GMac</strong></em> you need to have a Windows 7 or later operating system and the .NET Framework version 4.0. <em><strong>GMac</strong></em> depends on Wolfram Mathematica for its symbolic computations so you also need to install <strong>Mathematica version 7 or later</strong>. To take advantage of <em><strong>GMacAPI</strong></em> and its code generation capabilities you need to use <em><strong>GMac</strong></em> as a .NET components library so you need a .NET development environment like Visual Studio 2010 or later to use <em><strong>GMac</strong></em> in your .NET projects. For more information about installing GMac, you can read the <a href="/index.php/gmac-system-guide/"><em><strong>GMac System Guide</strong></em></a>. For detailed information about all aspects of GMac, you can read the online <em><strong><a href="/index.php/about-gmac/">GMac Guides</a></strong></em>.</p></div><div class='clear_column'></div>
</div></div>
</div>
<hr />
<div class="su-animate" style="visibility:hidden;-webkit-animation-duration:2s;-webkit-animation-delay:0s;animation-duration:2s;animation-delay:0s;" data-animation="fadeInUp" data-duration="2" data-delay="0">
<p id="downloads"><div class="su-box su-box-style-soft" style="border-color:#292929;border-radius:10px"><div class="su-box-title" style="background-color:#333333;color:#FFFFFF;border-top-left-radius:8px;border-top-right-radius:8px">GMac Downloads</div><div class="su-box-content su-clearfix" style="border-bottom-left-radius:8px;border-bottom-right-radius:8px">
<div class='content-column one_sixth'><p><img class="aligncenter wp-image-1904" src="/wp-content/uploads/2016/12/Downloads_3.png" alt="downloads_3" width="128" height="128" srcset="/wp-content/uploads/2016/12/Downloads_3.png 512w, /wp-content/uploads/2016/12/Downloads_3-150x150.png 150w, /wp-content/uploads/2016/12/Downloads_3-300x300.png 300w, /wp-content/uploads/2016/12/Downloads_3-160x160.png 160w, /wp-content/uploads/2016/12/Downloads_3-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></p></div>
<div class='content-column five_sixth last_column'><p>You can download the latest version of <em><strong>GMac</strong></em> source code from GitHub at <a href="https://github.com/ga-explorer/GMac" target="_blank" rel="noopener">https://github.com/ga-explorer/GMac</a>.</p></div><div class='clear_column'></div>
</div></div>
</div>
<hr />
<div class="su-animate" style="visibility:hidden;-webkit-animation-duration:2s;-webkit-animation-delay:0s;animation-duration:2s;animation-delay:0s;" data-animation="fadeInUp" data-duration="2" data-delay="0">
<div class="su-box su-box-style-soft" style="border-color:#292929;border-radius:10px"><div class="su-box-title" style="background-color:#333333;color:#FFFFFF;border-top-left-radius:8px;border-top-right-radius:8px">GMac Components</div><div class="su-box-content su-clearfix" style="border-bottom-left-radius:8px;border-bottom-right-radius:8px">
<p>The various <em><strong>GMac</strong></em> system components will never be complete, they are under continuous development to mature into an incrementally useful system. Some features will be added in time, but the basic architecture described here will remain unchanged:</p>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1076 size-full" src="/wp-content/uploads/2015/06/Compiler.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/Compiler.png 128w, /wp-content/uploads/2015/06/Compiler-150x150.png 150w, /wp-content/uploads/2015/06/Compiler-160x160.png 160w, /wp-content/uploads/2015/06/Compiler-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMacCompiler</strong>: This is the core of GMac, a source-to-source compiler that can generate an Abstract Syntax Tree (<em><strong>GMacAST</strong></em>) from a GA-based Domain-Specific Language (<em><strong>GMacDSL</strong></em>) code. The <em><strong>GMacCompiler</strong></em> is an optimizing transcompiler; it can perform high-level domain-specific optimizations backed up by a powerful Computer Algebra System (CAS), like Mathematica or Python’s SymPy for example, to generate the desired code. The <em><strong>GMacCompiler</strong></em> has two sub-components:</p>
<ul>
<li><strong>The GMacCompiler Front End</strong>: The main role of the front end is to translate <em><strong>GMacDSL</strong></em> code into a <em><strong>GMacAST</strong></em> structure. The front end follows the traditional lexer>parser>semantic analyzer sequence of compiler front ends. It interacts with the <em><strong>GMacIDE</strong></em>, the user interface of <em><strong>GMac</strong></em>, by accepting <em><strong>GMacDSL</strong></em> code and reporting any errors in the code through the <em><strong>GMacIDE</strong></em> interface. It also occasionally requests symbolic computations from the CAS to complete the translation process successfully.</li>
<li><strong>The GMacCompiler Back End</strong>: The back end is responsible for generating text code from the <em><strong>GMacAST</strong></em> structure translated from <em><strong>GMacDSL</strong></em> code. The generation process is highly configurable through an <a href="https://en.wikipedia.org/wiki/Application_programming_interface">Application Programming Interface</a> (<em><strong>GMacAPI</strong></em>). Using <em><strong>GMacAPI</strong></em> we can reshape with full control the information abstractly encoded in the <em><strong>GMacAST</strong></em> structure into text files having any desired folder, file, and text structure. We can select a target language to convert <em><strong>GMacDSL</strong></em> macros into executable code in a given target language. The <em><strong>GMacAPI</strong></em> infrastructure can be extended easily to add more target languages as desired.</li>
</ul>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1079 size-full" src="/wp-content/uploads/2015/06/DSL-Code1.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/DSL-Code1.png 128w, /wp-content/uploads/2015/06/DSL-Code1-150x150.png 150w, /wp-content/uploads/2015/06/DSL-Code1-160x160.png 160w, /wp-content/uploads/2015/06/DSL-Code1-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMacDSL</strong>: The use of GA for expressing geometric ideas is very effective. <em><strong>GMacDSL</strong></em> is designed to be a good and simple expressive language for general GA operations on multivectors in any arbitrary GA model of geometry. <em><strong>GMacDSL</strong></em> is not <a href="https://en.wikipedia.org/wiki/Turing_completeness">Turing-Complete</a>; it has no looping or conditional branching constructs. These constructs are left for the main GC system application code and the <em><strong>GMac</strong></em> scripting engine. <em><strong>GMacDSL</strong></em> primarily focuses on representing geometric objects in two main ways:</p>
<ul>
<li>Direct representation using multivectors of some GA frame.</li>
<li>Non-recursive combinatorial structures of multivectors and scalars.</li>
</ul>
<p><em><strong>GMacDSL</strong></em> also focuses on implementing GA operations on these two types of representations using Geometric Macros: solid parametric blocks containing a sequence of simple commands that assign GA computational expressions to local and output variables of the block. The <em><strong>GMacCompiler</strong></em> front end translates <em><strong>GMacDSL</strong></em> code into <em><strong>GMacAST</strong></em> structures that can be used for interactive scripting through <em><strong>GMacIDE</strong></em>, or for configurable code generation through the <em><strong>GMacCompiler</strong></em> back end and <em><strong>GMacAPI</strong></em>.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1080 size-full" src="/wp-content/uploads/2015/06/GMacAST.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/GMacAST.png 128w, /wp-content/uploads/2015/06/GMacAST-150x150.png 150w, /wp-content/uploads/2015/06/GMacAST-160x160.png 160w, /wp-content/uploads/2015/06/GMacAST-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMacAST</strong>: When a GA model encoded in <em><strong>GMacDSL</strong></em> has compiled into an Abstract Syntax Tree it is ready for many interesting uses through scripting and code generation. The <em><strong>GMacAST</strong></em> is a set of simple .NET classes that are written in C# but accessible through any .NET language to hold the minimum necessary abstract information for code generation and scripting interaction processes. The <em><strong>GMacAST</strong></em> is accessible through <em><strong>GMacIDE</strong></em> and <em><strong>GMacAPI</strong></em>. Learning the full structure of <em><strong>GMacAST</strong></em> as provided by the <em><strong>GMacAST</strong></em> Guide is necessary for effective use of the <em><strong>GMac</strong></em> system.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1084 size-full" src="/wp-content/uploads/2015/06/GMac-Scripting.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/GMac-Scripting.png 128w, /wp-content/uploads/2015/06/GMac-Scripting-150x150.png 150w, /wp-content/uploads/2015/06/GMac-Scripting-160x160.png 160w, /wp-content/uploads/2015/06/GMac-Scripting-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMac Scripting</strong>: After we have a <em><strong>GMacAST</strong></em> we can easily interact with it computationally through the <em><strong>GMac</strong></em> scripting engine to test the GA model we encoded with <em><strong>GMacDSL</strong></em>. Scripting can provide many insights into the GA model prototype we created. Scripting also provides more computational power to GA models implemented in the non-Turing-Complete <em><strong>GMacDSL</strong></em> like looping, conditional branching, and others.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1081 size-full" src="/wp-content/uploads/2015/06/GMacAPI.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/GMacAPI.png 128w, /wp-content/uploads/2015/06/GMacAPI-150x150.png 150w, /wp-content/uploads/2015/06/GMacAPI-160x160.png 160w, /wp-content/uploads/2015/06/GMacAPI-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMacAPI</strong>: The <em><strong>GMacCompiler</strong></em> backend can be configured using <em><strong>GMacAPI</strong></em> to generate efficient text code in any desired language. <em><strong>GMacAPI</strong></em> is a set of .NET classes created with C# but usable by any .NET language (C++, C#, VB.NET, F#, IronPython, etc.) to specify how to use the information and geometric macros encoded in the <em><strong>GMacAST</strong></em> structure to generate files with desired structure in terms of folders, files, and text. <em><strong>GMacAPI</strong></em> has a set of classes specifically designed for easily controllable template-based or free text generation from arbitrary sources. <em><strong>GMacAPI</strong></em> can also specify binding patterns to associate target language variables or constant values with parts of input parameters to the geometric macros. The net result is a flexible, powerful, and efficient means for implementing configurable low-level code generation from <em><strong>GMacDSL</strong></em> GA-based high-level code.</p>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1075 size-full" src="/wp-content/uploads/2015/06/User-Interface.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/User-Interface.png 128w, /wp-content/uploads/2015/06/User-Interface-150x150.png 150w, /wp-content/uploads/2015/06/User-Interface-160x160.png 160w, /wp-content/uploads/2015/06/User-Interface-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMacIDE</strong>: This is the main user interface of <em><strong>GMac</strong></em> where we can write <em><strong>GMacDSL</strong></em> code, interact with the <em><strong>GMacCompiler</strong></em>, and use the <em><strong>GMac</strong></em> scripting engine. The main interaction services <em><strong>GMacIDE</strong></em> can provide are:</p>
<ul>
<li>Write <em><strong>GMacDSL</strong></em> source code with the help of a project management and code highlighting capable interface.</li>
<li>Compile <em><strong>GMacDSL</strong></em> code into a <em><strong>GMacAST</strong></em> structure and report any errors in the code.</li>
<li>Explore the details of the compiled <em><strong>GMacAST</strong></em> in various ways.</li>
<li>Explore a single high-level geometric macro to see how it translates into low-level code with some statistics on the intermediate optimizations performed.</li>
<li>Interact with the compiled <em><strong>GMacAST</strong></em> computationally through the <em><strong>GMac</strong></em> scripting engine.</li>
<li>Provide an extendable interface for generating a set of useful code libraries using a given <em><strong>GMacAST</strong></em> structure.</li>
</ul>
</div><div class="clear"></div>
<div class="grid one-fifth">
<p><strong><img class="aligncenter wp-image-1082 size-full" src="/wp-content/uploads/2015/06/GMac-Guides.png" alt="" width="128" height="128" srcset="/wp-content/uploads/2015/06/GMac-Guides.png 128w, /wp-content/uploads/2015/06/GMac-Guides-150x150.png 150w, /wp-content/uploads/2015/06/GMac-Guides-160x160.png 160w, /wp-content/uploads/2015/06/GMac-Guides-320x320.png 320w" sizes="(max-width: 128px) 100vw, 128px" /></strong></p>
</div>
<div class="grid four-fifth last">
<p><strong>GMac Guides</strong>: GMac is a sophisticated compiler and code composition system based on Geometric Algebra. In order to fully understand and effectively use the GMac system, you need to study the <a href="/index.php/gmac-guides-index/" target="_blank" rel="noopener"><em><strong>GMac</strong><strong> Guides</strong></em></a> carefully.</p>
<p>In addition to <em><strong>GMac</strong></em> guides, we will provide practical examples of using GMac for real geometric computing problems as tutorials and illustrations of the <em><strong>GMac</strong></em> system operation. You can find these examples in the <em><strong><a href="/index.php/gmac-samples/" target="_blank" rel="noopener">GMac Samples</a></strong></em> page that will contain full source code and updated as new samples are created.</p>
</div><div class="clear"></div>
</div></div>
</div>
<div class="addtoany_share_save_container addtoany_content addtoany_content_bottom"><div class="a2a_kit a2a_kit_size_24 addtoany_list" data-a2a-url="/" data-a2a-title="About GMac"><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=%2F&linkname=About%20GMac" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=%2F&linkname=About%20GMac" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_plus" href="https://www.addtoany.com/add_to/google_plus?linkurl=%2F&linkname=About%20GMac" title="Google+" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=%2F&linkname=About%20GMac" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share"></a></div></div> <nav class="pagination group">
</nav><!--/.pagination-->
<div class="clear"></div>
</div><!--/.entry-->
</article>
</div><!--/.pad-->
</section><!--/.content-->
</div><!--/.main-inner-->
</div><!--/.main-->
</div><!--/.container-inner-->
</div><!--/.container-->
<footer id="footer">
<section class="container" id="footer-widgets">
<div class="container-inner">
<div class="pad group">
<div class="footer-widget-1 grid one-full last">
<div id="text-2" class="widget widget_text"> <div class="textwidget"> <div class="elementor elementor-3665">
<div class="elementor-inner">
<div class="elementor-section-wrap">
<section data-id="7bf0117c" class="elementor-element elementor-element-7bf0117c elementor-section-boxed elementor-section-height-default elementor-section-height-default animated fadeIn elementor-invisible elementor-section elementor-top-section" data-settings="{"background_background":"classic","animation":"fadeIn"}" data-element_type="section">
<div class="elementor-background-overlay"></div>
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-row">
<div data-id="ffabcda" class="elementor-element elementor-element-ffabcda elementor-column elementor-col-100 elementor-top-column" data-element_type="column">
<div class="elementor-column-wrap elementor-element-populated">
<div class="elementor-widget-wrap">
<div data-id="50b16ba1" class="elementor-element elementor-element-50b16ba1 elementor-widget elementor-widget-image" data-element_type="image.default">
<div class="elementor-widget-container">
<div class="elementor-image">
<a href="/wp-content/uploads/2015/06/fatiha-square-white_cr.jpg" data-elementor-open-lightbox="" target="_blank">
<img width="1380" height="138" src="/wp-content/uploads/2017/11/GA-Explorer-Footer-v2.jpg" class="elementor-animation-shrink attachment-full size-full" alt="" srcset="/wp-content/uploads/2017/11/GA-Explorer-Footer-v2.jpg 1380w, /wp-content/uploads/2017/11/GA-Explorer-Footer-v2-300x30.jpg 300w, /wp-content/uploads/2017/11/GA-Explorer-Footer-v2-768x77.jpg 768w, /wp-content/uploads/2017/11/GA-Explorer-Footer-v2-1024x102.jpg 1024w" sizes="(max-width: 1380px) 100vw, 1380px" /> </a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</div> </div>
</div><!--/.pad-->
</div><!--/.container-inner-->
</section><!--/.container-->
<section class="container" id="footer-bottom">
<div class="container-inner">
<a id="back-to-top" href="#"><i class="fas fa-angle-up"></i></a>
<div class="pad group">
<div class="grid one-half">
<div id="copyright">
<p>GMac Guides © 2018. All Rights Reserved.</p>
</div><!--/#copyright-->
<div id="credit" style="">
<p>Powered by <a class="fab fa-wordpress" title="Powered by WordPress" href="https://wordpress.org/" target="_blank"></a> - Designed with the <a href="https://presscustomizr.com/hueman/" title="Hueman theme">Hueman theme</a></p>
</div><!--/#credit-->
</div>
<div class="grid one-half last">
</div>
</div><!--/.pad-->
</div><!--/.container-inner-->
</section><!--/.container-->
</footer><!--/#footer-->
</div><!--/#wrapper-->
<link rel='stylesheet' id='elementor-frontend-css' href='/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=2.0.15' type='text/css' media='all' />
<link rel='stylesheet' id='elementor-post-3416-css' href='/wp-content/uploads/elementor/css/post-3416.css?ver=1528313407' type='text/css' media='all' />
<link rel='stylesheet' id='elementor-post-3665-css' href='/wp-content/uploads/elementor/css/post-3665.css?ver=1528313649' type='text/css' media='all' />
<link rel='stylesheet' id='su-box-shortcodes-css' href='/wp-content/plugins/shortcodes-ultimate/assets/css/box-shortcodes.css?ver=5.0.4' type='text/css' media='all' />
<link rel='stylesheet' id='animate-css' href='/wp-content/plugins/shortcodes-ultimate/assets/css/animate.css?ver=3.1.1' type='text/css' media='all' />
<link rel='stylesheet' id='elementor-icons-css' href='/wp-content/plugins/elementor/assets/lib/eicons/css/elementor-icons.min.css?ver=3.3.0' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='/wp-content/plugins/elementor/assets/lib/font-awesome/css/font-awesome.min.css?ver=4.7.0' type='text/css' media='all' />
<link rel='stylesheet' id='elementor-animations-css' href='/wp-content/plugins/elementor/assets/lib/animations/animations.min.css?ver=2.0.15' type='text/css' media='all' />
<link rel='stylesheet' id='lae-frontend-styles-css' href='/wp-content/plugins/addons-for-elementor/assets/css/lae-frontend.css?ver=1.6' type='text/css' media='all' />
<link rel='stylesheet' id='lae-widgets-styles-css' href='/wp-content/plugins/addons-for-elementor/assets/css/lae-widgets.css?ver=1.6' type='text/css' media='all' />
<link rel='stylesheet' id='lae-icomoon-styles-css' href='/wp-content/plugins/addons-for-elementor/assets/css/icomoon.css?ver=1.6' type='text/css' media='all' />
<link rel='stylesheet' id='lae-sliders-styles-css' href='/wp-content/plugins/addons-for-elementor/assets/css/sliders.css?ver=1.6' type='text/css' media='all' />
<link rel='stylesheet' id='elementor-global-css' href='/wp-content/uploads/elementor/css/global.css?ver=1528313650' type='text/css' media='all' />
<script type='text/javascript'>
/* <![CDATA[ */
var wpcf7 = {"apiSettings":{"root":"\/index.php\/wp-json\/contact-form-7\/v1","namespace":"contact-form-7\/v1"},"recaptcha":{"messages":{"empty":"Please verify that you are not a robot."}}};
/* ]]> */
</script>
<script type='text/javascript' src='/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=5.0.2'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/eael-scripts.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/fancy-text.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/countdown.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/masonry.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/load-more.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/social-feeds/codebird.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/social-feeds/doT.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/social-feeds/moment.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/social-feeds/jquery.socialfeed.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/mixitup.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/js/jquery.magnific-popup.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/essential-addons-for-elementor-lite/assets/slick/slick.min.js?ver=1.0'></script>
<script type='text/javascript' src='/wp-content/plugins/hueman-addons/addons/assets/front/js/jQuerySharrre.min.js?ver=4.9.6'></script>
<script type='text/javascript' src='/wp-includes/js/underscore.min.js?ver=1.8.3'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var HUParams = {"_disabled":[],"SmoothScroll":{"Enabled":true,"Options":{"touchpadSupport":false}},"centerAllImg":"1","timerOnScrollAllBrowsers":"1","extLinksStyle":"","extLinksTargetExt":"1","extLinksSkipSelectors":{"classes":["btn","button"],"ids":[]},"imgSmartLoadEnabled":"","imgSmartLoadOpts":{"parentSelectors":[".container .content",".container .sidebar","#footer","#header-widgets"],"opts":{"excludeImg":[".tc-holder-img"],"fadeIn_options":100}},"goldenRatio":"1.618","gridGoldenRatioLimit":"350","sbStickyUserSettings":{"desktop":false,"mobile":false},"isWPMobile":"","menuStickyUserSettings":{"desktop":"stick_up","mobile":"stick_up"},"isDevMode":"","ajaxUrl":"\/?huajax=1","frontNonce":{"id":"HuFrontNonce","handle":"1cbabd7a98"},"userStarted":{"with":"with|3.3.21","on":{"date":"2017-10-12 21:00:09.000000","timezone_type":3,"timezone":"UTC"}},"isWelcomeNoteOn":"","welcomeContent":""};
/* ]]> */
</script>
<script type='text/javascript' src='/wp-content/themes/hueman/assets/front/js/scripts.min.js?ver=3.3.27'></script>
<script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.6'></script>
<script type='text/javascript' src='/wp-content/plugins/shortcodes-ultimate/assets/js/jquery.inview.js?ver=1.1.2'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var su_other_shortcodes = {"no_preview":"This shortcode doesn't work in live preview. Please insert it into editor and preview on the site."};
/* ]]> */
</script>
<script type='text/javascript' src='/wp-content/plugins/shortcodes-ultimate/assets/js/other-shortcodes.js?ver=5.0.4'></script>
<script type='text/javascript' src='/wp-includes/js/jquery/ui/position.min.js?ver=1.11.4'></script>
<script type='text/javascript' src='/wp-content/plugins/elementor/assets/lib/dialog/dialog.min.js?ver=4.3.2'></script>
<script type='text/javascript' src='/wp-content/plugins/elementor/assets/lib/waypoints/waypoints.min.js?ver=4.0.2'></script>
<script type='text/javascript' src='/wp-content/plugins/elementor/assets/lib/swiper/swiper.jquery.min.js?ver=3.4.2'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var elementorFrontendConfig = {"isEditMode":"","is_rtl":"","urls":{"assets":"\/wp-content\/plugins\/elementor\/assets\/"},"settings":{"page":[],"general":{"elementor_enable_lightbox_in_editor":"yes"}},"post":{"id":13,"title":"About GMac","excerpt":""}};
/* ]]> */
</script>
<script type='text/javascript' src='/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=2.0.15'></script>
<!--[if lt IE 9]>
<script src="/wp-content/themes/hueman/assets/front/js/ie/respond.js"></script>
<![endif]-->
<div id="turnkey-credit"> <div style="clear: both;"> <a href="https://www.turnkeylinux.org/wordpress">WordPress Appliance</a> - Powered by <a href="https://www.turnkeylinux.org/">TurnKey Linux</a> </div> </div></body>
</html>