[eigen] Map/Block equivalence and vectorization
• To: eigen@xxxxxxxxxxxxxxxxxxx
• Subject: [eigen] Map/Block equivalence and vectorization
• From: Márton Danóczy <marton78@xxxxxxxxx>
• Date: Thu, 19 Jul 2012 11:20:46 +0200
• Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=V2PrzlP55RVfzfpoXpc6h/jZqP0dz7y0wUItP5Jls3s=; b=R0dVI1apju9qxSTeBGe9XwCTTlJzaY+iMVf0G2TXoXcJSA6OLGsl3dskEF+RvuUkrf NgCRbYswc/eaVs75EJZW53rV3tURlOc+/eOf6ZufbDWlQ9Pg6CVpLE1DBHKvAmQ+k4vv 9MC/cYGrKS+Ei59PytUIYTfXeCiGW4ARuXtSFXecVhpynXtwItpt/3bo6ZbV0DKIDXAB BmW7KfglOb63dFpjOEw4tCq0fnqK460dq//G3H/eN7Lg01ju/bDqjd2+Qeg7W8LAzeah t13KN6RLGCgjs/OIjmsuuUUdirbzQgD1k1OdQJSL0SwZejqoO93EFUKCSQo3AjX3c1Tl 68pw==

```Dear list,

I have some questions regarding the following snippet:

ArrayXXf arr(100, 100);
Block<ArrayXXf> blk(arr, 1, 0, 99, 100);
Map<ArrayXXf> map(arr.data()+1, 99, 100); // needs Aligned?

1) Is using Block and Map completely equivalent?
2) Will operations on both be vectorized, even though the first
element is not aligned? That is, will Eigen perform scalar
calculations on the first 3 elements of map/blk and vectorize the
rest?
3) What happens if Map is passed a completely odd adress, such as
((char*) arr.data()) + 1, will it break or simply never vectorize?
4) Does Map<ArrayXXf, Aligned> mean aligned to float or to 4 floats?