Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(395)

Side by Side Diff: dart/sdk/lib/typed_data/typed_data.dart

Issue 59073003: Version 0.8.10.4 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart.typed_data; 5 library dart.typed_data;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import 'dart:_collection-dev'; 8 import 'dart:_collection-dev';
9 import 'dart:math' show Random; 9 import 'dart:math' show Random;
10 10
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 * BYTES_PER_ELEMENT. 820 * BYTES_PER_ELEMENT.
821 */ 821 */
822 external factory Float32x4List.view(ByteBuffer buffer, 822 external factory Float32x4List.view(ByteBuffer buffer,
823 [int offsetInBytes = 0, int length]); 823 [int offsetInBytes = 0, int length]);
824 824
825 static const int BYTES_PER_ELEMENT = 16; 825 static const int BYTES_PER_ELEMENT = 16;
826 } 826 }
827 827
828 828
829 /** 829 /**
830 * A fixed-length list of Uint32x4 numbers that is viewable as a 830 * A fixed-length list of Int32x4 numbers that is viewable as a
831 * [TypedData]. For long lists, this implementation will be considerably more 831 * [TypedData]. For long lists, this implementation will be considerably more
832 * space- and time-efficient than the default [List] implementation. 832 * space- and time-efficient than the default [List] implementation.
833 */ 833 */
834 abstract class Uint32x4List implements List<Uint32x4>, TypedData { 834 abstract class Int32x4List implements List<Int32x4>, TypedData {
835 /** 835 /**
836 * Creates a [Uint32x4List] of the specified length (in elements), 836 * Creates a [Int32x4List] of the specified length (in elements),
837 * all of whose elements are initially zero. 837 * all of whose elements are initially zero.
838 */ 838 */
839 external factory Uint32x4List(int length); 839 external factory Int32x4List(int length);
840 840
841 /** 841 /**
842 * Creates a [Uint32x4List] with the same size as the [elements] list 842 * Creates a [Int32x4List] with the same size as the [elements] list
843 * and copies over the elements. 843 * and copies over the elements.
844 */ 844 */
845 external factory Uint32x4List.fromList(List<Uint32x4> elements); 845 external factory Int32x4List.fromList(List<Int32x4> elements);
846 846
847 /** 847 /**
848 * Creates a [Uint32x4List] _view_ of the specified region in the specified 848 * Creates a [Int32x4List] _view_ of the specified region in the specified
849 * byte buffer. Changes in the [Uint32x4List] will be visible in the byte 849 * byte buffer. Changes in the [Int32x4List] will be visible in the byte
850 * buffer and vice versa. If the [offsetInBytes] index of the region is not 850 * buffer and vice versa. If the [offsetInBytes] index of the region is not
851 * specified, it defaults to zero (the first byte in the byte buffer). 851 * specified, it defaults to zero (the first byte in the byte buffer).
852 * If the length is not specified, it defaults to null, which indicates 852 * If the length is not specified, it defaults to null, which indicates
853 * that the view extends to the end of the byte buffer. 853 * that the view extends to the end of the byte buffer.
854 * 854 *
855 * Throws [RangeError] if [offsetInBytes] or [length] are negative, or 855 * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
856 * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than 856 * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
857 * the length of [buffer]. 857 * the length of [buffer].
858 * 858 *
859 * Throws [ArgumentError] if [offsetInBytes] is not a multiple of 859 * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
860 * BYTES_PER_ELEMENT. 860 * BYTES_PER_ELEMENT.
861 */ 861 */
862 external factory Uint32x4List.view(ByteBuffer buffer, 862 external factory Int32x4List.view(ByteBuffer buffer,
863 [int offsetInBytes = 0, int length]); 863 [int offsetInBytes = 0, int length]);
864 864
865 static const int BYTES_PER_ELEMENT = 16; 865 static const int BYTES_PER_ELEMENT = 16;
866 } 866 }
867 867
868 868
869 /** 869 /**
870 * Interface of Dart Float32x4 immutable value type and operations. 870 * Interface of Dart Float32x4 immutable value type and operations.
871 * Float32x4 stores 4 32-bit floating point values in "lanes". 871 * Float32x4 stores 4 32-bit floating point values in "lanes".
872 * The lanes are "x", "y", "z", and "w" respectively. 872 * The lanes are "x", "y", "z", and "w" respectively.
873 */ 873 */
874 abstract class Float32x4 { 874 abstract class Float32x4 {
875 external factory Float32x4(double x, double y, double z, double w); 875 external factory Float32x4(double x, double y, double z, double w);
876 external factory Float32x4.splat(double v); 876 external factory Float32x4.splat(double v);
877 external factory Float32x4.zero(); 877 external factory Float32x4.zero();
878 external factory Float32x4.fromUint32x4Bits(Uint32x4 x); 878 external factory Float32x4.fromInt32x4Bits(Int32x4 x);
879 879
880 /// Addition operator. 880 /// Addition operator.
881 Float32x4 operator+(Float32x4 other); 881 Float32x4 operator+(Float32x4 other);
882 /// Negate operator. 882 /// Negate operator.
883 Float32x4 operator-(); 883 Float32x4 operator-();
884 /// Subtraction operator. 884 /// Subtraction operator.
885 Float32x4 operator-(Float32x4 other); 885 Float32x4 operator-(Float32x4 other);
886 /// Multiplication operator. 886 /// Multiplication operator.
887 Float32x4 operator*(Float32x4 other); 887 Float32x4 operator*(Float32x4 other);
888 /// Division operator. 888 /// Division operator.
889 Float32x4 operator/(Float32x4 other); 889 Float32x4 operator/(Float32x4 other);
890 890
891 /// Relational less than. 891 /// Relational less than.
892 Uint32x4 lessThan(Float32x4 other); 892 Int32x4 lessThan(Float32x4 other);
893 /// Relational less than or equal. 893 /// Relational less than or equal.
894 Uint32x4 lessThanOrEqual(Float32x4 other); 894 Int32x4 lessThanOrEqual(Float32x4 other);
895 /// Relational greater than. 895 /// Relational greater than.
896 Uint32x4 greaterThan(Float32x4 other); 896 Int32x4 greaterThan(Float32x4 other);
897 /// Relational greater than or equal. 897 /// Relational greater than or equal.
898 Uint32x4 greaterThanOrEqual(Float32x4 other); 898 Int32x4 greaterThanOrEqual(Float32x4 other);
899 /// Relational equal. 899 /// Relational equal.
900 Uint32x4 equal(Float32x4 other); 900 Int32x4 equal(Float32x4 other);
901 /// Relational not-equal. 901 /// Relational not-equal.
902 Uint32x4 notEqual(Float32x4 other); 902 Int32x4 notEqual(Float32x4 other);
903 903
904 /// Returns a copy of [this] each lane being scaled by [s]. 904 /// Returns a copy of [this] each lane being scaled by [s].
905 Float32x4 scale(double s); 905 Float32x4 scale(double s);
906 /// Returns the absolute value of this [Float32x4]. 906 /// Returns the absolute value of this [Float32x4].
907 Float32x4 abs(); 907 Float32x4 abs();
908 /// Clamps [this] to be in the range [lowerLimit]-[upperLimit]. 908 /// Clamps [this] to be in the range [lowerLimit]-[upperLimit].
909 Float32x4 clamp(Float32x4 lowerLimit, 909 Float32x4 clamp(Float32x4 lowerLimit,
910 Float32x4 upperLimit); 910 Float32x4 upperLimit);
911 911
912 /// Extracted x value. 912 /// Extracted x value.
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 1207
1208 /// Returns the reciprocal of [this]. 1208 /// Returns the reciprocal of [this].
1209 Float32x4 reciprocal(); 1209 Float32x4 reciprocal();
1210 1210
1211 /// Returns the square root of the reciprocal of [this]. 1211 /// Returns the square root of the reciprocal of [this].
1212 Float32x4 reciprocalSqrt(); 1212 Float32x4 reciprocalSqrt();
1213 } 1213 }
1214 1214
1215 1215
1216 /** 1216 /**
1217 * Interface of Dart Uint32x4 and operations. 1217 * Interface of Dart Int32x4 and operations.
1218 * Uint32x4 stores 4 32-bit bit-masks in "lanes". 1218 * Int32x4 stores 4 32-bit bit-masks in "lanes".
1219 * The lanes are "x", "y", "z", and "w" respectively. 1219 * The lanes are "x", "y", "z", and "w" respectively.
1220 */ 1220 */
1221 abstract class Uint32x4 { 1221 abstract class Int32x4 {
1222 external factory Uint32x4(int x, int y, int z, int w); 1222 external factory Int32x4(int x, int y, int z, int w);
1223 external factory Uint32x4.bool(bool x, bool y, bool z, bool w); 1223 external factory Int32x4.bool(bool x, bool y, bool z, bool w);
1224 external factory Uint32x4.fromFloat32x4Bits(Float32x4 x); 1224 external factory Int32x4.fromFloat32x4Bits(Float32x4 x);
1225 1225
1226 /// The bit-wise or operator. 1226 /// The bit-wise or operator.
1227 Uint32x4 operator|(Uint32x4 other); 1227 Int32x4 operator|(Int32x4 other);
1228 /// The bit-wise and operator. 1228 /// The bit-wise and operator.
1229 Uint32x4 operator&(Uint32x4 other); 1229 Int32x4 operator&(Int32x4 other);
1230 /// The bit-wise xor operator. 1230 /// The bit-wise xor operator.
1231 Uint32x4 operator^(Uint32x4 other); 1231 Int32x4 operator^(Int32x4 other);
1232 /// Addition operator. 1232 /// Addition operator.
1233 Uint32x4 operator+(Uint32x4 other); 1233 Int32x4 operator+(Int32x4 other);
1234 /// Subtraction operator. 1234 /// Subtraction operator.
1235 Uint32x4 operator-(Uint32x4 other); 1235 Int32x4 operator-(Int32x4 other);
1236 1236
1237 /// Extract 32-bit mask from x lane. 1237 /// Extract 32-bit mask from x lane.
1238 int get x; 1238 int get x;
1239 /// Extract 32-bit mask from y lane. 1239 /// Extract 32-bit mask from y lane.
1240 int get y; 1240 int get y;
1241 /// Extract 32-bit mask from z lane. 1241 /// Extract 32-bit mask from z lane.
1242 int get z; 1242 int get z;
1243 /// Extract 32-bit mask from w lane. 1243 /// Extract 32-bit mask from w lane.
1244 int get w; 1244 int get w;
1245 1245
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 static const int WWZX = 0x2F; 1498 static const int WWZX = 0x2F;
1499 static const int WWZY = 0x6F; 1499 static const int WWZY = 0x6F;
1500 static const int WWZZ = 0xAF; 1500 static const int WWZZ = 0xAF;
1501 static const int WWZW = 0xEF; 1501 static const int WWZW = 0xEF;
1502 static const int WWWX = 0x3F; 1502 static const int WWWX = 0x3F;
1503 static const int WWWY = 0x7F; 1503 static const int WWWY = 0x7F;
1504 static const int WWWZ = 0xBF; 1504 static const int WWWZ = 0xBF;
1505 static const int WWWW = 0xFF; 1505 static const int WWWW = 0xFF;
1506 1506
1507 /// Shuffle the lane values. [mask] must be one of the 256 shuffle constants. 1507 /// Shuffle the lane values. [mask] must be one of the 256 shuffle constants.
1508 Uint32x4 shuffle(int mask); 1508 Int32x4 shuffle(int mask);
1509 1509
1510 /// Shuffle the lane values in [this] and [other]. The returned 1510 /// Shuffle the lane values in [this] and [other]. The returned
1511 /// Uint32x4 will have XY lanes from [this] and ZW lanes from [other]. 1511 /// Int32x4 will have XY lanes from [this] and ZW lanes from [other].
1512 /// Uses the same [mask] as [shuffle]. 1512 /// Uses the same [mask] as [shuffle].
1513 Uint32x4 shuffleMix(Uint32x4 other, int mask); 1513 Int32x4 shuffleMix(Int32x4 other, int mask);
1514 1514
1515 /// Returns a new [Uint32x4] copied from [this] with a new x value. 1515 /// Returns a new [Int32x4] copied from [this] with a new x value.
1516 Uint32x4 withX(int x); 1516 Int32x4 withX(int x);
1517 /// Returns a new [Uint32x4] copied from [this] with a new y value. 1517 /// Returns a new [Int32x4] copied from [this] with a new y value.
1518 Uint32x4 withY(int y); 1518 Int32x4 withY(int y);
1519 /// Returns a new [Uint32x4] copied from [this] with a new z value. 1519 /// Returns a new [Int32x4] copied from [this] with a new z value.
1520 Uint32x4 withZ(int z); 1520 Int32x4 withZ(int z);
1521 /// Returns a new [Uint32x4] copied from [this] with a new w value. 1521 /// Returns a new [Int32x4] copied from [this] with a new w value.
1522 Uint32x4 withW(int w); 1522 Int32x4 withW(int w);
1523 1523
1524 /// Extracted x value. Returns false for 0, true for any other value. 1524 /// Extracted x value. Returns false for 0, true for any other value.
1525 bool get flagX; 1525 bool get flagX;
1526 /// Extracted y value. Returns false for 0, true for any other value. 1526 /// Extracted y value. Returns false for 0, true for any other value.
1527 bool get flagY; 1527 bool get flagY;
1528 /// Extracted z value. Returns false for 0, true for any other value. 1528 /// Extracted z value. Returns false for 0, true for any other value.
1529 bool get flagZ; 1529 bool get flagZ;
1530 /// Extracted w value. Returns false for 0, true for any other value. 1530 /// Extracted w value. Returns false for 0, true for any other value.
1531 bool get flagW; 1531 bool get flagW;
1532 1532
1533 /// Returns a new [Uint32x4] copied from [this] with a new x value. 1533 /// Returns a new [Int32x4] copied from [this] with a new x value.
1534 Uint32x4 withFlagX(bool x); 1534 Int32x4 withFlagX(bool x);
1535 /// Returns a new [Uint32x4] copied from [this] with a new y value. 1535 /// Returns a new [Int32x4] copied from [this] with a new y value.
1536 Uint32x4 withFlagY(bool y); 1536 Int32x4 withFlagY(bool y);
1537 /// Returns a new [Uint32x4] copied from [this] with a new z value. 1537 /// Returns a new [Int32x4] copied from [this] with a new z value.
1538 Uint32x4 withFlagZ(bool z); 1538 Int32x4 withFlagZ(bool z);
1539 /// Returns a new [Uint32x4] copied from [this] with a new w value. 1539 /// Returns a new [Int32x4] copied from [this] with a new w value.
1540 Uint32x4 withFlagW(bool w); 1540 Int32x4 withFlagW(bool w);
1541 1541
1542 /// Merge [trueValue] and [falseValue] based on [this]' bit mask: 1542 /// Merge [trueValue] and [falseValue] based on [this]' bit mask:
1543 /// Select bit from [trueValue] when bit in [this] is on. 1543 /// Select bit from [trueValue] when bit in [this] is on.
1544 /// Select bit from [falseValue] when bit in [this] is off. 1544 /// Select bit from [falseValue] when bit in [this] is off.
1545 Float32x4 select(Float32x4 trueValue, Float32x4 falseValue); 1545 Float32x4 select(Float32x4 trueValue, Float32x4 falseValue);
1546 } 1546 }
OLDNEW
« no previous file with comments | « dart/sdk/lib/typed_data/dart2js/typed_data_dart2js.dart ('k') | dart/tests/co19/co19-analyzer.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698