@@ -317,50 +317,63 @@ function testDiagOp(N=32,K=2;arrayType = Array)
317
317
op1 = DiagOp (blocks)
318
318
op2 = DiagOp (blocks... )
319
319
op3 = DiagOp (block, K)
320
+ op4 = DiagOp (@view blocks[1 : K])
321
+
320
322
321
323
# Operations
322
324
@testset " Diag Prod" begin
323
325
y = Array (F * x)
324
326
y1 = Array (op1 * x)
325
327
y2 = Array (op2 * x)
326
328
y3 = Array (op3 * x)
329
+ y4 = Array (op4 * x)
330
+
327
331
328
332
@test y ≈ y1 rtol = 1e-2
329
333
@test y1 ≈ y2 rtol = 1e-2
330
334
@test y2 ≈ y3 rtol = 1e-2
335
+ @test y4 ≈ y1 rtol = 1e-2
336
+
331
337
end
332
338
333
339
@testset " Diag Transpose" begin
334
340
y = Array (transpose (F) * x)
335
341
y1 = Array (transpose (op1) * x)
336
342
y2 = Array (transpose (op2) * x)
337
343
y3 = Array (transpose (op3) * x)
344
+ y4 = Array (transpose (op4) * x)
338
345
339
346
@test y ≈ y1 rtol = 1e-2
340
347
@test y1 ≈ y2 rtol = 1e-2
341
348
@test y2 ≈ y3 rtol = 1e-2
349
+ @test y4 ≈ y1 rtol = 1e-2
342
350
end
343
351
344
352
@testset " Diag Adjoint" begin
345
353
y = Array (adjoint (F) * x)
346
354
y1 = Array (adjoint (op1) * x)
347
355
y2 = Array (adjoint (op2) * x)
348
356
y3 = Array (adjoint (op3) * x)
357
+ y4 = Array (adjoint (op4) * x)
349
358
350
359
@test y ≈ y1 rtol = 1e-2
351
360
@test y1 ≈ y2 rtol = 1e-2
352
361
@test y2 ≈ y3 rtol = 1e-2
362
+ @test y4 ≈ y1 rtol = 1e-2
353
363
end
354
364
355
365
@testset " Diag Normal" begin
356
366
y = Array (adjoint (F) * F* x)
357
367
y1 = Array (normalOperator (op1) * x)
358
368
y2 = Array (normalOperator (op2) * x)
359
369
y3 = Array (normalOperator (op3) * x)
370
+ y4 = Array (normalOperator (op4) * x)
360
371
361
372
@test y ≈ y1 rtol = 1e-2
362
373
@test y1 ≈ y2 rtol = 1e-2
363
374
@test y2 ≈ y3 rtol = 1e-2
375
+ @test y4 ≈ y1 rtol = 1e-2
376
+
364
377
end
365
378
366
379
@testset " Weighted Diag Normal" begin
@@ -369,15 +382,19 @@ function testDiagOp(N=32,K=2;arrayType = Array)
369
382
prod1 = ProdOp (wop, op1)
370
383
prod2 = ProdOp (wop, op2)
371
384
prod3 = ProdOp (wop, op3)
385
+ prod4 = ProdOp (wop, op4)
372
386
373
387
y = Array (adjoint (F) * adjoint (wop) * wop * F* x)
374
388
y1 = Array (normalOperator (prod1) * x)
375
389
y2 = Array (normalOperator (prod2) * x)
376
390
y3 = Array (normalOperator (prod3) * x)
391
+ y4 = Array (normalOperator (prod4) * x)
377
392
378
393
@test y ≈ y1 rtol = 1e-2
379
394
@test y1 ≈ y2 rtol = 1e-2
380
395
@test y2 ≈ y3 rtol = 1e-2
396
+ @test y4 ≈ y1 rtol = 1e-2
397
+
381
398
end
382
399
383
400
end
0 commit comments