220 32253 <2f08ba29-2cdd-4519-a023-208297256d08@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Jakob Riedle <jakob.riedle@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Matrices revisited
Date: Mon, 1 May 2017 06:13:49 -0700 (PDT)
Lines: 154
Approved: news@gmane.org
Message-ID: <2f08ba29-2cdd-4519-a023-208297256d08@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_2648_639839841.1493644429632"
X-Trace: blaine.gmane.org 1493644431 24141 195.159.176.226 (1 May 2017 13:13:51 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 1 May 2017 13:13:51 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCX2XNFO6MPRBDXJTTEAKGQEOZGDQAY@isocpp.org Mon May 01 15:13:47 2017
Return-path: <std-proposals+bncBCX2XNFO6MPRBDXJTTEAKGQEOZGDQAY@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pf0-f200.google.com ([209.85.192.200])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCX2XNFO6MPRBDXJTTEAKGQEOZGDQAY@isocpp.org>)
	id 1d5B98-00067r-1t
	for gclcip-std-proposals@m.gmane.org; Mon, 01 May 2017 15:13:46 +0200
Original-Received: by mail-pf0-f200.google.com with SMTP id g23sf70800622pfj.10
        for <gclcip-std-proposals@m.gmane.org>; Mon, 01 May 2017 06:13:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:message-id:subject:mime-version:x-original-sender
         :reply-to:precedence:mailing-list:list-id:x-spam-checked-in-group
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=hwxW36aG6NwEBd5VovwIKhZ4LJ5HO2enfZk6ZKGSjZY=;
        b=Daf+DpEPY76ODsdeO5ki/Y3sng84Waq//zV/AfkLEE6/5UYbWdapahzgwwJBlt1gi6
         1sV9AJLyHuL9akMM7mGW5uAk0Txlm7vKuyLyqJX+v1XnYj3BClvXuT9oI7vwejYrW9zc
         lIMspX8j0awe562MlJtzaC8AyMq5WdxBX2460idjDXxmUKW/3R+06HC27xW7zNOW5SaH
         eYkPKD28gsS/80iMXW7PP8kVuqqAVvxq/ScPzFlr0VX5rWspR0MlXy4Vh1xcaEwwl5o1
         f289UWstCWFwGmtBF5HdgcdWUQeWongeylxbrlj6+ZzKCIrkHdFm6WXB0i319BIDCxuD
         0+sg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:message-id:subject:mime-version:x-original-sender
         :reply-to:precedence:mailing-list:list-id:x-spam-checked-in-group
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=hwxW36aG6NwEBd5VovwIKhZ4LJ5HO2enfZk6ZKGSjZY=;
        b=QAg8n5+YT72LTSCksau70NwRNi29K2JkBOmvoQgzLKg+085lU+oy4rbAQtwSHjAYOF
         FLiOA4N+nj1c4wK9BLp7MNOJakDlBMHMIPoStNCoQu7kdKbA2i0UjlQyhSMl3vAeOApq
         56Zl5LrJZdGibszMP85eI07sire+p8udgM4qesGB7iOyqOockOIC2W+CJNA9Wg+aaLej
         B1MCElQtnfBBQtODcJMilhV5U2RF17l2sm+Mr4+abISpXF69E2XzJlkhoNQI+7hVdoEf
         aidO5yM15L0pJHKyP88oC5Lnt7Hoiq9EOAUAljNKlxyHRRooHnxWICFoJ4DtL3RkjV81
         fDDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:date:from:to:message-id:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=hwxW36aG6NwEBd5VovwIKhZ4LJ5HO2enfZk6ZKGSjZY=;
        b=KoJBgXWpJIdKRgva8qRdiiA0YiCKCYjt6kpJAQuTBl9QczsII6R+L0a0+5KxBoUPtT
         dK56MZwdMDCduU4l52FbEO+k4SuZITUEu2G0/iUbw64timvlVUJFoza45ijyeYuyBAoG
         Nfv4Yt/TPAGLIH+X3xQ/AmSUrFt2IonV1p/UTU2vOT56EQoq6T0KskwuF7z/aQtJw9M+
         5K5pNLCDG/zoydeK0ZM9VVj+VaGyMZdb9pEUiVI/uZ2JBGD30kqrjmSLW/9o7+g29COE
         RX/x1/YFena+4x9Fy0aqmEpowEiLUPFToal+we2kx3I+qUaPdmvPnnjnpM2J0VPVvGlJ
         Ap4Q==
X-Gm-Message-State: AN3rC/464hCw5PcvTWU/7VZKuCeiJ42uNC1Y9e5TBWcxzCxdLZ7eXQd0
	LD8QfWepw6TN9Q==
X-Received: by 10.99.53.198 with SMTP id c189mr1506847pga.42.1493644431186;
        Mon, 01 May 2017 06:13:51 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.157.17.19 with SMTP id g19ls11531429ote.17.gmail; Mon, 01 May
 2017 06:13:50 -0700 (PDT)
X-Received: by 10.157.37.213 with SMTP id q79mr483800ota.11.1493644430147;
        Mon, 01 May 2017 06:13:50 -0700 (PDT)
X-Original-Sender: jakob.riedle@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:32253
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/32253>

------=_Part_2648_639839841.1493644429632
Content-Type: multipart/alternative; 
	boundary="----=_Part_2649_1305921466.1493644429633"

------=_Part_2649_1305921466.1493644429633
Content-Type: text/plain; charset=UTF-8

Hello Folks,

I'd just like to bring up the topic of matrices in C++ again.
It has been discussed only superficially by this 
<https://groups.google.com/a/isocpp.org/forum/#!searchin/std-proposals/matrix/std-proposals/R9jeBjwJmKo/T-1RWPOvBAAJ>
 thread.
"Superficially" because two-dimensional arrays/fields/tables are not what 
I'd like to ask feedback for in this thread.

Has there been any proposal yet to bring the concept of mathematical 
matrices into discussion?

With the approval of the mathematical special functions (Tech. Rep.), C++ 
has clearly stated, It wants to support mathematical computing.
A support for matrices along (mathematical) vectors feel very natural in 
this sence.


*Note: By "mathematical vectors" I refer to column or row vectors, which 
basically represent matrices of height or width 1.*

If C++ wants to support matrix based computing, this would
infer the following (incomplete and necessarily subjective) list of 
features:

*Something lika a std::matrix class (-template)*
Here two questions would be,

1. should the dimensions of a matrix instance compile-time constant or 
runtime variable?

2. in what way should a matrix behave like and be iterable lika a 
(2-dimensional (?)) container?


*Basic Marix operator overloads*
This includes a matrix-matrix operations as well as constant-matrix 
operations and unary matrix

operations like transposition and conjugation. Note: An unary operator' for 
transposition would be nice to have.

*Mathematical manipulations and information retrieveing on matrices*
This includes operations like

- computing the determinant, trace, eigenvectors and eigenvalues of a 
matrix,

- swapping of rows and columns as well as deriving submatrices

- detection of different attributes (symmetry, hermeticness, orthogonality, 
invertability).

 
*Before people start discussing about potential features of such a class,*
*I'd like to ask for*
*- information about already present proposals or papers if any,*
*- feedback on whether you think such an area shall be permeated by C++*

Let me hear from you!

Cheers
Jakob

-- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/2f08ba29-2cdd-4519-a023-208297256d08%40isocpp.org.

------=_Part_2649_1305921466.1493644429633
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello Folks,<div><br></div><div>I&#39;d just like to bring=
 up the topic of matrices in C++ again.</div><div>It has been discussed onl=
y superficially by <a href=3D"https://groups.google.com/a/isocpp.org/forum/=
#!searchin/std-proposals/matrix/std-proposals/R9jeBjwJmKo/T-1RWPOvBAAJ">thi=
s</a>=C2=A0thread.</div><div>&quot;Superficially&quot; because two-dimensio=
nal arrays/fields/tables are not what I&#39;d like to ask feedback for in t=
his thread.</div><div><br></div><div>Has there been any proposal yet to bri=
ng the concept of mathematical matrices into discussion?</div><div><br></di=
v><div>With the approval of the mathematical special functions (Tech. Rep.)=
, C++ has clearly stated, It wants to support mathematical computing.</div>=
<div>A support for matrices along (mathematical) vectors feel very natural =
in this sence.</div><div><br></div><div><i>Note: By &quot;mathematical vect=
ors&quot; I refer to column or row vectors, which basically represent matri=
ces of height or width 1.<br></i></div><div><br></div><div><font size=3D"2"=
>If C++ wants to support matrix based computing, this would</font></div><di=
v><font size=3D"2">infer the following (incomplete and necessarily subjecti=
ve) list of features:</font></div><div><br></div><blockquote style=3D"margi=
n: 0 0 0 40px; border: none; padding: 0px;"><div><b>Something lika a std::m=
atrix class (-template)</b></div><div>Here two questions would be,</div></b=
lockquote><blockquote style=3D"margin: 0 0 0 40px; border: none; padding: 0=
px;"><blockquote style=3D"margin: 0 0 0 40px; border: none; padding: 0px;">=
<div>1. should the dimensions of a matrix instance compile-time constant or=
 runtime variable?</div></blockquote></blockquote><blockquote style=3D"marg=
in: 0 0 0 40px; border: none; padding: 0px;"><blockquote style=3D"margin: 0=
 0 0 40px; border: none; padding: 0px;"><div>2. in what way should a matrix=
 behave like and be iterable lika a (2-dimensional (?)) container?</div></b=
lockquote></blockquote><blockquote style=3D"margin: 0 0 0 40px; border: non=
e; padding: 0px;"><div><br></div><div><b>Basic Marix operator overloads</b>=
</div><div>This includes a matrix-matrix operations as well as constant-mat=
rix operations and unary matrix</div></blockquote><blockquote style=3D"marg=
in: 0 0 0 40px; border: none; padding: 0px;"><div>operations like transposi=
tion and conjugation. Note: An unary operator&#39; for transposition would =
be nice to have.</div><div><br></div><div><b>Mathematical manipulations and=
 information retrieveing on matrices</b></div><div>This includes operations=
 like</div></blockquote><blockquote style=3D"margin: 0 0 0 40px; border: no=
ne; padding: 0px;"><blockquote style=3D"margin: 0 0 0 40px; border: none; p=
adding: 0px;"><div>- computing the determinant, trace, eigenvectors and eig=
envalues of a matrix,</div></blockquote></blockquote><blockquote style=3D"m=
argin: 0 0 0 40px; border: none; padding: 0px;"><blockquote style=3D"margin=
: 0 0 0 40px; border: none; padding: 0px;"><div>- swapping of rows and colu=
mns as well as deriving submatrices</div></blockquote></blockquote><blockqu=
ote style=3D"margin: 0 0 0 40px; border: none; padding: 0px;"><blockquote s=
tyle=3D"margin: 0 0 0 40px; border: none; padding: 0px;"><div>- detection o=
f different attributes (symmetry, hermeticness, orthogonality, invertabilit=
y).</div></blockquote></blockquote><blockquote style=3D"margin: 0 0 0 40px;=
 border: none; padding: 0px;"><div></div></blockquote><div>=C2=A0</div><div=
><b><i>Before</i> people start discussing about potential features of such =
a class,</b></div><div><b>I&#39;d like to ask for</b></div><div><b>- inform=
ation about already present proposals or papers if any,</b></div><div><b>- =
feedback on whether you think such an area shall be permeated by C++</b></d=
iv><div><b><br></b></div><div>Let me hear from you!</div><div><br></div><di=
v>Cheers</div><div>Jakob</div><div><b><br></b></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/2f08ba29-2cdd-4519-a023-208297256d08%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2f08ba29-2cdd-4519-a023-208297256d08=
%40isocpp.org</a>.<br />

------=_Part_2649_1305921466.1493644429633--

------=_Part_2648_639839841.1493644429632--

.
