sharp 0.20.8 → 0.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -613,7 +613,7 @@ VImage::new_matrixv( int width, int height, ... )
613
613
  }
614
614
 
615
615
  VImage
616
- VImage::write( VImage out )
616
+ VImage::write( VImage out ) const
617
617
  {
618
618
  if( vips_image_write( this->get_image(), out.get_image() ) )
619
619
  throw VError();
@@ -622,7 +622,7 @@ VImage::write( VImage out )
622
622
  }
623
623
 
624
624
  void
625
- VImage::write_to_file( const char *name, VOption *options )
625
+ VImage::write_to_file( const char *name, VOption *options ) const
626
626
  {
627
627
  char filename[VIPS_PATH_MAX];
628
628
  char option_string[VIPS_PATH_MAX];
@@ -642,7 +642,7 @@ VImage::write_to_file( const char *name, VOption *options )
642
642
 
643
643
  void
644
644
  VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
645
- VOption *options )
645
+ VOption *options ) const
646
646
  {
647
647
  char filename[VIPS_PATH_MAX];
648
648
  char option_string[VIPS_PATH_MAX];
@@ -675,7 +675,7 @@ VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
675
675
  #include "vips-operators.cpp"
676
676
 
677
677
  std::vector<VImage>
678
- VImage::bandsplit( VOption *options )
678
+ VImage::bandsplit( VOption *options ) const
679
679
  {
680
680
  std::vector<VImage> b;
681
681
 
@@ -686,7 +686,7 @@ VImage::bandsplit( VOption *options )
686
686
  }
687
687
 
688
688
  VImage
689
- VImage::bandjoin( VImage other, VOption *options )
689
+ VImage::bandjoin( VImage other, VOption *options ) const
690
690
  {
691
691
  VImage v[2] = { *this, other };
692
692
  std::vector<VImage> vec( v, v + VIPS_NUMBER( v ) );
@@ -695,7 +695,7 @@ VImage::bandjoin( VImage other, VOption *options )
695
695
  }
696
696
 
697
697
  VImage
698
- VImage::composite( VImage other, VipsBlendMode mode, VOption *options )
698
+ VImage::composite( VImage other, VipsBlendMode mode, VOption *options ) const
699
699
  {
700
700
  VImage v[2] = { *this, other };
701
701
  std::vector<VImage> ivec( v, v + VIPS_NUMBER( v ) );
@@ -706,7 +706,7 @@ VImage::composite( VImage other, VipsBlendMode mode, VOption *options )
706
706
  }
707
707
 
708
708
  std::complex<double>
709
- VImage::minpos( VOption *options )
709
+ VImage::minpos( VOption *options ) const
710
710
  {
711
711
  double x, y;
712
712
 
@@ -719,7 +719,7 @@ VImage::minpos( VOption *options )
719
719
  }
720
720
 
721
721
  std::complex<double>
722
- VImage::maxpos( VOption *options )
722
+ VImage::maxpos( VOption *options ) const
723
723
  {
724
724
  double x, y;
725
725
 
@@ -734,43 +734,43 @@ VImage::maxpos( VOption *options )
734
734
  // Operator overloads
735
735
 
736
736
  VImage
737
- VImage::operator[]( int index )
737
+ VImage::operator[]( int index ) const
738
738
  {
739
739
  return( this->extract_band( index ) );
740
740
  }
741
741
 
742
742
  std::vector<double>
743
- VImage::operator()( int x, int y )
743
+ VImage::operator()( int x, int y ) const
744
744
  {
745
745
  return( this->getpoint( x, y ) );
746
746
  }
747
747
 
748
748
  VImage
749
- operator+( VImage a, VImage b )
749
+ operator+( const VImage a, const VImage b )
750
750
  {
751
751
  return( a.add( b ) );
752
752
  }
753
753
 
754
754
  VImage
755
- operator+( double a, VImage b )
755
+ operator+( double a, const VImage b )
756
756
  {
757
757
  return( b.linear( 1.0, a ) );
758
758
  }
759
759
 
760
760
  VImage
761
- operator+( VImage a, double b )
761
+ operator+( const VImage a, double b )
762
762
  {
763
763
  return( a.linear( 1.0, b ) );
764
764
  }
765
765
 
766
766
  VImage
767
- operator+( std::vector<double> a, VImage b )
767
+ operator+( const std::vector<double> a, const VImage b )
768
768
  {
769
769
  return( b.linear( 1.0, a ) );
770
770
  }
771
771
 
772
772
  VImage
773
- operator+( VImage a, std::vector<double> b )
773
+ operator+( const VImage a, const std::vector<double> b )
774
774
  {
775
775
  return( a.linear( 1.0, b ) );
776
776
  }
@@ -788,37 +788,37 @@ operator+=( VImage &a, const double b )
788
788
  }
789
789
 
790
790
  VImage &
791
- operator+=( VImage &a, std::vector<double> b )
791
+ operator+=( VImage &a, const std::vector<double> b )
792
792
  {
793
793
  return( a = a + b );
794
794
  }
795
795
 
796
796
  VImage
797
- operator-( VImage a, VImage b )
797
+ operator-( const VImage a, const VImage b )
798
798
  {
799
799
  return( a.subtract( b ) );
800
800
  }
801
801
 
802
802
  VImage
803
- operator-( double a, VImage b )
803
+ operator-( double a, const VImage b )
804
804
  {
805
805
  return( b.linear( -1.0, a ) );
806
806
  }
807
807
 
808
808
  VImage
809
- operator-( VImage a, double b )
809
+ operator-( const VImage a, double b )
810
810
  {
811
811
  return( a.linear( 1.0, -b ) );
812
812
  }
813
813
 
814
814
  VImage
815
- operator-( std::vector<double> a, VImage b )
815
+ operator-( const std::vector<double> a, const VImage b )
816
816
  {
817
817
  return( b.linear( -1.0, a ) );
818
818
  }
819
819
 
820
820
  VImage
821
- operator-( VImage a, std::vector<double> b )
821
+ operator-( const VImage a, const std::vector<double> b )
822
822
  {
823
823
  return( a.linear( 1.0, vips::negate( b ) ) );
824
824
  }
@@ -836,43 +836,43 @@ operator-=( VImage &a, const double b )
836
836
  }
837
837
 
838
838
  VImage &
839
- operator-=( VImage &a, std::vector<double> b )
839
+ operator-=( VImage &a, const std::vector<double> b )
840
840
  {
841
841
  return( a = a - b );
842
842
  }
843
843
 
844
844
  VImage
845
- operator-( VImage a )
845
+ operator-( const VImage a )
846
846
  {
847
847
  return( a * -1 );
848
848
  }
849
849
 
850
850
  VImage
851
- operator*( VImage a, VImage b )
851
+ operator*( const VImage a, const VImage b )
852
852
  {
853
853
  return( a.multiply( b ) );
854
854
  }
855
855
 
856
856
  VImage
857
- operator*( double a, VImage b )
857
+ operator*( double a, const VImage b )
858
858
  {
859
859
  return( b.linear( a, 0.0 ) );
860
860
  }
861
861
 
862
862
  VImage
863
- operator*( VImage a, double b )
863
+ operator*( const VImage a, double b )
864
864
  {
865
865
  return( a.linear( b, 0.0 ) );
866
866
  }
867
867
 
868
868
  VImage
869
- operator*( std::vector<double> a, VImage b )
869
+ operator*( const std::vector<double> a, const VImage b )
870
870
  {
871
871
  return( b.linear( a, 0.0 ) );
872
872
  }
873
873
 
874
874
  VImage
875
- operator*( VImage a, std::vector<double> b )
875
+ operator*( const VImage a, const std::vector<double> b )
876
876
  {
877
877
  return( a.linear( b, 0.0 ) );
878
878
  }
@@ -890,37 +890,37 @@ operator*=( VImage &a, const double b )
890
890
  }
891
891
 
892
892
  VImage &
893
- operator*=( VImage &a, std::vector<double> b )
893
+ operator*=( VImage &a, const std::vector<double> b )
894
894
  {
895
895
  return( a = a * b );
896
896
  }
897
897
 
898
898
  VImage
899
- operator/( VImage a, VImage b )
899
+ operator/( const VImage a, const VImage b )
900
900
  {
901
901
  return( a.divide( b ) );
902
902
  }
903
903
 
904
904
  VImage
905
- operator/( double a, VImage b )
905
+ operator/( double a, const VImage b )
906
906
  {
907
907
  return( b.pow( -1.0 ).linear( a, 0.0 ) );
908
908
  }
909
909
 
910
910
  VImage
911
- operator/( VImage a, double b )
911
+ operator/( const VImage a, double b )
912
912
  {
913
913
  return( a.linear( 1.0 / b, 0.0 ) );
914
914
  }
915
915
 
916
916
  VImage
917
- operator/( std::vector<double> a, VImage b )
917
+ operator/( const std::vector<double> a, const VImage b )
918
918
  {
919
919
  return( b.pow( -1.0 ).linear( a, 0.0 ) );
920
920
  }
921
921
 
922
922
  VImage
923
- operator/( VImage a, std::vector<double> b )
923
+ operator/( const VImage a, const std::vector<double> b )
924
924
  {
925
925
  return( a.linear( vips::invert( b ), 0.0 ) );
926
926
  }
@@ -938,25 +938,25 @@ operator/=( VImage &a, const double b )
938
938
  }
939
939
 
940
940
  VImage &
941
- operator/=( VImage &a, std::vector<double> b )
941
+ operator/=( VImage &a, const std::vector<double> b )
942
942
  {
943
943
  return( a = a / b );
944
944
  }
945
945
 
946
946
  VImage
947
- operator%( VImage a, VImage b )
947
+ operator%( const VImage a, const VImage b )
948
948
  {
949
949
  return( a.remainder( b ) );
950
950
  }
951
951
 
952
952
  VImage
953
- operator%( VImage a, double b )
953
+ operator%( const VImage a, const double b )
954
954
  {
955
955
  return( a.remainder_const( to_vector( b ) ) );
956
956
  }
957
957
 
958
958
  VImage
959
- operator%( VImage a, std::vector<double> b )
959
+ operator%( const VImage a, const std::vector<double> b )
960
960
  {
961
961
  return( a.remainder_const( b ) );
962
962
  }
@@ -974,243 +974,243 @@ operator%=( VImage &a, const double b )
974
974
  }
975
975
 
976
976
  VImage &
977
- operator%=( VImage &a, std::vector<double> b )
977
+ operator%=( VImage &a, const std::vector<double> b )
978
978
  {
979
979
  return( a = a % b );
980
980
  }
981
981
 
982
982
  VImage
983
- operator<( VImage a, VImage b )
983
+ operator<( const VImage a, const VImage b )
984
984
  {
985
985
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_LESS ) );
986
986
  }
987
987
 
988
988
  VImage
989
- operator<( double a, VImage b )
989
+ operator<( const double a, const VImage b )
990
990
  {
991
991
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
992
992
  to_vector( a ) ) );
993
993
  }
994
994
 
995
995
  VImage
996
- operator<( VImage a, double b )
996
+ operator<( const VImage a, const double b )
997
997
  {
998
998
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
999
999
  to_vector( b ) ) );
1000
1000
  }
1001
1001
 
1002
1002
  VImage
1003
- operator<( std::vector<double> a, VImage b )
1003
+ operator<( const std::vector<double> a, const VImage b )
1004
1004
  {
1005
1005
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1006
1006
  a ) );
1007
1007
  }
1008
1008
 
1009
1009
  VImage
1010
- operator<( VImage a, std::vector<double> b )
1010
+ operator<( const VImage a, const std::vector<double> b )
1011
1011
  {
1012
1012
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1013
1013
  b ) );
1014
1014
  }
1015
1015
 
1016
1016
  VImage
1017
- operator<=( VImage a, VImage b )
1017
+ operator<=( const VImage a, const VImage b )
1018
1018
  {
1019
1019
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_LESSEQ ) );
1020
1020
  }
1021
1021
 
1022
1022
  VImage
1023
- operator<=( double a, VImage b )
1023
+ operator<=( const double a, const VImage b )
1024
1024
  {
1025
1025
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1026
1026
  to_vector( a ) ) );
1027
1027
  }
1028
1028
 
1029
1029
  VImage
1030
- operator<=( VImage a, double b )
1030
+ operator<=( const VImage a, const double b )
1031
1031
  {
1032
1032
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1033
1033
  to_vector( b ) ) );
1034
1034
  }
1035
1035
 
1036
1036
  VImage
1037
- operator<=( std::vector<double> a, VImage b )
1037
+ operator<=( const std::vector<double> a, const VImage b )
1038
1038
  {
1039
1039
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1040
1040
  a ) );
1041
1041
  }
1042
1042
 
1043
1043
  VImage
1044
- operator<=( VImage a, std::vector<double> b )
1044
+ operator<=( const VImage a, const std::vector<double> b )
1045
1045
  {
1046
1046
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1047
1047
  b ) );
1048
1048
  }
1049
1049
 
1050
1050
  VImage
1051
- operator>( VImage a, VImage b )
1051
+ operator>( const VImage a, const VImage b )
1052
1052
  {
1053
1053
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_MORE ) );
1054
1054
  }
1055
1055
 
1056
1056
  VImage
1057
- operator>( double a, VImage b )
1057
+ operator>( const double a, const VImage b )
1058
1058
  {
1059
1059
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1060
1060
  to_vector( a ) ) );
1061
1061
  }
1062
1062
 
1063
1063
  VImage
1064
- operator>( VImage a, double b )
1064
+ operator>( const VImage a, const double b )
1065
1065
  {
1066
1066
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1067
1067
  to_vector( b ) ) );
1068
1068
  }
1069
1069
 
1070
1070
  VImage
1071
- operator>( std::vector<double> a, VImage b )
1071
+ operator>( const std::vector<double> a, const VImage b )
1072
1072
  {
1073
1073
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1074
1074
  a ) );
1075
1075
  }
1076
1076
 
1077
1077
  VImage
1078
- operator>( VImage a, std::vector<double> b )
1078
+ operator>( const VImage a, const std::vector<double> b )
1079
1079
  {
1080
1080
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1081
1081
  b ) );
1082
1082
  }
1083
1083
 
1084
1084
  VImage
1085
- operator>=( VImage a, VImage b )
1085
+ operator>=( const VImage a, const VImage b )
1086
1086
  {
1087
1087
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_MOREEQ ) );
1088
1088
  }
1089
1089
 
1090
1090
  VImage
1091
- operator>=( double a, VImage b )
1091
+ operator>=( const double a, const VImage b )
1092
1092
  {
1093
1093
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1094
1094
  to_vector( a ) ) );
1095
1095
  }
1096
1096
 
1097
1097
  VImage
1098
- operator>=( VImage a, double b )
1098
+ operator>=( const VImage a, const double b )
1099
1099
  {
1100
1100
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1101
1101
  to_vector( b ) ) );
1102
1102
  }
1103
1103
 
1104
1104
  VImage
1105
- operator>=( std::vector<double> a, VImage b )
1105
+ operator>=( const std::vector<double> a, const VImage b )
1106
1106
  {
1107
1107
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1108
1108
  a ) );
1109
1109
  }
1110
1110
 
1111
1111
  VImage
1112
- operator>=( VImage a, std::vector<double> b )
1112
+ operator>=( const VImage a, const std::vector<double> b )
1113
1113
  {
1114
1114
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1115
1115
  b ) );
1116
1116
  }
1117
1117
 
1118
1118
  VImage
1119
- operator==( VImage a, VImage b )
1119
+ operator==( const VImage a, const VImage b )
1120
1120
  {
1121
1121
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_EQUAL ) );
1122
1122
  }
1123
1123
 
1124
1124
  VImage
1125
- operator==( double a, VImage b )
1125
+ operator==( const double a, const VImage b )
1126
1126
  {
1127
1127
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1128
1128
  to_vector( a ) ) );
1129
1129
  }
1130
1130
 
1131
1131
  VImage
1132
- operator==( VImage a, double b )
1132
+ operator==( const VImage a, const double b )
1133
1133
  {
1134
1134
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1135
1135
  to_vector( b ) ) );
1136
1136
  }
1137
1137
 
1138
1138
  VImage
1139
- operator==( std::vector<double> a, VImage b )
1139
+ operator==( const std::vector<double> a, const VImage b )
1140
1140
  {
1141
1141
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1142
1142
  a ) );
1143
1143
  }
1144
1144
 
1145
1145
  VImage
1146
- operator==( VImage a, std::vector<double> b )
1146
+ operator==( const VImage a, const std::vector<double> b )
1147
1147
  {
1148
1148
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1149
1149
  b ) );
1150
1150
  }
1151
1151
 
1152
1152
  VImage
1153
- operator!=( VImage a, VImage b )
1153
+ operator!=( const VImage a, const VImage b )
1154
1154
  {
1155
1155
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_NOTEQ ) );
1156
1156
  }
1157
1157
 
1158
1158
  VImage
1159
- operator!=( double a, VImage b )
1159
+ operator!=( const double a, const VImage b )
1160
1160
  {
1161
1161
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1162
1162
  to_vector( a ) ) );
1163
1163
  }
1164
1164
 
1165
1165
  VImage
1166
- operator!=( VImage a, double b )
1166
+ operator!=( const VImage a, const double b )
1167
1167
  {
1168
1168
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1169
1169
  to_vector( b ) ) );
1170
1170
  }
1171
1171
 
1172
1172
  VImage
1173
- operator!=( std::vector<double> a, VImage b )
1173
+ operator!=( const std::vector<double> a, const VImage b )
1174
1174
  {
1175
1175
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1176
1176
  a ) );
1177
1177
  }
1178
1178
 
1179
1179
  VImage
1180
- operator!=( VImage a, std::vector<double> b )
1180
+ operator!=( const VImage a, const std::vector<double> b )
1181
1181
  {
1182
1182
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1183
1183
  b ) );
1184
1184
  }
1185
1185
 
1186
1186
  VImage
1187
- operator&( VImage a, VImage b )
1187
+ operator&( const VImage a, const VImage b )
1188
1188
  {
1189
1189
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_AND ) );
1190
1190
  }
1191
1191
 
1192
1192
  VImage
1193
- operator&( double a, VImage b )
1193
+ operator&( const double a, const VImage b )
1194
1194
  {
1195
1195
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1196
1196
  to_vector( a ) ) );
1197
1197
  }
1198
1198
 
1199
1199
  VImage
1200
- operator&( VImage a, double b )
1200
+ operator&( const VImage a, const double b )
1201
1201
  {
1202
1202
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1203
1203
  to_vector( b ) ) );
1204
1204
  }
1205
1205
 
1206
1206
  VImage
1207
- operator&( std::vector<double> a, VImage b )
1207
+ operator&( const std::vector<double> a, const VImage b )
1208
1208
  {
1209
1209
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND, a ) );
1210
1210
  }
1211
1211
 
1212
1212
  VImage
1213
- operator&( VImage a, std::vector<double> b )
1213
+ operator&( const VImage a, const std::vector<double> b )
1214
1214
  {
1215
1215
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND, b ) );
1216
1216
  }
@@ -1228,40 +1228,40 @@ operator&=( VImage &a, const double b )
1228
1228
  }
1229
1229
 
1230
1230
  VImage &
1231
- operator&=( VImage &a, std::vector<double> b )
1231
+ operator&=( VImage &a, const std::vector<double> b )
1232
1232
  {
1233
1233
  return( a = a & b );
1234
1234
  }
1235
1235
 
1236
1236
  VImage
1237
- operator|( VImage a, VImage b )
1237
+ operator|( const VImage a, const VImage b )
1238
1238
  {
1239
1239
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_OR ) );
1240
1240
  }
1241
1241
 
1242
1242
  VImage
1243
- operator|( double a, VImage b )
1243
+ operator|( const double a, const VImage b )
1244
1244
  {
1245
1245
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1246
1246
  to_vector( a ) ) );
1247
1247
  }
1248
1248
 
1249
1249
  VImage
1250
- operator|( VImage a, double b )
1250
+ operator|( const VImage a, const double b )
1251
1251
  {
1252
1252
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1253
1253
  to_vector( b ) ) );
1254
1254
  }
1255
1255
 
1256
1256
  VImage
1257
- operator|( std::vector<double> a, VImage b )
1257
+ operator|( const std::vector<double> a, const VImage b )
1258
1258
  {
1259
1259
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1260
1260
  a ) );
1261
1261
  }
1262
1262
 
1263
1263
  VImage
1264
- operator|( VImage a, std::vector<double> b )
1264
+ operator|( const VImage a, const std::vector<double> b )
1265
1265
  {
1266
1266
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1267
1267
  b ) );
@@ -1280,40 +1280,40 @@ operator|=( VImage &a, const double b )
1280
1280
  }
1281
1281
 
1282
1282
  VImage &
1283
- operator|=( VImage &a, std::vector<double> b )
1283
+ operator|=( VImage &a, const std::vector<double> b )
1284
1284
  {
1285
1285
  return( a = a | b );
1286
1286
  }
1287
1287
 
1288
1288
  VImage
1289
- operator^( VImage a, VImage b )
1289
+ operator^( const VImage a, const VImage b )
1290
1290
  {
1291
1291
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_EOR ) );
1292
1292
  }
1293
1293
 
1294
1294
  VImage
1295
- operator^( double a, VImage b )
1295
+ operator^( const double a, const VImage b )
1296
1296
  {
1297
1297
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1298
1298
  to_vector( a ) ) );
1299
1299
  }
1300
1300
 
1301
1301
  VImage
1302
- operator^( VImage a, double b )
1302
+ operator^( const VImage a, const double b )
1303
1303
  {
1304
1304
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1305
1305
  to_vector( b ) ) );
1306
1306
  }
1307
1307
 
1308
1308
  VImage
1309
- operator^( std::vector<double> a, VImage b )
1309
+ operator^( const std::vector<double> a, const VImage b )
1310
1310
  {
1311
1311
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1312
1312
  a ) );
1313
1313
  }
1314
1314
 
1315
1315
  VImage
1316
- operator^( VImage a, std::vector<double> b )
1316
+ operator^( const VImage a, const std::vector<double> b )
1317
1317
  {
1318
1318
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1319
1319
  b ) );
@@ -1332,26 +1332,26 @@ operator^=( VImage &a, const double b )
1332
1332
  }
1333
1333
 
1334
1334
  VImage &
1335
- operator^=( VImage &a, std::vector<double> b )
1335
+ operator^=( VImage &a, const std::vector<double> b )
1336
1336
  {
1337
1337
  return( a = a ^ b );
1338
1338
  }
1339
1339
 
1340
1340
  VImage
1341
- operator<<( VImage a, VImage b )
1341
+ operator<<( const VImage a, const VImage b )
1342
1342
  {
1343
1343
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_LSHIFT ) );
1344
1344
  }
1345
1345
 
1346
1346
  VImage
1347
- operator<<( VImage a, double b )
1347
+ operator<<( const VImage a, const double b )
1348
1348
  {
1349
1349
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1350
1350
  to_vector( b ) ) );
1351
1351
  }
1352
1352
 
1353
1353
  VImage
1354
- operator<<( VImage a, std::vector<double> b )
1354
+ operator<<( const VImage a, const std::vector<double> b )
1355
1355
  {
1356
1356
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1357
1357
  b ) );
@@ -1370,26 +1370,26 @@ operator<<=( VImage &a, const double b )
1370
1370
  }
1371
1371
 
1372
1372
  VImage &
1373
- operator<<=( VImage &a, std::vector<double> b )
1373
+ operator<<=( VImage &a, const std::vector<double> b )
1374
1374
  {
1375
1375
  return( a = a << b );
1376
1376
  }
1377
1377
 
1378
1378
  VImage
1379
- operator>>( VImage a, VImage b )
1379
+ operator>>( const VImage a, const VImage b )
1380
1380
  {
1381
1381
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_RSHIFT ) );
1382
1382
  }
1383
1383
 
1384
1384
  VImage
1385
- operator>>( VImage a, double b )
1385
+ operator>>( const VImage a, const double b )
1386
1386
  {
1387
1387
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1388
1388
  to_vector( b ) ) );
1389
1389
  }
1390
1390
 
1391
1391
  VImage
1392
- operator>>( VImage a, std::vector<double> b )
1392
+ operator>>( const VImage a, const std::vector<double> b )
1393
1393
  {
1394
1394
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1395
1395
  b ) );
@@ -1408,7 +1408,7 @@ operator>>=( VImage &a, const double b )
1408
1408
  }
1409
1409
 
1410
1410
  VImage &
1411
- operator>>=( VImage &a, std::vector<double> b )
1411
+ operator>>=( VImage &a, const std::vector<double> b )
1412
1412
  {
1413
1413
  return( a = a << b );
1414
1414
  }